UNPKG

desi-mongoose

Version:

A fun and intuitive MongoDB ODM for Node.js with a Hinglish twist

50 lines (49 loc) 2.01 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DesiEvents = void 0; class DesiEvents { static pehle(event, handler) { console.log(`🎭 ${event} se pehle ka handler add kar rahe hain...`); const handlers = this.middleware.get(`pre:${event}`) || []; handlers.push(handler); this.middleware.set(`pre:${event}`, handlers); } static baadMein(event, handler) { console.log(`🎭 ${event} ke baad ka handler add kar rahe hain...`); const handlers = this.middleware.get(`post:${event}`) || []; handlers.push(handler); this.middleware.set(`post:${event}`, handlers); } static sunno(event, callback) { console.log(`👂 ${event} ke liye listener add kar rahe hain...`); const current = this.listeners.get(event) || []; this.listeners.set(event, [...current, callback]); } static async bolo(event, ...args) { // Run pre-event middleware await this.chalaoMiddleware('pre', event, ...args); // Run event handlers console.log(`🗣️ ${event} event trigger kar rahe hain...`); const callbacks = this.listeners.get(event) || []; for (const callback of callbacks) { await callback(...args); } // Run post-event middleware await this.chalaoMiddleware('post', event, ...args); } static async chalaoMiddleware(phase, event, ...args) { const eventKey = `${phase}:${event}`; const handlers = this.middleware.get(eventKey) || []; for (const handler of handlers) { await handler(...args); } } static hatao(event, handler) { console.log(`🚫 ${event} ka handler hata rahe hain...`); const current = this.listeners.get(event) || []; this.listeners.set(event, current.filter(h => h !== handler)); } } exports.DesiEvents = DesiEvents; DesiEvents.listeners = new Map(); DesiEvents.middleware = new Map();