UNPKG

@tsclean/core

Version:

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

25 lines 4.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Adapter = Adapter; const utils_1 = require("../utils"); const helpers_1 = require("../helpers"); function Adapter(token) { const injectCallHasArguments = arguments.length > 0; return (target, key, index) => { var _a; let type = token || Reflect.getMetadata('design:type', target, key); if (!type && !injectCallHasArguments) { type = (_a = Reflect.getMetadata(helpers_1.PARAMTYPES_METADATA, target, key)) === null || _a === void 0 ? void 0 : _a[index]; } if (!(0, utils_1.isUndefined)(index)) { let dependencies = Reflect.getMetadata(helpers_1.SELF_DECLARED_DEPS_METADATA, target) || []; dependencies = [...dependencies, { index, param: type }]; Reflect.defineMetadata(helpers_1.SELF_DECLARED_DEPS_METADATA, dependencies, target); return; } let properties = Reflect.getMetadata(helpers_1.PROPERTY_DEPS_METADATA, target.constructor) || []; properties = [...properties, { key, type }]; Reflect.defineMetadata(helpers_1.PROPERTY_DEPS_METADATA, properties, target.constructor); }; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kZWNvcmF0b3JzL2FkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFHQSwwQkE0QkM7QUEvQkQsb0NBQXFDO0FBQ3JDLHdDQUFvRztBQUVwRyxTQUFnQixPQUFPLENBQVUsS0FBUztJQUN0QyxNQUFNLHNCQUFzQixHQUFHLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBRXBELE9BQU8sQ0FBQyxNQUFjLEVBQUUsR0FBb0IsRUFBRSxLQUFjLEVBQUUsRUFBRTs7UUFDNUQsSUFBSSxJQUFJLEdBQUcsS0FBSyxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztRQUVwRSxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUNuQyxJQUFJLEdBQUcsTUFBQSxPQUFPLENBQUMsV0FBVyxDQUFDLDZCQUFtQixFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUMsMENBQUcsS0FBSyxDQUFDLENBQUM7UUFDMUUsQ0FBQztRQUVELElBQUksQ0FBQyxJQUFBLG1CQUFXLEVBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN0QixJQUFJLFlBQVksR0FDWixPQUFPLENBQUMsV0FBVyxDQUFDLHFDQUEyQixFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUVuRSxZQUFZLEdBQUcsQ0FBQyxHQUFHLFlBQVksRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUN6RCxPQUFPLENBQUMsY0FBYyxDQUFDLHFDQUEyQixFQUFFLFlBQVksRUFBRSxNQUFNLENBQUMsQ0FBQztZQUMxRSxPQUFPO1FBQ1gsQ0FBQztRQUNELElBQUksVUFBVSxHQUNWLE9BQU8sQ0FBQyxXQUFXLENBQUMsZ0NBQXNCLEVBQUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUUxRSxVQUFVLEdBQUcsQ0FBQyxHQUFHLFVBQVUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLE9BQU8sQ0FBQyxjQUFjLENBQ2xCLGdDQUFzQixFQUN0QixVQUFVLEVBQ1YsTUFBTSxDQUFDLFdBQVcsQ0FDckIsQ0FBQztJQUNOLENBQUMsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2lzVW5kZWZpbmVkfSBmcm9tIFwiLi4vdXRpbHNcIjtcbmltcG9ydCB7UEFSQU1UWVBFU19NRVRBREFUQSwgUFJPUEVSVFlfREVQU19NRVRBREFUQSwgU0VMRl9ERUNMQVJFRF9ERVBTX01FVEFEQVRBfSBmcm9tIFwiLi4vaGVscGVyc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gQWRhcHRlcjxUID0gYW55Pih0b2tlbj86IFQpOiBQcm9wZXJ0eURlY29yYXRvciAmIFBhcmFtZXRlckRlY29yYXRvciB7XG4gICAgY29uc3QgaW5qZWN0Q2FsbEhhc0FyZ3VtZW50cyA9IGFyZ3VtZW50cy5sZW5ndGggPiAwO1xuXG4gICAgcmV0dXJuICh0YXJnZXQ6IG9iamVjdCwga2V5OiBzdHJpbmcgfCBzeW1ib2wsIGluZGV4PzogbnVtYmVyKSA9PiB7XG4gICAgICAgIGxldCB0eXBlID0gdG9rZW4gfHwgUmVmbGVjdC5nZXRNZXRhZGF0YSgnZGVzaWduOnR5cGUnLCB0YXJnZXQsIGtleSk7XG5cbiAgICAgICAgaWYgKCF0eXBlICYmICFpbmplY3RDYWxsSGFzQXJndW1lbnRzKSB7XG4gICAgICAgICAgICB0eXBlID0gUmVmbGVjdC5nZXRNZXRhZGF0YShQQVJBTVRZUEVTX01FVEFEQVRBLCB0YXJnZXQsIGtleSk/LltpbmRleF07XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWlzVW5kZWZpbmVkKGluZGV4KSkge1xuICAgICAgICAgICAgbGV0IGRlcGVuZGVuY2llcyA9XG4gICAgICAgICAgICAgICAgUmVmbGVjdC5nZXRNZXRhZGF0YShTRUxGX0RFQ0xBUkVEX0RFUFNfTUVUQURBVEEsIHRhcmdldCkgfHwgW107XG5cbiAgICAgICAgICAgIGRlcGVuZGVuY2llcyA9IFsuLi5kZXBlbmRlbmNpZXMsIHsgaW5kZXgsIHBhcmFtOiB0eXBlIH1dO1xuICAgICAgICAgICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShTRUxGX0RFQ0xBUkVEX0RFUFNfTUVUQURBVEEsIGRlcGVuZGVuY2llcywgdGFyZ2V0KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBsZXQgcHJvcGVydGllcyA9XG4gICAgICAgICAgICBSZWZsZWN0LmdldE1ldGFkYXRhKFBST1BFUlRZX0RFUFNfTUVUQURBVEEsIHRhcmdldC5jb25zdHJ1Y3RvcikgfHwgW107XG5cbiAgICAgICAgcHJvcGVydGllcyA9IFsuLi5wcm9wZXJ0aWVzLCB7IGtleSwgdHlwZSB9XTtcbiAgICAgICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShcbiAgICAgICAgICAgIFBST1BFUlRZX0RFUFNfTUVUQURBVEEsXG4gICAgICAgICAgICBwcm9wZXJ0aWVzLFxuICAgICAgICAgICAgdGFyZ2V0LmNvbnN0cnVjdG9yLFxuICAgICAgICApO1xuICAgIH07XG59Il19