UNPKG

@tsclean/core

Version:

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

21 lines 3.49 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.HandlersConsumer = void 0; const params_token_factory_1 = require("./params-token-factory"); class HandlersConsumer { constructor() { this.paramsTokenFactory = new params_token_factory_1.ParamsTokenFactory(); } async apply(value, { metaType, type, data }, handlers) { const token = this.paramsTokenFactory.exchangeEnumForString(type); return this.applyHandlers(value, { metaType, type: token, data }, handlers); } async applyHandlers(value, { metaType, type, data }, transforms) { return transforms.reduce(async (deferredValue, pipe) => { const val = await deferredValue; return pipe.transform(val, { metaType, type, data }); }, Promise.resolve(value)); } } exports.HandlersConsumer = HandlersConsumer; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlcnMtY29uc3VtZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29yZS9oYW5kbGVyL2hhbmRsZXJzLWNvbnN1bWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLGlFQUEwRDtBQUcxRCxNQUFhLGdCQUFnQjtJQUE3QjtRQUNxQix1QkFBa0IsR0FBRyxJQUFJLHlDQUFrQixFQUFFLENBQUM7SUFvQm5FLENBQUM7SUFsQlUsS0FBSyxDQUFDLEtBQUssQ0FDZCxLQUFRLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBbUIsRUFBRSxRQUE0QjtRQUVoRixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMscUJBQXFCLENBQ3ZELElBQThCLENBQ2pDLENBQUM7UUFDRixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVNLEtBQUssQ0FBQyxhQUFhLENBQ3RCLEtBQVEsRUFBRSxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUE0QyxFQUMzRSxVQUE4QjtRQUU5QixPQUFPLFVBQVUsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsRUFBRTtZQUNuRCxNQUFNLEdBQUcsR0FBRyxNQUFNLGFBQWEsQ0FBQztZQUNoQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO1FBQ3ZELENBQUMsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDL0IsQ0FBQztDQUNKO0FBckJELDRDQXFCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Um91dGVQYXJhbVR5cGVzfSBmcm9tIFwiLi4vLi4vZW51bXNcIjtcbmltcG9ydCB7UGFyYW1zVG9rZW5GYWN0b3J5fSBmcm9tICcuL3BhcmFtcy10b2tlbi1mYWN0b3J5JztcbmltcG9ydCB7QXJndW1lbnRNZXRhZGF0YSwgSGFuZGxlclRyYW5zZm9ybX0gZnJvbSBcIi4uLy4uL2NvbnRyYWN0c1wiO1xuXG5leHBvcnQgY2xhc3MgSGFuZGxlcnNDb25zdW1lciB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBwYXJhbXNUb2tlbkZhY3RvcnkgPSBuZXcgUGFyYW1zVG9rZW5GYWN0b3J5KCk7XG5cbiAgICBwdWJsaWMgYXN5bmMgYXBwbHk8VCA9IHVua25vd24+KFxuICAgICAgICB2YWx1ZTogVCwge21ldGFUeXBlLCB0eXBlLCBkYXRhfTogQXJndW1lbnRNZXRhZGF0YSwgaGFuZGxlcnM6IEhhbmRsZXJUcmFuc2Zvcm1bXSkge1xuXG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5wYXJhbXNUb2tlbkZhY3RvcnkuZXhjaGFuZ2VFbnVtRm9yU3RyaW5nKFxuICAgICAgICAgICAgdHlwZSBhcyBhbnkgYXMgUm91dGVQYXJhbVR5cGVzLFxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gdGhpcy5hcHBseUhhbmRsZXJzKHZhbHVlLCB7bWV0YVR5cGUsIHR5cGU6IHRva2VuLCBkYXRhfSwgaGFuZGxlcnMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBhcHBseUhhbmRsZXJzPFQgPSB1bmtub3duPihcbiAgICAgICAgdmFsdWU6IFQsIHttZXRhVHlwZSwgdHlwZSwgZGF0YX06IHsgbWV0YVR5cGU6IGFueTsgdHlwZT86IGFueTsgZGF0YT86IGFueSB9LFxuICAgICAgICB0cmFuc2Zvcm1zOiBIYW5kbGVyVHJhbnNmb3JtW10pIHtcblxuICAgICAgICByZXR1cm4gdHJhbnNmb3Jtcy5yZWR1Y2UoYXN5bmMgKGRlZmVycmVkVmFsdWUsIHBpcGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHZhbCA9IGF3YWl0IGRlZmVycmVkVmFsdWU7XG4gICAgICAgICAgICByZXR1cm4gcGlwZS50cmFuc2Zvcm0odmFsLCB7bWV0YVR5cGUsIHR5cGUsIGRhdGF9KTtcbiAgICAgICAgfSwgUHJvbWlzZS5yZXNvbHZlKHZhbHVlKSk7XG4gICAgfVxufVxuIl19