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
JavaScript
;
// 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;