UNPKG

@tsclean/core

Version:

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

33 lines 6 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ContextCreator = void 0; const constants_1 = require("../core/injector/constants"); class ContextCreator { createContext(instance, callback, metadataKey, contextId = constants_1.STATIC_CONTEXT, inquirerId) { const globalMetadata = this.getGlobalMetadata && this.getGlobalMetadata(contextId, inquirerId); const classMetadata = this.reflectClassMetadata(instance, metadataKey); const methodMetadata = this.reflectMethodMetadata(callback, metadataKey); return [ ...this.createConcreteContext(globalMetadata || [], contextId, inquirerId), ...this.createConcreteContext(classMetadata, contextId, inquirerId), ...this.createConcreteContext(methodMetadata, contextId, inquirerId), ]; } reflectClassMetadata(instance, metadataKey) { const prototype = Object.getPrototypeOf(instance); return Reflect.getMetadata(metadataKey, prototype.constructor); } reflectMethodMetadata(callback, metadataKey) { return Reflect.getMetadata(metadataKey, callback); } getContextId(contextId, instanceWrapper) { return contextId.getParent ? contextId.getParent({ token: instanceWrapper.token, isTreeDurable: instanceWrapper.isDependencyTreeDurable(), }) : contextId; } } exports.ContextCreator = ContextCreator; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1jcmVhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHBlcnMvY29udGV4dC1jcmVhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDBEQUEwRDtBQUkxRCxNQUFzQixjQUFjO0lBTXpCLGFBQWEsQ0FDaEIsUUFBd0IsRUFBRSxRQUFrQyxFQUM1RCxXQUFtQixFQUFFLFNBQVMsR0FBRywwQkFBYyxFQUFFLFVBQW1CO1FBQ3BFLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUksU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ2xHLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBSSxRQUFRLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDMUUsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFJLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUM1RSxPQUFPO1lBQ0gsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQ3pCLGNBQWMsSUFBSyxFQUFRLEVBQzNCLFNBQVMsRUFDVCxVQUFVLENBQ2I7WUFDRCxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBTyxhQUFhLEVBQUUsU0FBUyxFQUFFLFVBQVUsQ0FBQztZQUN6RSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBTyxjQUFjLEVBQUUsU0FBUyxFQUFFLFVBQVUsQ0FBQztTQUN4RSxDQUFDO0lBQ1gsQ0FBQztJQUVNLG9CQUFvQixDQUFJLFFBQXdCLEVBQUUsV0FBbUI7UUFDeEUsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNsRCxPQUFPLE9BQU8sQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRU0scUJBQXFCLENBQUksUUFBeUMsRUFBRSxXQUFtQjtRQUMxRixPQUFPLE9BQU8sQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFUyxZQUFZLENBQ2xCLFNBQW9CLEVBQ3BCLGVBQWdDO1FBRWhDLE9BQU8sU0FBUyxDQUFDLFNBQVM7WUFDeEIsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUM7Z0JBQ2xCLEtBQUssRUFBRSxlQUFlLENBQUMsS0FBSztnQkFDNUIsYUFBYSxFQUFFLGVBQWUsQ0FBQyx1QkFBdUIsRUFBRTthQUN6RCxDQUFDO1lBQ0osQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNoQixDQUFDO0NBQ047QUEzQ0Qsd0NBMkNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtTVEFUSUNfQ09OVEVYVH0gZnJvbSAnLi4vY29yZS9pbmplY3Rvci9jb25zdGFudHMnO1xuaW1wb3J0IHtDb250ZXh0SWQsIEluc3RhbmNlV3JhcHBlcn0gZnJvbSAnLi4vY29yZS9pbmplY3Rvcic7XG5pbXBvcnQge0NvbnRyb2xsZXJUeXBlfSBmcm9tIFwiLi4vdHlwZXNcIjtcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENvbnRleHRDcmVhdG9yIHtcbiAgICBwdWJsaWMgYWJzdHJhY3QgY3JlYXRlQ29uY3JldGVDb250ZXh0PFQgZXh0ZW5kcyBhbnlbXSwgUiBleHRlbmRzIGFueVtdPihcbiAgICAgICAgbWV0YWRhdGE6IFQsIGNvbnRleHRJZD86IENvbnRleHRJZCwgaW5xdWlyZXJJZD86IHN0cmluZyk6IFI7XG5cbiAgICBwdWJsaWMgZ2V0R2xvYmFsTWV0YWRhdGE/PFQgZXh0ZW5kcyBhbnlbXT4oY29udGV4dElkPzogQ29udGV4dElkLCBpbnF1aXJlcklkPzogc3RyaW5nKTogVDtcblxuICAgIHB1YmxpYyBjcmVhdGVDb250ZXh0PFQgZXh0ZW5kcyB1bmtub3duW10gPSBhbnksIFIgZXh0ZW5kcyB1bmtub3duW10gPSBhbnk+KFxuICAgICAgICBpbnN0YW5jZTogQ29udHJvbGxlclR5cGUsIGNhbGxiYWNrOiAoLi4uYXJnczogYW55W10pID0+IHZvaWQsXG4gICAgICAgIG1ldGFkYXRhS2V5OiBzdHJpbmcsIGNvbnRleHRJZCA9IFNUQVRJQ19DT05URVhULCBpbnF1aXJlcklkPzogc3RyaW5nKTogUiB7XG4gICAgICAgIGNvbnN0IGdsb2JhbE1ldGFkYXRhID0gdGhpcy5nZXRHbG9iYWxNZXRhZGF0YSAmJiB0aGlzLmdldEdsb2JhbE1ldGFkYXRhPFQ+KGNvbnRleHRJZCwgaW5xdWlyZXJJZCk7XG4gICAgICAgIGNvbnN0IGNsYXNzTWV0YWRhdGEgPSB0aGlzLnJlZmxlY3RDbGFzc01ldGFkYXRhPFQ+KGluc3RhbmNlLCBtZXRhZGF0YUtleSk7XG4gICAgICAgIGNvbnN0IG1ldGhvZE1ldGFkYXRhID0gdGhpcy5yZWZsZWN0TWV0aG9kTWV0YWRhdGE8VD4oY2FsbGJhY2ssIG1ldGFkYXRhS2V5KTtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIC4uLnRoaXMuY3JlYXRlQ29uY3JldGVDb250ZXh0PFQsIFI+KFxuICAgICAgICAgICAgICAgIGdsb2JhbE1ldGFkYXRhIHx8IChbXSBhcyBUKSxcbiAgICAgICAgICAgICAgICBjb250ZXh0SWQsXG4gICAgICAgICAgICAgICAgaW5xdWlyZXJJZCxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICAuLi50aGlzLmNyZWF0ZUNvbmNyZXRlQ29udGV4dDxULCBSPihjbGFzc01ldGFkYXRhLCBjb250ZXh0SWQsIGlucXVpcmVySWQpLFxuICAgICAgICAgICAgLi4udGhpcy5jcmVhdGVDb25jcmV0ZUNvbnRleHQ8VCwgUj4obWV0aG9kTWV0YWRhdGEsIGNvbnRleHRJZCwgaW5xdWlyZXJJZCksXG4gICAgICAgIF0gYXMgUjtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVmbGVjdENsYXNzTWV0YWRhdGE8VD4oaW5zdGFuY2U6IENvbnRyb2xsZXJUeXBlLCBtZXRhZGF0YUtleTogc3RyaW5nKTogVCB7XG4gICAgICAgIGNvbnN0IHByb3RvdHlwZSA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihpbnN0YW5jZSk7XG4gICAgICAgIHJldHVybiBSZWZsZWN0LmdldE1ldGFkYXRhKG1ldGFkYXRhS2V5LCBwcm90b3R5cGUuY29uc3RydWN0b3IpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWZsZWN0TWV0aG9kTWV0YWRhdGE8VD4oY2FsbGJhY2s6ICguLi5hcmdzOiB1bmtub3duW10pID0+IHVua25vd24sIG1ldGFkYXRhS2V5OiBzdHJpbmcpOiBUIHtcbiAgICAgICAgcmV0dXJuIFJlZmxlY3QuZ2V0TWV0YWRhdGEobWV0YWRhdGFLZXksIGNhbGxiYWNrKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0Q29udGV4dElkKFxuICAgICAgICBjb250ZXh0SWQ6IENvbnRleHRJZCxcbiAgICAgICAgaW5zdGFuY2VXcmFwcGVyOiBJbnN0YW5jZVdyYXBwZXIsXG4gICAgICApOiBDb250ZXh0SWQge1xuICAgICAgICByZXR1cm4gY29udGV4dElkLmdldFBhcmVudFxuICAgICAgICAgID8gY29udGV4dElkLmdldFBhcmVudCh7XG4gICAgICAgICAgICAgIHRva2VuOiBpbnN0YW5jZVdyYXBwZXIudG9rZW4sXG4gICAgICAgICAgICAgIGlzVHJlZUR1cmFibGU6IGluc3RhbmNlV3JhcHBlci5pc0RlcGVuZGVuY3lUcmVlRHVyYWJsZSgpLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICA6IGNvbnRleHRJZDtcbiAgICAgIH1cbn1cbiJdfQ==