Coder Social home page Coder Social logo

khirayama / micro-emitter Goto Github PK

View Code? Open in Web Editor NEW
14.0 4.0 1.0 592 KB

Micro Event Emitter in TypeScript

Home Page: https://www.npmjs.com/package/micro-emitter

License: MIT License

JavaScript 5.10% TypeScript 94.90%
emitter typescript trigger addlistener

micro-emitter's Introduction

MicroEmitter

npm version
micro event emitter in TypeScript.
Before v1.2.0, micro-emitter made by es6. If you want see that, please check it.

Motivation

I wanted a simple emitter for my apps I created. So, I made an independent, no-dependency emitter under 100 lines.

Getting Started

$ npm install micro-emitter
import MicroEmitter from 'micro-emitter';

let emitter = new MicroEmitter();
var MicroEmitter = require('micro-emitter');

var emitter = new MicroEmitter();

API

It has 4 API and some alias only.

  • addListener(on)
  • addOnceListener(once)
  • removeLister(off)
  • emit(trigger)

addListene(on)/addOnceListener(once)

const CHANGE_EVENT = 'CHANGE_EVENT';

emitter.addListener(CHANGE_EVENT, callbak);
emitter.on(CHANGE_EVENT, callbak);
emitter.addOnceListener(CHANGE_EVENT, callbak); // only first time
emitter.once(CHANGE_EVENT, callbak); // only first time

removeListener(off)

const CHANGE_EVENT = 'CHANGE_EVENT';

emitter.removeListener(CHANGE_EVENT);
emitter.off(CHANGE_EVENT);

emit(trigger)

const CHANGE_EVENT = 'CHANGE_EVENT';

emitter.addListener(CHANGE_EVENT, (payload) => {
    console.log(payload); // { message: 'Hello MicroEmitter!' }
});
emitter.emit(CHANGE_EVENT, { message: 'Hello MicroEmitter!' });

Example

simple and complete example.

import MicroEmitter from 'micro-emitter';

const CHANGE_EVENT = 'CHANGE_EVENT';

const emitter = new MicroEmitter();

emitter.addListener(CHANGE_EVENT, (payload) => {
  alert(payload.message);
});

setTimeout(() => {
  emitter.emit(CHANGE_EVENT, { message: 'Hello MicroEmitter!' }});
}, 1000);

micro-emitter's People

Contributors

khirayama avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

osugahiroshi

micro-emitter's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.