UNPKG

dinoloop-es8

Version:

A lightweight REST API Library for building scalable Node.js server-side applications powered by Typescript

76 lines 6.41 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const dino_container_1 = require("./dino.container"); const utility_1 = require("../utility"); const middlewares_1 = require("../builtin/middlewares"); class AppContainer { constructor(app) { this.controllers = []; this.baseUri = ''; this.startMiddleware = []; this.endMiddleware = []; this.appStartMiddleware = []; this.errorMiddleware = []; this.raiseModelError = false; this.enableTaskContext = false; this.app = app; } build() { let dinoContainer = dino_container_1.DinoContainer.create({ app: this.app, raiseModelError: this.raiseModelError, enableTaskContext: this.enableTaskContext, routerCallback: this.useRouter, baseUri: this.baseUri, diContainer: this.diContainer, diResolveCb: this.diResolveCallback }); // attach dino property to response object on every request start dinoContainer.builtInRequestStartMiddleware(middlewares_1.DinoStartMiddleware); if (this.enableTaskContext) { dinoContainer.builtInRequestStartMiddleware(middlewares_1.TaskContextMiddleware); } if (!utility_1.DataUtility.isUndefinedOrNull(this.routeNotFoundMiddleware)) { dinoContainer.routeNotFoundMiddleware(this.routeNotFoundMiddleware); } for (const middleware of this.startMiddleware) { dinoContainer.requestStartMiddleware(middleware); } for (const controller of this.controllers) { dinoContainer.registerController(controller); } for (const middleware of this.endMiddleware) { dinoContainer.requestEndMiddleware(middleware); } // Note:- built-in RequestEndMiddleware must be registered // after registering user requestEndMiddlewares // register built-in RequestEndMiddleware dinoContainer.builtInRequestEndMiddleware(middlewares_1.HttpResponseMessageMiddleware); // register ResponseEndMiddleware as the last built-in RequestEndMiddleware dinoContainer.builtInRequestEndMiddleware(middlewares_1.ResponseEndMiddleware); for (const middleware of this.errorMiddleware) { dinoContainer.registerErrorMiddleware(middleware); } // Note:- built-in ErrorMiddleware must be registered // after registering user ErrorMiddlewares dinoContainer.builtInErrorMiddleware(middlewares_1.RouteExceptionMiddleware); dinoContainer.builtInErrorMiddleware(middlewares_1.HttpResponseExceptionMiddleware); dinoContainer.builtInErrorMiddleware(middlewares_1.ActionParamExceptionMiddleware); // Register the application error controller // This would be the last error middleware to handle error object // make sure to register only after registering ErrorMiddleWares if (!utility_1.DataUtility.isUndefinedOrNull(this.errorController)) { dinoContainer.registerErrorController(this.errorController); } // After binding to express // Start executing initialization code using appStartMiddleware for (const middleware of this.appStartMiddleware) { dinoContainer.appStartMiddleware(middleware); } } static create(app) { return new AppContainer(app); } } exports.AppContainer = AppContainer; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmNvbnRhaW5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2R1bGVzL2NvcmUvYXBwLmNvbnRhaW5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLHFEQUFpRDtBQUNqRCx3Q0FBeUM7QUFDekMsd0RBUWdDO0FBR2hDO0lBZ0JJLFlBQVksR0FBWTtRQWR4QixnQkFBVyxHQUFlLEVBQUUsQ0FBQztRQUM3QixZQUFPLEdBQVcsRUFBRSxDQUFDO1FBQ3JCLG9CQUFlLEdBQWUsRUFBRSxDQUFDO1FBQ2pDLGtCQUFhLEdBQWUsRUFBRSxDQUFDO1FBQy9CLHVCQUFrQixHQUFlLEVBQUUsQ0FBQztRQUtwQyxvQkFBZSxHQUFlLEVBQUUsQ0FBQztRQUNqQyxvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUN4QixzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFJdEIsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7SUFDbkIsQ0FBQztJQUVELEtBQUs7UUFFRCxJQUFJLGFBQWEsR0FBRyw4QkFBYSxDQUFDLE1BQU0sQ0FBQztZQUNyQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7WUFDYixlQUFlLEVBQUUsSUFBSSxDQUFDLGVBQWU7WUFDckMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQjtZQUN6QyxjQUFjLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDOUIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixXQUFXLEVBQUUsSUFBSSxDQUFDLGlCQUFpQjtTQUN0QyxDQUFDLENBQUM7UUFFSCxpRUFBaUU7UUFDakUsYUFBYSxDQUFDLDZCQUE2QixDQUFDLGlDQUFtQixDQUFDLENBQUM7UUFFakUsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDeEIsYUFBYSxDQUFDLDZCQUE2QixDQUFDLG1DQUFxQixDQUFDLENBQUM7U0FDdEU7UUFFRCxJQUFJLENBQUMscUJBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsRUFBRTtZQUM5RCxhQUFhLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUM7U0FDdkU7UUFFRCxLQUFLLE1BQU0sVUFBVSxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDM0MsYUFBYSxDQUFDLHNCQUFzQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ3BEO1FBRUQsS0FBSyxNQUFNLFVBQVUsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3ZDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUNoRDtRQUVELEtBQUssTUFBTSxVQUFVLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN6QyxhQUFhLENBQUMsb0JBQW9CLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDbEQ7UUFFRCwyREFBMkQ7UUFDM0QsK0NBQStDO1FBRS9DLHlDQUF5QztRQUN6QyxhQUFhLENBQUMsMkJBQTJCLENBQUMsMkNBQTZCLENBQUMsQ0FBQztRQUV6RSwyRUFBMkU7UUFDM0UsYUFBYSxDQUFDLDJCQUEyQixDQUFDLG1DQUFxQixDQUFDLENBQUM7UUFFakUsS0FBSyxNQUFNLFVBQVUsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQzNDLGFBQWEsQ0FBQyx1QkFBdUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUNyRDtRQUVELHNEQUFzRDtRQUN0RCwwQ0FBMEM7UUFFMUMsYUFBYSxDQUFDLHNCQUFzQixDQUFDLHNDQUF3QixDQUFDLENBQUM7UUFDL0QsYUFBYSxDQUFDLHNCQUFzQixDQUFDLDZDQUErQixDQUFDLENBQUM7UUFDdEUsYUFBYSxDQUFDLHNCQUFzQixDQUFDLDRDQUE4QixDQUFDLENBQUM7UUFFckUsNENBQTRDO1FBQzVDLGlFQUFpRTtRQUNqRSxnRUFBZ0U7UUFDaEUsSUFBSSxDQUFDLHFCQUFXLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFO1lBQ3RELGFBQWEsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7U0FDL0Q7UUFFRCwyQkFBMkI7UUFDM0IsK0RBQStEO1FBQy9ELEtBQUssTUFBTSxVQUFVLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQzlDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUNoRDtJQUNMLENBQUM7SUFFRCxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQVk7UUFDdEIsT0FBTyxJQUFJLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNqQyxDQUFDO0NBQ0o7QUE1RkQsb0NBNEZDIn0=