UNPKG

@tsclean/core

Version:

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

45 lines 7.87 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ContextUtils = void 0; const execution_context_host_1 = require("./execution-context-host"); const constants_1 = require("./constants"); const shared_utils_1 = require("../utils/shared.utils"); class ContextUtils { mapParamType(key) { const keyPair = key.split(':'); return keyPair[0]; } reflectCallbackParamTypes(instance, methodName) { return Reflect.getMetadata(constants_1.PARAMTYPES_METADATA, instance, methodName); } reflectCallbackMetadata(instance, methodName, metadataKey) { return Reflect.getMetadata(metadataKey, instance.constructor, methodName); } reflectPassThrough(instance, methodName) { return Reflect.getMetadata(constants_1.RESPONSE_PASSTHROUGH_METADATA, instance.constructor, methodName); } getArgumentsLength(keys, metadata) { return Math.max(...keys.map(key => metadata[key].index)) + 1; } createNullArray(length) { return Array.apply(null, { length }).fill(undefined); } mergeParamsMetaTypes(paramsProperties, paramTypes) { if (!paramTypes) return paramsProperties; return paramsProperties.map(param => (Object.assign(Object.assign({}, param), { metaType: paramTypes[param.index] }))); } getCustomFactory(factory, data, contextFactory) { return (0, shared_utils_1.isFunction)(factory) ? (...args) => factory(data, contextFactory(args)) : () => null; } getContextFactory(contextType, instance, callback) { return (args) => { const ctx = new execution_context_host_1.ExecutionContextHost(args, instance && instance.constructor, callback); ctx.setType(contextType); return ctx; }; } } exports.ContextUtils = ContextUtils; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL2NvbnRleHQtdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBQThEO0FBRTlELDJDQUErRTtBQUMvRSx3REFBaUQ7QUFZakQsTUFBYSxZQUFZO0lBQ2QsWUFBWSxDQUFDLEdBQVc7UUFDM0IsTUFBTSxPQUFPLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMvQixPQUFPLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBRU0seUJBQXlCLENBQUMsUUFBd0IsRUFBRSxVQUFrQjtRQUN6RSxPQUFPLE9BQU8sQ0FBQyxXQUFXLENBQUMsK0JBQW1CLEVBQUUsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFTSx1QkFBdUIsQ0FDMUIsUUFBd0IsRUFBRSxVQUFrQixFQUFFLFdBQW1CO1FBQ2pFLE9BQU8sT0FBTyxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLFdBQVcsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRU0sa0JBQWtCLENBQUMsUUFBd0IsRUFBRSxVQUFrQjtRQUNsRSxPQUFPLE9BQU8sQ0FBQyxXQUFXLENBQ3RCLHlDQUE2QixFQUFFLFFBQVEsQ0FBQyxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVNLGtCQUFrQixDQUFJLElBQWMsRUFBRSxRQUFXO1FBQ3BELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVNLGVBQWUsQ0FBQyxNQUFjO1FBQ2pDLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBQyxNQUFNLEVBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRU0sb0JBQW9CLENBQUMsZ0JBQW1DLEVBQUUsVUFBaUI7UUFDOUUsSUFBSSxDQUFDLFVBQVU7WUFBRSxPQUFPLGdCQUFnQixDQUFDO1FBRXpDLE9BQU8sZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsaUNBQzlCLEtBQUssS0FDUixRQUFRLEVBQUUsVUFBVSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFDbkMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQztJQUVNLGdCQUFnQixDQUNuQixPQUFxQyxFQUFFLElBQWEsRUFBRSxjQUF5RDtRQUMvRyxPQUFPLElBQUEseUJBQVUsRUFBQyxPQUFPLENBQUM7WUFDdEIsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFlLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQztJQUNuRixDQUFDO0lBRU0saUJBQWlCLENBQ3BCLFdBQWMsRUFBRSxRQUFpQixFQUFFLFFBQW1CO1FBRXRELE9BQU8sQ0FBQyxJQUFlLEVBQUUsRUFBRTtZQUN2QixNQUFNLEdBQUcsR0FBRyxJQUFJLDZDQUFvQixDQUNoQyxJQUFJLEVBQ0osUUFBUSxJQUFLLFFBQVEsQ0FBQyxXQUE2QixFQUNuRCxRQUFRLENBQ1gsQ0FBQztZQUNGLEdBQUcsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDekIsT0FBTyxHQUFHLENBQUM7UUFDZixDQUFDLENBQUM7SUFDTixDQUFDO0NBQ0o7QUF4REQsb0NBd0RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtFeGVjdXRpb25Db250ZXh0SG9zdH0gZnJvbSAnLi9leGVjdXRpb24tY29udGV4dC1ob3N0JztcbmltcG9ydCB7SGFuZGxlclRyYW5zZm9ybSwgVHlwZX0gZnJvbSBcIi4uL2NvbnRyYWN0c1wiO1xuaW1wb3J0IHtQQVJBTVRZUEVTX01FVEFEQVRBLCBSRVNQT05TRV9QQVNTVEhST1VHSF9NRVRBREFUQX0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQge2lzRnVuY3Rpb259IGZyb20gXCIuLi91dGlscy9zaGFyZWQudXRpbHNcIjtcbmltcG9ydCB7UGFyYW1EYXRhfSBmcm9tIFwiLi4vZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHtDb250ZXh0VHlwZSwgQ29udHJvbGxlclR5cGV9IGZyb20gXCIuLi90eXBlc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBhcmFtUHJvcGVydGllczxUID0gYW55LCBJRXh0cmFjdG9yIGV4dGVuZHMgRnVuY3Rpb24gPSBhbnk+IHtcbiAgICBpbmRleDogbnVtYmVyO1xuICAgIHR5cGU6IFQgfCBzdHJpbmc7XG4gICAgZGF0YTogUGFyYW1EYXRhO1xuICAgIGhhbmRsZXJzOiBIYW5kbGVyVHJhbnNmb3JtW107XG4gICAgZXh0cmFjdFZhbHVlOiBJRXh0cmFjdG9yO1xufVxuXG5leHBvcnQgY2xhc3MgQ29udGV4dFV0aWxzIHtcbiAgICBwdWJsaWMgbWFwUGFyYW1UeXBlKGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3Qga2V5UGFpciA9IGtleS5zcGxpdCgnOicpO1xuICAgICAgICByZXR1cm4ga2V5UGFpclswXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVmbGVjdENhbGxiYWNrUGFyYW1UeXBlcyhpbnN0YW5jZTogQ29udHJvbGxlclR5cGUsIG1ldGhvZE5hbWU6IHN0cmluZyk6IGFueVtdIHtcbiAgICAgICAgcmV0dXJuIFJlZmxlY3QuZ2V0TWV0YWRhdGEoUEFSQU1UWVBFU19NRVRBREFUQSwgaW5zdGFuY2UsIG1ldGhvZE5hbWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWZsZWN0Q2FsbGJhY2tNZXRhZGF0YTxUID0gYW55PihcbiAgICAgICAgaW5zdGFuY2U6IENvbnRyb2xsZXJUeXBlLCBtZXRob2ROYW1lOiBzdHJpbmcsIG1ldGFkYXRhS2V5OiBzdHJpbmcpOiBUIHtcbiAgICAgICAgcmV0dXJuIFJlZmxlY3QuZ2V0TWV0YWRhdGEobWV0YWRhdGFLZXksIGluc3RhbmNlLmNvbnN0cnVjdG9yLCBtZXRob2ROYW1lKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVmbGVjdFBhc3NUaHJvdWdoKGluc3RhbmNlOiBDb250cm9sbGVyVHlwZSwgbWV0aG9kTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBSZWZsZWN0LmdldE1ldGFkYXRhKFxuICAgICAgICAgICAgUkVTUE9OU0VfUEFTU1RIUk9VR0hfTUVUQURBVEEsIGluc3RhbmNlLmNvbnN0cnVjdG9yLCBtZXRob2ROYW1lKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0QXJndW1lbnRzTGVuZ3RoPFQ+KGtleXM6IHN0cmluZ1tdLCBtZXRhZGF0YTogVCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBNYXRoLm1heCguLi5rZXlzLm1hcChrZXkgPT4gbWV0YWRhdGFba2V5XS5pbmRleCkpICsgMTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY3JlYXRlTnVsbEFycmF5KGxlbmd0aDogbnVtYmVyKTogYW55W10ge1xuICAgICAgICByZXR1cm4gQXJyYXkuYXBwbHkobnVsbCwge2xlbmd0aH0gYXMgYW55KS5maWxsKHVuZGVmaW5lZCk7XG4gICAgfVxuXG4gICAgcHVibGljIG1lcmdlUGFyYW1zTWV0YVR5cGVzKHBhcmFtc1Byb3BlcnRpZXM6IFBhcmFtUHJvcGVydGllc1tdLCBwYXJhbVR5cGVzOiBhbnlbXSk6IChQYXJhbVByb3BlcnRpZXMgJiB7IG1ldGFUeXBlPzogYW55IH0pW10ge1xuICAgICAgICBpZiAoIXBhcmFtVHlwZXMpIHJldHVybiBwYXJhbXNQcm9wZXJ0aWVzO1xuXG4gICAgICAgIHJldHVybiBwYXJhbXNQcm9wZXJ0aWVzLm1hcChwYXJhbSA9PiAoe1xuICAgICAgICAgICAgLi4ucGFyYW0sXG4gICAgICAgICAgICBtZXRhVHlwZTogcGFyYW1UeXBlc1twYXJhbS5pbmRleF0sXG4gICAgICAgIH0pKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q3VzdG9tRmFjdG9yeShcbiAgICAgICAgZmFjdG9yeTogKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gdm9pZCwgZGF0YTogdW5rbm93biwgY29udGV4dEZhY3Rvcnk6IChhcmdzOiB1bmtub3duW10pID0+IEV4ZWN1dGlvbkNvbnRleHRIb3N0KTogKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gdW5rbm93biB7XG4gICAgICAgIHJldHVybiBpc0Z1bmN0aW9uKGZhY3RvcnkpXG4gICAgICAgICAgICA/ICguLi5hcmdzOiB1bmtub3duW10pID0+IGZhY3RvcnkoZGF0YSwgY29udGV4dEZhY3RvcnkoYXJncykpIDogKCkgPT4gbnVsbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q29udGV4dEZhY3Rvcnk8VCBleHRlbmRzIHN0cmluZyA9IENvbnRleHRUeXBlPihcbiAgICAgICAgY29udGV4dFR5cGU6IFQsIGluc3RhbmNlPzogb2JqZWN0LCBjYWxsYmFjaz86IEZ1bmN0aW9uKTogKGFyZ3M6IHVua25vd25bXSkgPT4gRXhlY3V0aW9uQ29udGV4dEhvc3Qge1xuXG4gICAgICAgIHJldHVybiAoYXJnczogdW5rbm93bltdKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjdHggPSBuZXcgRXhlY3V0aW9uQ29udGV4dEhvc3QoXG4gICAgICAgICAgICAgICAgYXJncyxcbiAgICAgICAgICAgICAgICBpbnN0YW5jZSAmJiAoaW5zdGFuY2UuY29uc3RydWN0b3IgYXMgVHlwZTx1bmtub3duPiksXG4gICAgICAgICAgICAgICAgY2FsbGJhY2ssXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY3R4LnNldFR5cGUoY29udGV4dFR5cGUpO1xuICAgICAgICAgICAgcmV0dXJuIGN0eDtcbiAgICAgICAgfTtcbiAgICB9XG59XG4iXX0=