miniorm
Version:
A lightweight, minimal TypeScript ORM & query‑builder for MySQL, PostgreSQL and SQLite
37 lines (36 loc) • 1.62 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.EventManager = void 0;
class EventManager {
static on(event, func) {
this.events.push({ event, func, once: false });
}
static once(event, func) {
this.events.push({ event, func, once: true });
}
static emit(event, ...args) {
setTimeout(() => {
const matchingEvents = this.events.filter(e => e.event === event);
for (const e of matchingEvents)
(() => __awaiter(this, void 0, void 0, function* () { return yield e.func(...args); }))();
this.events = this.events.filter(e => !(e.event === event && e.once));
}, -1);
}
static clear(event) {
if (event)
this.events = this.events.filter(e => e.event !== event);
else
this.events = [];
}
}
exports.EventManager = EventManager;
EventManager.events = [];