UNPKG

@tsclean/core

Version:

Plugin for API Rest Full development, based on Clean Architecture, IoC and Dependency Injection.

115 lines 14.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ApplicationConfig = void 0; class ApplicationConfig { constructor(ioAdapter = null) { this.ioAdapter = ioAdapter; this.globalPrefix = ''; this.globalPrefixOptions = {}; this.globalHandlers = []; this.globalFilters = []; this.globalInterceptors = []; this.globalGuards = []; this.globalAccessResource = []; this.globalRequestHandlers = []; this.globalRequestFilters = []; this.globalRequestInterceptors = []; this.globalRequestGuards = []; this.globalRequestAccessResource = []; } setGlobalPrefix(prefix) { this.globalPrefix = prefix; } getGlobalPrefix() { return this.globalPrefix; } setGlobalPrefixOptions(options) { this.globalPrefixOptions = options; } getGlobalPrefixOptions() { return this.globalPrefixOptions; } setIoAdapter(ioAdapter) { this.ioAdapter = ioAdapter; } getIoAdapter() { return this.ioAdapter; } addGlobalHandler(handler) { this.globalHandlers.push(handler); } useGlobalHandlers(...pipes) { this.globalHandlers = this.globalHandlers.concat(pipes); } getGlobalFilters() { return this.globalFilters; } addGlobalFilter(filter) { this.globalFilters.push(filter); } useGlobalFilters(...filters) { this.globalFilters = this.globalFilters.concat(filters); } getGlobalHandlers() { return this.globalHandlers; } getGlobalInterceptors() { return this.globalInterceptors; } addGlobalInterceptor(interceptor) { this.globalInterceptors.push(interceptor); } useGlobalInterceptors(...interceptors) { this.globalInterceptors = this.globalInterceptors.concat(interceptors); } getGlobalGuards() { return this.globalGuards; } addGlobalGuard(guard) { this.globalGuards.push(guard); } useGlobalGuards(...guards) { this.globalGuards = this.globalGuards.concat(guards); } getGlobalAccessResources() { return this.globalAccessResource; } addGlobalAccessResource(guard) { this.globalAccessResource.push(guard); } useGlobalAccessResource(...guards) { this.globalAccessResource = this.globalAccessResource.concat(guards); } addGlobalRequestInterceptor(wrapper) { this.globalRequestInterceptors.push(wrapper); } getGlobalRequestInterceptors() { return this.globalRequestInterceptors; } addGlobalRequestHandler(wrapper) { this.globalRequestHandlers.push(wrapper); } getGlobalRequestHandlers() { return this.globalRequestHandlers; } addGlobalRequestFilter(wrapper) { this.globalRequestFilters.push(wrapper); } getGlobalRequestFilters() { return this.globalRequestFilters; } addGlobalRequestGuard(wrapper) { this.globalRequestGuards.push(wrapper); } getGlobalRequestGuards() { return this.globalRequestGuards; } addGlobalRequestAccessResource(wrapper) { this.globalRequestAccessResource.push(wrapper); } getGlobalRequestAccessResource() { return this.globalRequestAccessResource; } } exports.ApplicationConfig = ApplicationConfig; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwcC9hcHBsaWNhdGlvbi1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBVUEsTUFBYSxpQkFBaUI7SUFjNUIsWUFBb0IsWUFBcUMsSUFBSTtRQUF6QyxjQUFTLEdBQVQsU0FBUyxDQUFnQztRQWJyRCxpQkFBWSxHQUFHLEVBQUUsQ0FBQztRQUNsQix3QkFBbUIsR0FBZ0UsRUFBRSxDQUFDO1FBQ3RGLG1CQUFjLEdBQTRCLEVBQUUsQ0FBQztRQUM3QyxrQkFBYSxHQUFvQyxFQUFFLENBQUM7UUFDcEQsdUJBQWtCLEdBQWdDLEVBQUUsQ0FBQztRQUNyRCxpQkFBWSxHQUF1QixFQUFFLENBQUM7UUFDdEMseUJBQW9CLEdBQW1DLEVBQUUsQ0FBQztRQUNqRCwwQkFBcUIsR0FBd0MsRUFBRSxDQUFDO1FBQ2hFLHlCQUFvQixHQUFnRCxFQUFFLENBQUM7UUFDdkUsOEJBQXlCLEdBQTRDLEVBQUUsQ0FBQztRQUN4RSx3QkFBbUIsR0FBbUMsRUFBRSxDQUFDO1FBQ3pELGdDQUEyQixHQUErQyxFQUFFLENBQUM7SUFFOUIsQ0FBQztJQUUxRCxlQUFlLENBQUMsTUFBYztRQUNuQyxJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQztJQUM3QixDQUFDO0lBRU0sZUFBZTtRQUNwQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUVNLHNCQUFzQixDQUFDLE9BQW9FO1FBQ2hHLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxPQUFPLENBQUM7SUFDckMsQ0FBQztJQUVNLHNCQUFzQjtRQUMzQixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUNsQyxDQUFDO0lBRU0sWUFBWSxDQUFDLFNBQTJCO1FBQzdDLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO0lBQzdCLENBQUM7SUFFTSxZQUFZO1FBQ2pCLE9BQU8sSUFBSSxD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QkFBc0I7UUFDM0IsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDbEMsQ0FBQztJQUVNLDhCQUE4QixDQUFDLE9BQWlEO1FBQ3JGLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVNLDhCQUE4QjtRQUNuQyxPQUFPLElBQUksQ0FBQywyQkFBMkIsQ0FBQztJQUMxQyxDQUFDO0NBQ0Y7QUE1SUQsOENBNElDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5zdGFuY2VXcmFwcGVyIH0gZnJvbSAnLi4vY29yZSc7XG5pbXBvcnQge0V4Y2x1ZGVSb3V0ZU1ldGFkYXRhSW50ZXJmYWNlLCBIYW5kbGVyVHJhbnNmb3JtLCBXZWJTb2NrZXRBZGFwdGVyfSBmcm9tICcuLi9jb250cmFjdHMnO1xuaW1wb3J0IHtcbiAgQWNjZXNzUmVzb3VyY2VJbnRlcmZhY2UsXG4gIEV4Y2VwdGlvbkZpbHRlckludGVyZmFjZSxcbiAgR2xvYmFsUHJlZml4T3B0aW9uc0ludGVyZmFjZSxcbiAgSW50ZXJjZXB0b3JJbnRlcmZhY2UsXG59IGZyb20gXCIuLi9jb250cmFjdHNcIjtcbmltcG9ydCB7IENhbkFjdGl2YXRlIH0gZnJvbSAnLi4vY29udHJhY3RzL2Nhbi1hY3RpdmF0ZSc7XG5cbmV4cG9ydCBjbGFzcyBBcHBsaWNhdGlvbkNvbmZpZyB7XG4gIHByaXZhdGUgZ2xvYmFsUHJlZml4ID0gJyc7XG4gIHByaXZhdGUgZ2xvYmFsUHJlZml4T3B0aW9uczogR2xvYmFsUHJlZml4T3B0aW9uc0ludGVyZmFjZTxFeGNsdWRlUm91dGVNZXRhZGF0YUludGVyZmFjZT4gPSB7fTtcbiAgcHJpdmF0ZSBnbG9iYWxIYW5kbGVyczogQXJyYXk8SGFuZGxlclRyYW5zZm9ybT4gPSBbXTtcbiAgcHJpdmF0ZSBnbG9iYWxGaWx0ZXJzOiBBcnJheTxFeGNlcHRpb25GaWx0ZXJJbnRlcmZhY2U+ID0gW107XG4gIHByaXZhdGUgZ2xvYmFsSW50ZXJjZXB0b3JzOiBBcnJheTxJbnRlcmNlcHRvckludGVyZmFjZT4gPSBbXTtcbiAgcHJpdmF0ZSBnbG9iYWxHdWFyZHM6IEFycmF5PENhbkFjdGl2YXRlPiA9IFtdO1xuICBwcml2YXRlIGdsb2JhbEFjY2Vzc1Jlc291cmNlOiBBcnJheTxBY2Nlc3NSZXNvdXJjZUludGVyZmFjZT4gPSBbXTtcbiAgcHJpdmF0ZSByZWFkb25seSBnbG9iYWxSZXF1ZXN0SGFuZGxlcnM6IEluc3RhbmNlV3JhcHBlcjxIYW5kbGVyVHJhbnNmb3JtPltdID0gW107XG4gIHByaXZhdGUgcmVhZG9ubHkgZ2xvYmFsUmVxdWVzdEZpbHRlcnM6IEluc3RhbmNlV3JhcHBlcjxFeGNlcHRpb25GaWx0ZXJJbnRlcmZhY2U+W10gPSBbXTtcbiAgcHJpdmF0ZSByZWFkb25seSBnbG9iYWxSZXF1ZXN0SW50ZXJjZXB0b3JzOiBJbnN0YW5jZVdyYXBwZXI8SW50ZXJjZXB0b3JJbnRlcmZhY2U+W10gPSBbXTtcbiAgcHJpdmF0ZSByZWFkb25seSBnbG9iYWxSZXF1ZXN0R3VhcmRzOiBJbnN0YW5jZVdyYXBwZXI8Q2FuQWN0aXZhdGU+W10gPSBbXTtcbiAgcHJpdmF0ZSByZWFkb25seSBnbG9iYWxSZXF1ZXN0QWNjZXNzUmVzb3VyY2U6IEluc3RhbmNlV3JhcHBlcjxBY2Nlc3NSZXNvdXJjZUludGVyZmFjZT5bXSA9IFtdO1xuIFxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGlvQWRhcHRlcjogV2ViU29ja2V0QWRhcHRlciB8IG51bGwgPSBudWxsKSB7fVxuXG4gIHB1YmxpYyBzZXRHbG9iYWxQcmVmaXgocHJlZml4OiBzdHJpbmcpIHtcbiAgICB0aGlzLmdsb2JhbFByZWZpeCA9IHByZWZpeDtcbiAgfVxuXG4gIHB1YmxpYyBnZXRHbG9iYWxQcmVmaXgoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2xvYmFsUHJlZml4O1xuICB9XG5cbiAgcHVibGljIHNldEdsb2JhbFByZWZpeE9wdGlvbnMob3B0aW9uczogR2xvYmFsUHJlZml4T3B0aW9uc0ludGVyZmFjZTxFeGNsdWRlUm91dGVNZXRhZGF0YUludGVyZmFjZT4pIHtcbiAgICB0aGlzLmdsb2JhbFByZWZpeE9wdGlvbnMgPSBvcHRpb25zO1xuICB9XG5cbiAgcHVibGljIGdldEdsb2JhbFByZWZpeE9wdGlvbnMoKTogR2xvYmFsUHJlZml4T3B0aW9uc0ludGVyZmFjZTxFeGNsdWRlUm91dGVNZXRhZGF0YUludGVyZmFjZT4ge1xuICAgIHJldHVybiB0aGlzLmdsb2JhbFByZWZpeE9wdGlvbnM7XG4gIH1cblxuICBwdWJsaWMgc2V0SW9BZGFwdGVyKGlvQWRhcHRlcjogV2ViU29ja2V0QWRhcHRlcikge1xuICAgIHRoaXMuaW9BZGFwdGVyID0gaW9BZGFwdGVyO1xuICB9XG5cbiAgcHVibGljIGdldElvQWRhcHRlcigpOiBXZWJTb2NrZXRBZGFwdGVyIHtcbiAgICByZXR1cm4gdGhpcy5pb0FkYXB0ZXI7XG4gIH1cblxuICBwdWJsaWMgYWRkR2xvYmFsSGFuZGxlcihoYW5kbGVyOiBIYW5kbGVyVHJhbnNmb3JtPGFueT4pIHtcbiAgICB0aGlzLmdsb2JhbEhhbmRsZXJzLnB1c2goaGFuZGxlcik7XG4gIH1cblxuICBwdWJsaWMgdXNlR2xvYmFsSGFuZGxlcnMoLi4ucGlwZXM6IEhhbmRsZXJUcmFuc2Zvcm08YW55PltdKSB7XG4gICAgdGhpcy5nbG9iYWxIYW5kbGVycyA9IHRoaXMuZ2xvYmFsSGFuZGxlcnMuY29uY2F0KHBpcGVzKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRHbG9iYWxGaWx0ZXJzKCk6IEV4Y2VwdGlvbkZpbHRlckludGVyZmFjZVtdIHtcbiAgICByZXR1cm4gdGhpcy5nbG9iYWxGaWx0ZXJzO1xuICB9XG5cbiAgcHVibGljIGFkZEdsb2JhbEZpbHRlcihmaWx0ZXI6IEV4Y2VwdGlvbkZpbHRlckludGVyZmFjZSkge1xuICAgIHRoaXMuZ2xvYmFsRmlsdGVycy5wdXNoKGZpbHRlcik7XG4gIH1cblxuICBwdWJsaWMgdXNlR2xvYmFsRmlsdGVycyguLi5maWx0ZXJzOiBFeGNlcHRpb25GaWx0ZXJJbnRlcmZhY2VbXSkge1xuICAgIHRoaXMuZ2xvYmFsRmlsdGVycyA9IHRoaXMuZ2xvYmFsRmlsdGVycy5jb25jYXQoZmlsdGVycyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0R2xvYmFsSGFuZGxlcnMoKTogSGFuZGxlclRyYW5zZm9ybTxhbnk+W10ge1xuICAgIHJldHVybiB0aGlzLmdsb2JhbEhhbmRsZXJzO1xuICB9XG5cbiAgcHVibGljIGdldEdsb2JhbEludGVyY2VwdG9ycygpOiBJbnRlcmNlcHRvckludGVyZmFjZVtdIHtcbiAgICByZXR1cm4gdGhpcy5nbG9iYWxJbnRlcmNlcHRvcnM7XG4gIH1cblxuICBwdWJsaWMgYWRkR2xvYmFsSW50ZXJjZXB0b3IoaW50ZXJjZXB0b3I6IEludGVyY2VwdG9ySW50ZXJmYWNlKSB7XG4gICAgdGhpcy5nbG9iYWxJbnRlcmNlcHRvcnMucHVzaChpbnRlcmNlcHRvcik7XG4gIH1cblxuICBwdWJsaWMgdXNlR2xvYmFsSW50ZXJjZXB0b3JzKC4uLmludGVyY2VwdG9yczogSW50ZXJjZXB0b3JJbnRlcmZhY2VbXSkge1xuICAgIHRoaXMuZ2xvYmFsSW50ZXJjZXB0b3JzID0gdGhpcy5nbG9iYWxJbnRlcmNlcHRvcnMuY29uY2F0KGludGVyY2VwdG9ycyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0R2xvYmFsR3VhcmRzKCk6IENhbkFjdGl2YXRlW10ge1xuICAgIHJldHVybiB0aGlzLmdsb2JhbEd1YXJkcztcbiAgfVxuXG4gIHB1YmxpYyBhZGRHbG9iYWxHdWFyZChndWFyZDogQ2FuQWN0aXZhdGUpIHtcbiAgICB0aGlzLmdsb2JhbEd1YXJkcy5wdXNoKGd1YXJkKTtcbiAgfVxuXG4gIHB1YmxpYyB1c2VHbG9iYWxHdWFyZHMoLi4uZ3VhcmRzOiBDYW5BY3RpdmF0ZVtdKSB7XG4gICAgdGhpcy5nbG9iYWxHdWFyZHMgPSB0aGlzLmdsb2JhbEd1YXJkcy5jb25jYXQoZ3VhcmRzKTtcbiAgfVxuXG5cbiAgcHVibGljIGdldEdsb2JhbEFjY2Vzc1Jlc291cmNlcygpOiBBY2Nlc3NSZXNvdXJjZUludGVyZmFjZVtdIHtcbiAgICByZXR1cm4gdGhpcy5nbG9iYWxBY2Nlc3NSZXNvdXJjZTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRHbG9iYWxBY2Nlc3NSZXNvdXJjZShndWFyZDogQWNjZXNzUmVzb3VyY2VJbnRlcmZhY2UpIHtcbiAgICB0aGlzLmdsb2JhbEFjY2Vzc1Jlc291cmNlLnB1c2goZ3VhcmQpO1xuICB9XG5cbiAgcHVibGljIHVzZUdsb2JhbEFjY2Vzc1Jlc291cmNlKC4uLmd1YXJkczogQWNjZXNzUmVzb3VyY2VJbnRlcmZhY2VbXSkge1xuICAgIHRoaXMuZ2xvYmFsQWNjZXNzUmVzb3VyY2UgPSB0aGlzLmdsb2JhbEFjY2Vzc1Jlc291cmNlLmNvbmNhdChndWFyZHMpO1xuICB9XG5cbiAgcHVibGljIGFkZEdsb2JhbFJlcXVlc3RJbnRlcmNlcHRvcih3cmFwcGVyOiBJbnN0YW5jZVdyYXBwZXI8SW50ZXJjZXB0b3JJbnRlcmZhY2U+KSB7XG4gICAgdGhpcy5nbG9iYWxSZXF1ZXN0SW50ZXJjZXB0b3JzLnB1c2god3JhcHBlcik7XG4gIH1cblxuICBwdWJsaWMgZ2V0R2xvYmFsUmVxdWVzdEludGVyY2VwdG9ycygpOiBJbnN0YW5jZVdyYXBwZXI8SW50ZXJjZXB0b3JJbnRlcmZhY2U+W10ge1xuICAgIHJldHVybiB0aGlzLmdsb2JhbFJlcXVlc3RJbnRlcmNlcHRvcnM7XG4gIH1cblxuICBwdWJsaWMgYWRkR2xvYmFsUmVxdWVzdEhhbmRsZXIod3JhcHBlcjogSW5zdGFuY2VXcmFwcGVyPEhhbmRsZXJUcmFuc2Zvcm0+KSB7XG4gICAgdGhpcy5nbG9iYWxSZXF1ZXN0SGFuZGxlcnMucHVzaCh3cmFwcGVyKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRHbG9iYWxSZXF1ZXN0SGFuZGxlcnMoKTogSW5zdGFuY2VXcmFwcGVyPEhhbmRsZXJUcmFuc2Zvcm0+W10ge1xuICAgIHJldHVybiB0aGlzLmdsb2JhbFJlcXVlc3RIYW5kbGVycztcbiAgfVxuXG4gIHB1YmxpYyBhZGRHbG9iYWxSZXF1ZXN0RmlsdGVyKHdyYXBwZXI6IEluc3RhbmNlV3JhcHBlcjxFeGNlcHRpb25GaWx0ZXJJbnRlcmZhY2U+KSB7XG4gICAgdGhpcy5nbG9iYWxSZXF1ZXN0RmlsdGVycy5wdXNoKHdyYXBwZXIpO1xuICB9XG5cbiAgcHVibGljIGdldEdsb2JhbFJlcXVlc3RGaWx0ZXJzKCk6IEluc3RhbmNlV3JhcHBlcjxFeGNlcHRpb25GaWx0ZXJJbnRlcmZhY2U+W10ge1xuICAgIHJldHVybiB0aGlzLmdsb2JhbFJlcXVlc3RGaWx0ZXJzO1xuICB9XG5cbiAgcHVibGljIGFkZEdsb2JhbFJlcXVlc3RHdWFyZCh3cmFwcGVyOiBJbnN0YW5jZVdyYXBwZXI8Q2FuQWN0aXZhdGU+KSB7XG4gICAgdGhpcy5nbG9iYWxSZXF1ZXN0R3VhcmRzLnB1c2god3JhcHBlcik7XG4gIH1cblxuICBwdWJsaWMgZ2V0R2xvYmFsUmVxdWVzdEd1YXJkcygpOiBJbnN0YW5jZVdyYXBwZXI8Q2FuQWN0aXZhdGU+W10ge1xuICAgIHJldHVybiB0aGlzLmdsb2JhbFJlcXVlc3RHdWFyZHM7XG4gIH1cblxuICBwdWJsaWMgYWRkR2xvYmFsUmVxdWVzdEFjY2Vzc1Jlc291cmNlKHdyYXBwZXI6IEluc3RhbmNlV3JhcHBlcjxBY2Nlc3NSZXNvdXJjZUludGVyZmFjZT4pIHtcbiAgICB0aGlzLmdsb2JhbFJlcXVlc3RBY2Nlc3NSZXNvdXJjZS5wdXNoKHdyYXBwZXIpO1xuICB9XG5cbiAgcHVibGljIGdldEdsb2JhbFJlcXVlc3RBY2Nlc3NSZXNvdXJjZSgpOiBJbnN0YW5jZVdyYXBwZXI8QWNjZXNzUmVzb3VyY2VJbnRlcmZhY2U+W10ge1xuICAgIHJldHVybiB0aGlzLmdsb2JhbFJlcXVlc3RBY2Nlc3NSZXNvdXJjZTtcbiAgfVxufVxuIl19