UNPKG

rjweb-server

Version:

Easy and Robust Way to create a Web Server with Many Easy-to-use Features in NodeJS

65 lines (64 loc) 1.9 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var miniEventEmitter_exports = {}; __export(miniEventEmitter_exports, { default: () => MiniEventEmitter }); module.exports = __toCommonJS(miniEventEmitter_exports); const normalize = (o) => o ?? []; class MiniEventEmitter { constructor() { this.listeners = {}; } /** * Listen for an Event * @since 7.7.0 */ listen(event, callback) { this.listeners[event] = normalize(this.listeners[event]); this.listeners[event].push(callback); return this; } /** * Remove a listener * @since 7.7.0 */ unlist(event, callback) { this.listeners[event] = this.listeners[event].filter((e) => Object.is(e, callback)); return this; } /** * Send (Emit) an Event * @since 7.7.0 */ async send(event, ...args) { this.listeners[event] = normalize(this.listeners[event]); const returns = []; for (const callback of this.listeners[event]) { try { const res = await Promise.resolve(callback(...args)); returns.push(res); } catch (err) { returns.push(err); break; } } return returns; } }