@tsclean/core
Version:
Plugin for API Rest Full development, based on Clean Architecture, IoC and Dependency Injection.
22 lines • 3.5 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.HandlerConsumer = void 0;
const core_1 = require("../../core");
class HandlerConsumer {
constructor() {
this.paramsTokenFactory = new core_1.ParamsTokenFactory();
}
async apply(value, { metaType, type, data }, pipes) {
const token = this.paramsTokenFactory.exchangeEnumForString(type);
return this.applyPipes(value, { metaType, type: token, data }, pipes);
}
async applyPipes(value, { metaType, type, data }, transforms) {
return transforms.reduce(async (deferredValue, pipe) => {
const val = await deferredValue;
const result = pipe.transform(val, { metaType, type, data });
return result;
}, Promise.resolve(value));
}
}
exports.HandlerConsumer = HandlerConsumer;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlci1jb25zdW1lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy93ZWJzb2NrZXRzL2hhbmRsZXIvaGFuZGxlci1jb25zdW1lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxxQ0FBK0M7QUFHL0MsTUFBYSxlQUFlO0lBQTVCO1FBQ21CLHVCQUFrQixHQUFHLElBQUkseUJBQWtCLEVBQUUsQ0FBQTtJQXdCaEUsQ0FBQztJQXRCUSxLQUFLLENBQUMsS0FBSyxDQUNoQixLQUFhLEVBQ2IsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBb0IsRUFDMUMsS0FBeUI7UUFFekIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLHFCQUFxQixDQUN6RCxJQUE4QixDQUMvQixDQUFBO1FBQ0QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFBO0lBQ3ZFLENBQUM7SUFFTSxLQUFLLENBQUMsVUFBVSxDQUNyQixLQUFhLEVBQ2IsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBNkMsRUFDbkUsVUFBOEI7UUFFOUIsT0FBTyxVQUFVLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLEVBQUU7WUFDckQsTUFBTSxHQUFHLEdBQUcsTUFBTSxhQUFhLENBQUE7WUFDL0IsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7WUFDNUQsT0FBTyxNQUFNLENBQUE7UUFDZixDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO0lBQzVCLENBQUM7Q0FDRjtBQXpCRCwwQ0F5QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcmd1bWVudE1ldGFkYXRhLCBIYW5kbGVyVHJhbnNmb3JtIH0gZnJvbSAnLi4vLi4vY29udHJhY3RzJ1xuaW1wb3J0IHsgUGFyYW1zVG9rZW5GYWN0b3J5IH0gZnJvbSAnLi4vLi4vY29yZSdcbmltcG9ydCB7IFJvdXRlUGFyYW1UeXBlcyB9IGZyb20gJy4uLy4uL2VudW1zJ1xuXG5leHBvcnQgY2xhc3MgSGFuZGxlckNvbnN1bWVyIHtcbiAgcHJpdmF0ZSByZWFkb25seSBwYXJhbXNUb2tlbkZhY3RvcnkgPSBuZXcgUGFyYW1zVG9rZW5GYWN0b3J5KClcblxuICBwdWJsaWMgYXN5bmMgYXBwbHk8VElucHV0ID0gdW5rbm93bj4gKFxuICAgIHZhbHVlOiBUSW5wdXQsXG4gICAgeyBtZXRhVHlwZSwgdHlwZSwgZGF0YSB9OiBBcmd1bWVudE1ldGFkYXRhLFxuICAgIHBpcGVzOiBIYW5kbGVyVHJhbnNmb3JtW11cbiAgKSB7XG4gICAgY29uc3QgdG9rZW4gPSB0aGlzLnBhcmFtc1Rva2VuRmFjdG9yeS5leGNoYW5nZUVudW1Gb3JTdHJpbmcoXG4gICAgICB0eXBlIGFzIGFueSBhcyBSb3V0ZVBhcmFtVHlwZXNcbiAgICApXG4gICAgcmV0dXJuIHRoaXMuYXBwbHlQaXBlcyh2YWx1ZSwgeyBtZXRhVHlwZSwgdHlwZTogdG9rZW4sIGRhdGEgfSwgcGlwZXMpXG4gIH1cblxuICBwdWJsaWMgYXN5bmMgYXBwbHlQaXBlczxUSW5wdXQgPSB1bmtub3duPiAoXG4gICAgdmFsdWU6IFRJbnB1dCxcbiAgICB7IG1ldGFUeXBlLCB0eXBlLCBkYXRhIH06IHsgbWV0YVR5cGU6IGFueTsgdHlwZT86IGFueTsgZGF0YT86IGFueSB9LFxuICAgIHRyYW5zZm9ybXM6IEhhbmRsZXJUcmFuc2Zvcm1bXVxuICApIHtcbiAgICByZXR1cm4gdHJhbnNmb3Jtcy5yZWR1Y2UoYXN5bmMgKGRlZmVycmVkVmFsdWUsIHBpcGUpID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9IGF3YWl0IGRlZmVycmVkVmFsdWVcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHBpcGUudHJhbnNmb3JtKHZhbCwgeyBtZXRhVHlwZSwgdHlwZSwgZGF0YSB9KVxuICAgICAgcmV0dXJuIHJlc3VsdFxuICAgIH0sIFByb21pc2UucmVzb2x2ZSh2YWx1ZSkpXG4gIH1cbn1cbiJdfQ==