1 | import { __read, __values } from "tslib";
|
2 | export function map(arg0, arg1, arg2) {
|
3 | var e_1, _a;
|
4 | var target;
|
5 | var filter;
|
6 | var instructions;
|
7 | if (typeof arg1 === "undefined" && typeof arg2 === "undefined") {
|
8 | target = {};
|
9 | instructions = arg0;
|
10 | }
|
11 | else {
|
12 | target = arg0;
|
13 | if (typeof arg1 === "function") {
|
14 | filter = arg1;
|
15 | instructions = arg2;
|
16 | return mapWithFilter(target, filter, instructions);
|
17 | }
|
18 | else {
|
19 | instructions = arg1;
|
20 | }
|
21 | }
|
22 | try {
|
23 | for (var _b = __values(Object.keys(instructions)), _c = _b.next(); !_c.done; _c = _b.next()) {
|
24 | var key = _c.value;
|
25 | if (!Array.isArray(instructions[key])) {
|
26 | target[key] = instructions[key];
|
27 | continue;
|
28 | }
|
29 | var _d = __read(instructions[key], 2), filter_1 = _d[0], value = _d[1];
|
30 | if (typeof value === "function") {
|
31 | var _value = void 0;
|
32 | var defaultFilterPassed = filter_1 === undefined && (_value = value()) != null;
|
33 | var customFilterPassed = (typeof filter_1 === "function" && !!filter_1(void 0)) || (typeof filter_1 !== "function" && !!filter_1);
|
34 | if (defaultFilterPassed) {
|
35 | target[key] = _value;
|
36 | }
|
37 | else if (customFilterPassed) {
|
38 | target[key] = value();
|
39 | }
|
40 | }
|
41 | else {
|
42 | var defaultFilterPassed = filter_1 === undefined && value != null;
|
43 | var customFilterPassed = (typeof filter_1 === "function" && !!filter_1(value)) || (typeof filter_1 !== "function" && !!filter_1);
|
44 | if (defaultFilterPassed || customFilterPassed) {
|
45 | target[key] = value;
|
46 | }
|
47 | }
|
48 | }
|
49 | }
|
50 | catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
51 | finally {
|
52 | try {
|
53 | if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
54 | }
|
55 | finally { if (e_1) throw e_1.error; }
|
56 | }
|
57 | return target;
|
58 | }
|
59 | export var convertMap = function (target) {
|
60 | var e_2, _a;
|
61 | var output = {};
|
62 | try {
|
63 | for (var _b = __values(Object.entries(target || {})), _c = _b.next(); !_c.done; _c = _b.next()) {
|
64 | var _d = __read(_c.value, 2), k = _d[0], v = _d[1];
|
65 | output[k] = [, v];
|
66 | }
|
67 | }
|
68 | catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
69 | finally {
|
70 | try {
|
71 | if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
72 | }
|
73 | finally { if (e_2) throw e_2.error; }
|
74 | }
|
75 | return output;
|
76 | };
|
77 | var mapWithFilter = function (target, filter, instructions) {
|
78 | return map(target, Object.entries(instructions).reduce(function (_instructions, _a) {
|
79 | var _b = __read(_a, 2), key = _b[0], value = _b[1];
|
80 | if (Array.isArray(value)) {
|
81 | _instructions[key] = value;
|
82 | }
|
83 | else {
|
84 | if (typeof value === "function") {
|
85 | _instructions[key] = [filter, value()];
|
86 | }
|
87 | else {
|
88 | _instructions[key] = [filter, value];
|
89 | }
|
90 | }
|
91 | return _instructions;
|
92 | }, {}));
|
93 | };
|