Initial commit
[yaffs-website] / node_modules / sparkles / index.js
1 'use strict';
2
3 var EventEmitter = require('events').EventEmitter;
4
5 var sparklesNamespace = 'store@sparkles';
6 var defaultNamespace = 'default';
7
8 function getStore(){
9   var store = global[sparklesNamespace];
10
11   if(!store){
12     store = global[sparklesNamespace] = {};
13   }
14
15   return store;
16 }
17
18 function getEmitter(namespace){
19
20   var store = getStore();
21
22   namespace = namespace || defaultNamespace;
23
24   var ee = store[namespace];
25
26   if(!ee){
27     ee = store[namespace] = new EventEmitter();
28     ee.setMaxListeners(0);
29     ee.remove = function remove(){
30       ee.removeAllListeners();
31       delete store[namespace];
32     };
33   }
34
35   return ee;
36 }
37
38 function exists(namespace){
39   var store = getStore();
40
41   return !!(store[namespace]);
42 }
43
44 module.exports = getEmitter;
45 module.exports.exists = exists;