UNPKG

3.21 kBJavaScriptView Raw
1import { __read, __values } from "tslib";
2export 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}
59export 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};
77var 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};