1 | const debug = require('debug')('Transforms');
|
2 | const Storage = require('./Storage');
|
3 | const transformsFactory = require('./transforms/transformsFactory');
|
4 |
|
5 | class Transforms {
|
6 | constructor(options) {
|
7 | this._storage = options.storage || new Storage();
|
8 | }
|
9 |
|
10 | |
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 | produce(transforms, value) {
|
17 | transforms = transforms || [];
|
18 | value = typeof value === 'undefined' ? '' : value;
|
19 | debug('transforms are producing for %o on %o', transforms, value);
|
20 | return transforms.reduce((value, options) => {
|
21 | value = typeof value === 'undefined' ? '' : value;
|
22 | const transform = transformsFactory.createTransform({
|
23 | options,
|
24 | value,
|
25 | storage: this._storage
|
26 | });
|
27 |
|
28 | if (!transform) {
|
29 | throw new Error('Unsupported transform type: ' + options.type);
|
30 | }
|
31 |
|
32 | return transform.transform();
|
33 | }, value);
|
34 | }
|
35 |
|
36 | |
37 |
|
38 |
|
39 |
|
40 |
|
41 | addTransform(type, transform) {
|
42 | transformsFactory.addTransform(type, transform);
|
43 | }
|
44 | }
|
45 |
|
46 | module.exports = Transforms;
|