UNPKG

nigerian-mobile-validator

Version:

The most rigorous, up-to-date library for validating Nigerian mobile numbers. Fully NCC-compliant, and security-focused, with enterprise-grade features to prevent the business risks of validation failures in regulated industries.

64 lines (63 loc) 2.37 kB
"use strict"; // src/events/event-emitter.ts Object.defineProperty(exports, "__esModule", { value: true }); exports.createEventEmitter = void 0; const events_1 = require("events"); const runtime_environment_1 = require("../utils/runtime-environment"); /** * Create an environment-agnostic event emitter * This ensures compatibility with both browser and server environments */ function createEventEmitter() { // In browsers or Node.js, use the EventEmitter from the 'events' package if (runtime_environment_1.RuntimeEnvironment.currentEnvironment == runtime_environment_1.CurrentEnvironment.Browser || runtime_environment_1.RuntimeEnvironment.currentEnvironment == runtime_environment_1.CurrentEnvironment.Node) { return new events_1.EventEmitter(); } // In server environments without Node.js (rare case), create a minimal implementation return { _events: new Map(), on(event, listener) { if (!this._events.has(event)) { this._events.set(event, []); } this._events.get(event).push(listener); return this; }, off(event, listener) { if (!this._events.has(event)) return this; const listeners = this._events.get(event); const index = listeners.indexOf(listener); if (index !== -1) { listeners.splice(index, 1); } return this; }, emit(event, ...args) { if (!this._events.has(event)) return false; const listeners = this._events.get(event); // Properly type the listener function and add error handling listeners.forEach((listener) => { try { listener(...args); } catch (error) { console.error(`Error in event listener for "${event}":`, error); // Optionally, we could also emit an 'error' event here } }); return true; }, removeAllListeners(event) { if (event) { this._events.delete(event); } else { this._events.clear(); } return this; } }; } exports.createEventEmitter = createEventEmitter;