Home

Awesome

<p align="center"> <img src="https://user-images.githubusercontent.com/6702424/76674598-91ebfc00-65b1-11ea-88df-eb43f04f3cce.png"> </p> <p align="center"> 💧<i>EventEmitter's typesafe replacement</i>💧 <br> <br> <a href="https://github.com/garronej/evt/actions"> <img src="https://github.com/garronej/evt/workflows/ci/badge.svg?branch=main"> </a> <a href="https://deno.land/x/evt"> <img src="https://img.shields.io/endpoint?url=https%3A%2F%2Fdeno-visualizer.danopia.net%2Fshields%2Flatest-version%2Fx%2Fevt%2Fmod.ts"> </a> <a href="https://www.npmjs.com/package/evt"> <img src="https://img.shields.io/npm/v/evt?logo=npm"> </a> <a href="https://bundlephobia.com/package/evt"> <img src="https://img.shields.io/bundlephobia/minzip/evt"> </a> <a href="https://www.npmjs.com/package/evt"> <img src="https://img.shields.io/npm/dm/evt"> </a> <a href="https://github.com/garronej/evt/blob/main/LICENSE"> <img src="https://img.shields.io/npm/l/evt"> </a> </p> </p> <p align="center"> <a href="https://www.evt.land">Home</a> - <a href="https://docs.evt.land">Documentation</a> </p>

'evt' is intended to be a replacement for 'events'.
It makes heavy use of typescript's type inference features to provide type safety while keeping things concise and elegant 🍸.

<b>Suitable for any JS runtime env (deno, node, old browsers, react-native ...)</b>

Can be imported in TypeScript projects using version TypeScript >= 3.8 (February 20th, 2020) and in any plain JS projects.

NOTE: There is very few breaking changes from v1 to v2. Check them out.

Who is using it

<p align="center"> <a href="https://connext.network"> <img src="https://user-images.githubusercontent.com/6702424/84102640-4e1e5c80-aa11-11ea-9d13-df0a65c8cdaf.png"> </a> <a href="https://www.semasim.com"> <img src="https://user-images.githubusercontent.com/6702424/84102785-aead9980-aa11-11ea-915b-5c4a5282c44e.png"> </a> <br> <a href="https://thegraph.com"> <img src="https://user-images.githubusercontent.com/6702424/179356567-19e2ca0a-9797-4c82-8a45-7e1d0de896a9.png"> </a> <a href="https://insee.fr"> <img src="https://user-images.githubusercontent.com/6702424/117936881-a9358f00-b305-11eb-84b9-e61593632bdd.png"> </a> <a href="https://www.etalab.gouv.fr/"> <img src="https://user-images.githubusercontent.com/6702424/179345089-3aee6170-e7aa-4b38-adf1-f7d132aa7be4.png"> </a> </p>

Install / Import

In Deno:

import { Evt } from "https://deno.land/x/evt/mod.ts";

Anywhere else:

$ npm install --save evt
import { Evt } from "evt"; 

Try it

<p align="center"> <img src="https://user-images.githubusercontent.com/6702424/179363007-582acf54-8f83-42ac-a062-562f8de40d14.gif"> <a href="https://stackblitz.com/edit/evt-playground-gfnidx?file=index.ts">Playground</a> </p>

Motivations

There are a lot of things that can't easily be done with EventEmitter:

Why would someone pick EVT over RxJS:

EVT is an attempt to address all these points while trying to remain as accessible as EventEmitter.

</br> <p align="center"> <a href="https://evt.land">Get Started</a> </p>

The sticker

<p align="center"> <img src="https://user-images.githubusercontent.com/6702424/90626180-e3607d00-e21a-11ea-9c88-82880ac9cedf.png"> </p> <p align="center"> <a href="https://teespring.com/fr/evt-sticker">Shop</a> </p>