@tsclean/core
Version:
Plugin for API Rest Full development, based on Clean Architecture, IoC and Dependency Injection.
21 lines • 3.49 kB
JavaScript
;
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