mini-signals

WebJar for mini-signals

License

License

MIT
GroupId

GroupId

org.webjars.npm
ArtifactId

ArtifactId

mini-signals
Last Version

Last Version

1.2.0
Release Date

Release Date

Type

Type

jar
Description

Description

mini-signals
WebJar for mini-signals
Project URL

Project URL

http://webjars.org
Source Code Management

Source Code Management

https://github.com/Hypercubed/mini-signals

Download mini-signals

How to add to project

<!-- https://jarcasting.com/artifacts/org.webjars.npm/mini-signals/ -->
<dependency>
    <groupId>org.webjars.npm</groupId>
    <artifactId>mini-signals</artifactId>
    <version>1.2.0</version>
</dependency>
// https://jarcasting.com/artifacts/org.webjars.npm/mini-signals/
implementation 'org.webjars.npm:mini-signals:1.2.0'
// https://jarcasting.com/artifacts/org.webjars.npm/mini-signals/
implementation ("org.webjars.npm:mini-signals:1.2.0")
'org.webjars.npm:mini-signals:jar:1.2.0'
<dependency org="org.webjars.npm" name="mini-signals" rev="1.2.0">
  <artifact name="mini-signals" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.webjars.npm', module='mini-signals', version='1.2.0')
)
libraryDependencies += "org.webjars.npm" % "mini-signals" % "1.2.0"
[org.webjars.npm/mini-signals "1.2.0"]

Dependencies

There are no dependencies for this project. It is a standalone project that does not depend on any other jars.

Project Modules

There are no modules declared in this project.

mini-signals

signals, in JavaScript, fast

NPM Build Status Codacy Badge License

Description

Custom event/messaging system for JavaScript inspired by js-signals originally based on EventEmitter3 code base.

There are several advantages to signals over event-emitters (see Comparison between different Observer Pattern implementations). However, the current implementation of js-signals is (arguably) slow compared to other implementations (see EventsSpeedTests). mini-signals is a fast, minimal emitter, with an API similar to js-signals.

Install

npm:

npm install mini-signals

jspm:

jspm install mini-signals=npm:mini-signals

bower:

bower install mini-signals

Example Usage

When not using a module loader the mini-signals constructor (MiniSignal) is global.

var MiniSignal = require('mini-signals');
var mySignal = new MiniSignal();

var binding = mySignal.add(onSignal);   //add listener
mySignal.dispatch('foo', 'bar');        //dispatch signal passing custom parameters
binding.detach();                       //remove a single listener

function onSignal(foo, bar) {
  assert(foo === 'foo');
  assert(bar === 'bar');
}

Another Example

var myObject = {
  foo: 'bar',
  updated: new MiniSignal()
}

myObject.updated.add(onUpdated,myObject);   //add listener with context

myObject.foo = 'baz';
myObject.updated.dispatch();                 //dispatch signal

function onUpdated() {
  assert(this === myObject);
  assert(this.foo === 'baz');
}

API

See API.md

License

Copyright (c) 2015 Jayson Harshbarger

MIT License

Versions

Version
1.2.0
1.1.1