Files
med-notes/resource-provider/node_modules/.pnpm/mutter@1.0.1/node_modules/mutter/index.js
2025-06-26 03:35:15 +00:00

83 lines
946 B
JavaScript

/**
* Store
*/
var evt = {};
/**
* Expose
*/
module.exports = {
/**
* On
*
* @param {String} key
* @param {Function} fn
* @api public
*/
on: function(key, fn) {
evt[key] || (evt[key] = []);
evt[key].push(fn);
},
/**
* Off
*
* @param {String} key
* @param {Function} fn
* @api public
*/
off: function(key, fn) {
var val = evt[key];
if(!val) return;
var i = val.indexOf(fn);
if(-1 == i) return;
val.splice(i, 1);
},
/**
* One
*
* @param {String} key
* @param {Mixed} val
* @api public
*/
one: function(key, val) {
var ref = evt[key];
if(!ref || !ref.length) return;
ref[0](val);
},
/**
* Emit
*
* @param {String} key
* @param {Mixed} val
* @api public
*/
emit: function(key, val) {
if(!evt[key]) return;
evt[key].forEach(emit);
function emit(fn) {
fn(val);
}
}
};