Pub Sub Library for Communication in your App
// FILE APP.JS
import Com from '../src/Com';
const EVENTS = {
CATCHALL : '/',
WILDCARD : '/some/',
SPECIFIC_ONE : '/some/event',
SPECIFIC_TWO : '/some/other/event',
VARIOUS : {
ONE : '/foo/bar',
TWO : '/bazinga',
}
};
const COM = new Com();
COM.setSeparator( '/' );
COM.registerEventNames( EVENTS );
export const APP = {
COM : COM,
EVENTS : EVENTS
};
// FILE SOME-MODULE.JS
import APP from './App';
APP.COM.broadcast( APP.EVENTS.SPECIFIC_ONE, { some : 'data' } );
// FILE SOME-OTHER-MODULE.JS
import APP from './App';
let sub = APP.COM.subscribe( APP.EVENTS.SPECIFIC_ONE, function ( data ) {
console.log( data.some );
} );
sub.start();Install via yarn
yarn add app-com (--dev)
or npm
npm install app-com (--save-dev)
You can pass in extra options as a configuration object (➕ required, ➖ optional, ✏️ default).
import appCom from 'app-com';➖ property ( type ) ✏️ default
📝 description
❗️ warning
ℹ️ info
💡 example
appComSee example folder or the runkit example.
If you don't use a package manager, you can access app-com via unpkg (CDN), download the source, or point your package manager to the url.
app-com is compiled as a collection of CommonJS modules & [ES2015 modules](http://www.2ality.com/2014/0
-9/es6-modules-final.html) for bundlers that support the jsnext:main or module field in package.json (Rollup, Webpack 2)
The app-com package includes precompiled production and development UMD builds in the dist folder. They can be used directly without a bundler and are thus compatible with many popular JavaScript module loaders and environments. You can drop a UMD build as a <script> tag on your page. The UMD builds make app-com available as a window.appCom global variable.
The code is available under the MIT license.
We are open to contributions, see CONTRIBUTING.md for more info.
This module was created using generator-module-boilerplate.