1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | const params_token_factory_1 = require("./params-token-factory");
|
4 | class PipesConsumer {
|
5 | constructor() {
|
6 | this.paramsTokenFactory = new params_token_factory_1.ParamsTokenFactory();
|
7 | }
|
8 | async apply(value, { metatype, type, data }, pipes) {
|
9 | const token = this.paramsTokenFactory.exchangeEnumForString(type);
|
10 | return this.applyPipes(value, { metatype, type: token, data }, pipes);
|
11 | }
|
12 | async applyPipes(value, { metatype, type, data }, transforms) {
|
13 | return transforms.reduce(async (defferedValue, pipe) => {
|
14 | const val = await defferedValue;
|
15 | const result = pipe.transform(val, { metatype, type, data });
|
16 | return result;
|
17 | }, Promise.resolve(value));
|
18 | }
|
19 | }
|
20 | exports.PipesConsumer = PipesConsumer;
|