thrilled-be-core
Version:
Core Express backend package with middleware, logging, security, and base application setup
46 lines (45 loc) • 1.4 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.BasePlugin = void 0;
const Logger_1 = require("../logging/Logger");
class BasePlugin {
logger;
dependencies;
constructor(logger) {
this.logger = logger || Logger_1.Logger.create({ level: 'info' });
}
async register(app, config) {
await this.setup(config);
this.registerMiddleware(app);
this.registerRoutes(app);
this.registerErrorHandlers(app);
}
/**
* Register middleware for this plugin
*/
registerMiddleware(
// eslint-disable-next-line @typescript-eslint/no-unused-vars
_app) {
// Override in subclasses if needed
this.logger.debug(`Registering middleware for plugin: ${this.name}`);
}
/**
* Register routes for this plugin
*/
registerRoutes(
// eslint-disable-next-line @typescript-eslint/no-unused-vars
_app) {
// Override in subclasses if needed
this.logger.debug(`Registering routes for plugin: ${this.name}`);
}
/**
* Register error handlers for this plugin
*/
registerErrorHandlers(
// eslint-disable-next-line @typescript-eslint/no-unused-vars
_app) {
// Override in subclasses if needed
this.logger.debug(`Registering error handlers for plugin: ${this.name}`);
}
}
exports.BasePlugin = BasePlugin;