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