@454creative/easy-events
Version:
A minimal event engine for Node.js and NestJS, wrapping Emmett for lightweight in-process event handling
86 lines • 3.94 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.createEventsInstance = exports.Events = void 0;
const emmett_engine_1 = require("./emmett-engine");
const observability_engine_1 = require("./observability-engine");
const storage_engines_1 = require("./storage-engines");
// Export the singleton Events instance (observability is optional)
exports.Events = new emmett_engine_1.EmmettEngine();
// Factory function for creating events instances with proper error handling
function createEventsInstance(options) {
try {
const engine = new emmett_engine_1.EmmettEngine();
// Initialize observability if requested
if (options?.enableObservability) {
try {
const observability = new observability_engine_1.DefaultObservabilityEngine(options.observabilityConfig);
engine.setObservability(observability);
if (options.logger) {
options.logger.info('Easy Events: Observability engine initialized successfully');
}
}
catch (error) {
if (options.logger) {
options.logger.warn('Easy Events: Failed to initialize observability engine, continuing without observability');
}
else {
console.warn('Easy Events: Failed to initialize observability engine, continuing without observability');
}
}
}
// Initialize storage if requested
if (options?.enableStorage) {
try {
// Note: Storage integration would need to be added to observability engine
new storage_engines_1.MemoryStorageEngine();
if (options.logger) {
options.logger.info('Easy Events: Storage engine initialized successfully');
}
}
catch (error) {
if (options.logger) {
options.logger.warn('Easy Events: Failed to initialize storage engine, continuing without storage');
}
else {
console.warn('Easy Events: Failed to initialize storage engine, continuing without storage');
}
}
}
return engine;
}
catch (error) {
if (options?.logger) {
options.logger.error('Easy Events: Failed to create events instance');
}
else {
console.error('Easy Events: Failed to create events instance');
}
// Return a basic engine as fallback
return new emmett_engine_1.EmmettEngine();
}
}
exports.createEventsInstance = createEventsInstance;
// Export the interface and engine class for custom implementations
__exportStar(require("./event-engine.interface"), exports);
__exportStar(require("./emmett-engine"), exports);
__exportStar(require("./observability.interface"), exports);
__exportStar(require("./observability-engine"), exports);
__exportStar(require("./storage.interface"), exports);
__exportStar(require("./storage-engines"), exports);
// Export NestJS providers for better integration
__exportStar(require("./nestjs-providers"), exports);
//# sourceMappingURL=index.js.map