Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
notion-enhanced / usr / lib / notion-enhanced / resources / app / shared / EventEmitterMap.js
Size: Mime:
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
class EventEmitterMap {
    constructor() {
        this.listeners = {};
    }
    addListener(key, callback) {
        let set = this.listeners[key];
        if (!set) {
            set = new Set();
            this.listeners[key] = set;
        }
        set.add(callback);
    }
    addOnceListener(key, callback) {
        const wrappedCallback = (...args) => {
            this.removeListener(key, wrappedCallback);
            callback(...args);
        };
        this.addListener(key, wrappedCallback);
    }
    removeListener(key, callback) {
        const set = this.listeners[key];
        if (set) {
            set.delete(callback);
            if (set.size === 0) {
                delete this.listeners[key];
            }
        }
    }
    emit(key, ...args) {
        const set = this.listeners[key];
        if (set) {
            set.forEach(callback => callback(...args));
        }
    }
    listenerCount(key) {
        const set = this.listeners[key];
        if (set) {
            return set.size;
        }
        else {
            return 0;
        }
    }
}
exports.default = EventEmitterMap;
//# sourceMappingURL=EventEmitterMap.js.map

//notion-enhancer
require('notion-enhancer/pkg/loader.js')(__filename, exports);