@allgemein/config 1.1.4 → 1.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/config/handler/SystemConfig.js +1 -1
- package/config/handler/SystemConfig.js.map +1 -1
- package/package.json +13 -13
- package/supports/InterpolationSupport.js +48 -38
- package/supports/InterpolationSupport.js.map +1 -1
- package/utils/Utils.d.ts +0 -1
- package/utils/Utils.js +79 -74
- package/utils/Utils.js.map +1 -1
|
@@ -39,7 +39,7 @@ class SystemConfig extends ConfigSupport_1.ConfigSupport {
|
|
|
39
39
|
let data = Utils_1.Utils.merge({}, process.env);
|
|
40
40
|
let configData = {};
|
|
41
41
|
Object.keys(data).forEach(k => {
|
|
42
|
-
configData[k
|
|
42
|
+
configData[k] = data[k];
|
|
43
43
|
});
|
|
44
44
|
jar.merge(new Source_1.Source({ source: 'env', data: configData, prefix: 'env' }));
|
|
45
45
|
return jar;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/config/handler/SystemConfig.ts"],"names":[],"mappings":";;;AACA,4CAAuC;AAGvC,6CAAwC;AACxC,oDAA+C;AAE/C,sCAAiC;AACjC,0CAA8C;AAG9C;;;;;GAKG;AACH,MAAa,YAAa,SAAQ,6BAA6B;IAE7D,YAAY,UAA0B,EAAC,SAAS,EAAE,QAAQ,EAAC,EAAE,WAA0B,EAAE;QACvF,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,SAAS,CAAC,GAAc;QAC9B,IAAI;YACF,MAAM,EAAE,GAAG,oBAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpC,IAAI,GAAG,GAAG;gBACR,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE;gBACvB,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE;gBACrB,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE;gBACvB,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE;aACpB,CAAC;YAEF,GAAG,CAAC,KAAK,CAAC,IAAI,eAAM,CAAC,EAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC;SAChE;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAClB;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAEO,UAAU,CAAC,GAAc;QAE/B,IAAI,IAAI,GAAG,aAAK,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,UAAU,GAAgB,EAAE,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAC5B,UAAU,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"sources":["../../../src/config/handler/SystemConfig.ts"],"names":[],"mappings":"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","file":"SystemConfig.js","sourcesContent":["import {IConfigData} from '../IConfigData';\nimport {ConfigJar} from '../ConfigJar';\nimport {IConfigOptions} from '../IConfigOptions';\n\nimport {Utils} from '../../utils/Utils';\nimport {ConfigSupport} from '../ConfigSupport';\n\nimport {Source} from '../Source';\nimport {PlatformUtils} from '@allgemein/base';\n\n\n/**\n * Load passthrough arguments configuration\n *\n * Named arguments beginning with '--' will be stripped of '--' and put as key-value pair in the array.\n * If no value is set then the value will be 'true'.\n */\nexport class SystemConfig extends ConfigSupport<IConfigOptions> {\n\n constructor(options: IConfigOptions = {namespace: 'system'}, jarsData: IConfigData[] = []) {\n super(options, jarsData);\n }\n\n type(): string {\n return 'system';\n }\n\n private attach_os(jar: ConfigJar) {\n try {\n const os = PlatformUtils.load('os');\n let _os = {\n hostname: os.hostname(),\n userdir: os.homedir(),\n platform: os.platform(),\n tmpdir: os.tmpdir()\n };\n\n jar.merge(new Source({source: 'os', data: _os, prefix: 'os'}));\n } catch (e) {\n console.error(e);\n }\n return jar;\n }\n\n private attach_env(jar: ConfigJar) {\n\n let data = Utils.merge({}, process.env);\n let configData: IConfigData = {};\n Object.keys(data).forEach(k => {\n configData[k] = data[k];\n });\n jar.merge(new Source({source: 'env', data: configData, prefix: 'env'}));\n\n return jar;\n }\n\n private attach_argv(jar: ConfigJar) {\n let data: IConfigData = {};\n let i = 0;\n let pl = process.argv.length;\n\n for (let k = 0; k < pl; k++) {\n let v = process.argv[k];\n if (/^\\-\\-/.test(v)) {\n let n = k + 1;\n if (n < pl) {\n let next = process.argv[n];\n if (!/^\\-\\-/.test(next)) {\n k++;\n data[v.replace(/^\\-\\-/, '')] = next;\n } else {\n data[v.replace(/^\\-\\-/, '')] = true;\n }\n } else {\n data[v.replace(/^\\-\\-/, '')] = true;\n }\n } else {\n data['_' + i] = v;\n i++;\n }\n }\n\n jar.merge(new Source({source: 'argv', data: data, prefix: 'argv'}));\n\n return jar;\n }\n\n\n create(): ConfigJar {\n let jar = ConfigJar.create({namespace: 'system'});\n this.attach_os(jar);\n this.attach_env(jar);\n this.attach_argv(jar);\n return jar;\n }\n\n}\n"],"sourceRoot":"../.."}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@allgemein/config",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.6",
|
|
4
4
|
"description": "@allgemein/config is a configurable configuration content handler which supports multiple configuration infrastructures and file formats.",
|
|
5
5
|
"main": "./index.js",
|
|
6
6
|
"browser": {
|
|
@@ -34,12 +34,12 @@
|
|
|
34
34
|
"homepage": "https://github.com/allgemein-node/config#readme",
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"@allgemein/packaging": "^1.2.18",
|
|
37
|
-
"@testdeck/mocha": "^0.2.
|
|
38
|
-
"@types/chai": "^4.3.
|
|
39
|
-
"@types/glob": "^
|
|
40
|
-
"@types/lodash": "^4.14.
|
|
41
|
-
"@types/mocha": "^
|
|
42
|
-
"@types/node": "^18.
|
|
37
|
+
"@testdeck/mocha": "^0.2.1",
|
|
38
|
+
"@types/chai": "^4.3.3",
|
|
39
|
+
"@types/glob": "^8.0.0",
|
|
40
|
+
"@types/lodash": "^4.14.186",
|
|
41
|
+
"@types/mocha": "^10.0.0",
|
|
42
|
+
"@types/node": "^18.7.23",
|
|
43
43
|
"chai": "^4.3.6",
|
|
44
44
|
"codecov": "^3.8.2",
|
|
45
45
|
"codelyzer": "^6.0.2",
|
|
@@ -59,17 +59,17 @@
|
|
|
59
59
|
"nyc": "^15.1.0",
|
|
60
60
|
"properties": "^1.2.1",
|
|
61
61
|
"ts-node": "^10.9.1",
|
|
62
|
-
"typescript": "4.
|
|
62
|
+
"typescript": "4.8.4",
|
|
63
63
|
"x2js": "^3.4.3",
|
|
64
|
-
"@typescript-eslint/eslint-plugin": "^5.
|
|
65
|
-
"@typescript-eslint/parser": "^5.
|
|
66
|
-
"eslint": "8.
|
|
64
|
+
"@typescript-eslint/eslint-plugin": "^5.38.1",
|
|
65
|
+
"@typescript-eslint/parser": "^5.38.1",
|
|
66
|
+
"eslint": "8.24.0",
|
|
67
67
|
"eslint-plugin-import": "2.26.0",
|
|
68
|
-
"eslint-plugin-mocha": "10.0
|
|
68
|
+
"eslint-plugin-mocha": "10.1.0",
|
|
69
69
|
"eslint-plugin-prettier": "4.2.1"
|
|
70
70
|
},
|
|
71
71
|
"dependencies": {
|
|
72
|
-
"@allgemein/base": "^1.6.
|
|
72
|
+
"@allgemein/base": "^1.6.12",
|
|
73
73
|
"multimatch": "^5.0.0"
|
|
74
74
|
},
|
|
75
75
|
"private": false,
|
|
@@ -1,47 +1,57 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.InterpolationSupport = void 0;
|
|
4
|
-
const
|
|
4
|
+
const Interpolation_1 = require("@allgemein/base/utils/Interpolation");
|
|
5
5
|
const REGEX = /\${[^}]+}/g;
|
|
6
6
|
class InterpolationSupport {
|
|
7
|
-
// private lookup
|
|
8
7
|
static exec(data, ...lookup) {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
}
|
|
8
|
+
return Interpolation_1.Interpolation.exec(data, ...lookup);
|
|
9
|
+
//
|
|
10
|
+
// if (!lookup.length) {
|
|
11
|
+
// lookup = [data];
|
|
12
|
+
// } else {
|
|
13
|
+
// if (Array.isArray(lookup[0])) {
|
|
14
|
+
// lookup = lookup[0];
|
|
15
|
+
// }
|
|
16
|
+
// }
|
|
17
|
+
//
|
|
18
|
+
// Utils.walk(data, (x: any) => {
|
|
19
|
+
// let v = x.value;
|
|
20
|
+
// if (typeof v === 'string' && REGEX.test(v)) {
|
|
21
|
+
// const match = v.match(REGEX);
|
|
22
|
+
// match.forEach(_match => {
|
|
23
|
+
// const content = _match.replace(/^\${|}$/g, '');
|
|
24
|
+
// const splits = content.split(':-', 2);
|
|
25
|
+
// const path = splits.shift();
|
|
26
|
+
// const hasFallback = splits.length > 0;
|
|
27
|
+
// const fallback = splits.shift();
|
|
28
|
+
// let _value = null;
|
|
29
|
+
//
|
|
30
|
+
// for (let i = 0; i < lookup.length; i++) {
|
|
31
|
+
// _value = Utils.get(lookup[i], path);
|
|
32
|
+
// if (_value) {
|
|
33
|
+
// break;
|
|
34
|
+
// }
|
|
35
|
+
// }
|
|
36
|
+
//
|
|
37
|
+
// if (_value) {
|
|
38
|
+
// if (x.index !== null) {
|
|
39
|
+
// x.parent[x.key][x.index] = v = v.replace(_match, _value);
|
|
40
|
+
// } else {
|
|
41
|
+
// x.parent[x.key] = v = v.replace(_match, _value);
|
|
42
|
+
// }
|
|
43
|
+
// } else {
|
|
44
|
+
// if (hasFallback) {
|
|
45
|
+
// if (x.index !== null) {
|
|
46
|
+
// x.parent[x.key][x.index] = v = v.replace(_match, fallback);
|
|
47
|
+
// } else {
|
|
48
|
+
// x.parent[x.key] = v = v.replace(_match, fallback);
|
|
49
|
+
// }
|
|
50
|
+
// }
|
|
51
|
+
// }
|
|
52
|
+
// });
|
|
53
|
+
// }
|
|
54
|
+
// });
|
|
45
55
|
}
|
|
46
56
|
}
|
|
47
57
|
exports.InterpolationSupport = InterpolationSupport;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/supports/InterpolationSupport.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"sources":["../../../src/supports/InterpolationSupport.ts"],"names":[],"mappings":";;;AAEA,uEAAkE;AAElE,MAAM,KAAK,GAAG,YAAY,CAAC;AAG3B,MAAa,oBAAoB;IAE/B,MAAM,CAAC,IAAI,CAAC,IAAiB,EAAE,GAAG,MAAa;QAC7C,OAAO,6BAAa,CAAC,IAAI,CAAC,IAAI,EAAC,GAAG,MAAM,CAAC,CAAC;QAC1C,EAAE;QACF,wBAAwB;QACxB,qBAAqB;QACrB,WAAW;QACX,oCAAoC;QACpC,0BAA0B;QAC1B,MAAM;QACN,IAAI;QACJ,EAAE;QACF,iCAAiC;QACjC,qBAAqB;QACrB,kDAAkD;QAClD,oCAAoC;QACpC,gCAAgC;QAChC,wDAAwD;QACxD,+CAA+C;QAC/C,qCAAqC;QACrC,+CAA+C;QAC/C,yCAAyC;QACzC,2BAA2B;QAC3B,EAAE;QACF,kDAAkD;QAClD,+CAA+C;QAC/C,wBAAwB;QACxB,mBAAmB;QACnB,YAAY;QACZ,UAAU;QACV,EAAE;QACF,sBAAsB;QACtB,kCAAkC;QAClC,sEAAsE;QACtE,mBAAmB;QACnB,6DAA6D;QAC7D,YAAY;QACZ,iBAAiB;QACjB,6BAA6B;QAC7B,oCAAoC;QACpC,0EAA0E;QAC1E,qBAAqB;QACrB,iEAAiE;QACjE,cAAc;QACd,YAAY;QACZ,UAAU;QACV,UAAU;QACV,MAAM;QACN,MAAM;IAER,CAAC;CAEF;AArDD,oDAqDC","file":"InterpolationSupport.js","sourcesContent":["import {IConfigData} from '../config/IConfigData';\nimport {Utils} from '../utils/Utils';\nimport {Interpolation} from \"@allgemein/base/utils/Interpolation\";\n\nconst REGEX = /\\${[^}]+}/g;\n\n\nexport class InterpolationSupport {\n\n static exec(data: IConfigData, ...lookup: any[]): void {\n return Interpolation.exec(data,...lookup);\n //\n // if (!lookup.length) {\n // lookup = [data];\n // } else {\n // if (Array.isArray(lookup[0])) {\n // lookup = lookup[0];\n // }\n // }\n //\n // Utils.walk(data, (x: any) => {\n // let v = x.value;\n // if (typeof v === 'string' && REGEX.test(v)) {\n // const match = v.match(REGEX);\n // match.forEach(_match => {\n // const content = _match.replace(/^\\${|}$/g, '');\n // const splits = content.split(':-', 2);\n // const path = splits.shift();\n // const hasFallback = splits.length > 0;\n // const fallback = splits.shift();\n // let _value = null;\n //\n // for (let i = 0; i < lookup.length; i++) {\n // _value = Utils.get(lookup[i], path);\n // if (_value) {\n // break;\n // }\n // }\n //\n // if (_value) {\n // if (x.index !== null) {\n // x.parent[x.key][x.index] = v = v.replace(_match, _value);\n // } else {\n // x.parent[x.key] = v = v.replace(_match, _value);\n // }\n // } else {\n // if (hasFallback) {\n // if (x.index !== null) {\n // x.parent[x.key][x.index] = v = v.replace(_match, fallback);\n // } else {\n // x.parent[x.key] = v = v.replace(_match, fallback);\n // }\n // }\n // }\n // });\n // }\n // });\n\n }\n\n}\n"],"sourceRoot":".."}
|
package/utils/Utils.d.ts
CHANGED
|
@@ -9,7 +9,6 @@ export declare class Utils {
|
|
|
9
9
|
static clone(obj: any): any;
|
|
10
10
|
static uniqArr(res: any[]): any[];
|
|
11
11
|
static merge(...args: any[]): any;
|
|
12
|
-
static walk(root: any, fn: Function): void;
|
|
13
12
|
static get(arr: any, path?: string): any;
|
|
14
13
|
static splitTyped(arr: string, sep?: string): any[];
|
|
15
14
|
static set(arr: any, path: string | any[], value: any): boolean;
|
package/utils/Utils.js
CHANGED
|
@@ -27,6 +27,7 @@ exports.Utils = void 0;
|
|
|
27
27
|
// import {merge, mergeDeep} from "typescript-object-utils";
|
|
28
28
|
// import * as merge from 'deepmerge'
|
|
29
29
|
const _ = __importStar(require("lodash"));
|
|
30
|
+
const Interpolation_1 = require("@allgemein/base/utils/Interpolation");
|
|
30
31
|
class Utils {
|
|
31
32
|
/**
|
|
32
33
|
* https://stackoverflow.com/questions/1960473/unique-values-in-an-array
|
|
@@ -61,10 +62,10 @@ class Utils {
|
|
|
61
62
|
});
|
|
62
63
|
}
|
|
63
64
|
static merge(...args) {
|
|
64
|
-
|
|
65
|
+
const first = _.cloneDeep(args.shift());
|
|
65
66
|
return _.mergeWith(first, ...args, (dest, source) => {
|
|
66
67
|
if (_.isArray(dest)) {
|
|
67
|
-
|
|
68
|
+
const res = _.concat(dest, source);
|
|
68
69
|
return Utils.uniqArr(res);
|
|
69
70
|
}
|
|
70
71
|
else if (_.isPlainObject(dest)) {
|
|
@@ -74,86 +75,90 @@ class Utils {
|
|
|
74
75
|
return source;
|
|
75
76
|
}
|
|
76
77
|
});
|
|
77
|
-
//return merge.all(args, {arrayMerge: this.mergeArray})
|
|
78
|
-
//return _.merge(...args);//merge.all(args)
|
|
78
|
+
// return merge.all(args, {arrayMerge: this.mergeArray})
|
|
79
|
+
// return _.merge(...args);//merge.all(args)
|
|
79
80
|
/*
|
|
80
81
|
let tmp:any={}
|
|
81
82
|
args.forEach(_x => {tmp = mergeDeep(tmp,_x)})
|
|
82
83
|
return tmp
|
|
83
84
|
*/
|
|
84
85
|
}
|
|
85
|
-
static walk(root, fn) {
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
}
|
|
86
|
+
// static walk(root: any, fn: Function) {
|
|
87
|
+
// function walk(obj: any, location: any[] = []) {
|
|
88
|
+
// if (obj === null || obj === undefined) {
|
|
89
|
+
// return;
|
|
90
|
+
// }
|
|
91
|
+
//
|
|
92
|
+
// Object.keys(obj).forEach((key) => {
|
|
93
|
+
//
|
|
94
|
+
// // Value is an array, call walk on each item in the array
|
|
95
|
+
// if (Array.isArray(obj[key])) {
|
|
96
|
+
// obj[key].forEach((el: any, j: number) => {
|
|
97
|
+
// fn({
|
|
98
|
+
// value: el,
|
|
99
|
+
// key: key,
|
|
100
|
+
// index: j,
|
|
101
|
+
// location: [...location, ...[key], ...[j]],
|
|
102
|
+
// parent: obj,
|
|
103
|
+
// isLeaf: false
|
|
104
|
+
// });
|
|
105
|
+
// walk(el, [...location, ...[key], ...[j]]);
|
|
106
|
+
// });
|
|
107
|
+
//
|
|
108
|
+
// // Value is an object, walk the keys of the object
|
|
109
|
+
// } else if (typeof obj[key] === 'object') {
|
|
110
|
+
// fn({
|
|
111
|
+
// value: obj[key],
|
|
112
|
+
// key: key,
|
|
113
|
+
// parent: obj,
|
|
114
|
+
// index: null,
|
|
115
|
+
// location: [...location, ...[key]],
|
|
116
|
+
// isLeaf: false
|
|
117
|
+
// });
|
|
118
|
+
// walk(obj[key], [...location, ...[key]]);
|
|
119
|
+
//
|
|
120
|
+
// // We've reached a leaf node, call fn on the leaf with the location
|
|
121
|
+
// } else {
|
|
122
|
+
// fn({
|
|
123
|
+
// value: obj[key],
|
|
124
|
+
// key: key,
|
|
125
|
+
// parent: obj,
|
|
126
|
+
// index: null,
|
|
127
|
+
// location: [...location, ...[key]],
|
|
128
|
+
// isLeaf: true
|
|
129
|
+
// });
|
|
130
|
+
// }
|
|
131
|
+
// });
|
|
132
|
+
// }
|
|
133
|
+
//
|
|
134
|
+
// walk(root);
|
|
135
|
+
// }
|
|
131
136
|
static get(arr, path = null) {
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
}
|
|
152
|
-
return arr;
|
|
137
|
+
return Interpolation_1.Interpolation.get(arr, path);
|
|
138
|
+
// if (path) {
|
|
139
|
+
// const paths = path.split('.');
|
|
140
|
+
// let first: string | number = paths.shift();
|
|
141
|
+
// if (/^[1-9]+\d*$/.test(first)) {
|
|
142
|
+
// first = parseInt(first);
|
|
143
|
+
// }
|
|
144
|
+
// if (arr.hasOwnProperty(first)) {
|
|
145
|
+
// const pointer: any = arr[first];
|
|
146
|
+
// if (paths.length === 0) {
|
|
147
|
+
// return pointer;
|
|
148
|
+
// } else {
|
|
149
|
+
// return Utils.get(pointer, paths.join('.'));
|
|
150
|
+
// }
|
|
151
|
+
// } else {
|
|
152
|
+
// // not found
|
|
153
|
+
// return null;
|
|
154
|
+
// }
|
|
155
|
+
//
|
|
156
|
+
// }
|
|
157
|
+
// return arr;
|
|
153
158
|
}
|
|
154
159
|
static splitTyped(arr, sep = '.') {
|
|
155
|
-
|
|
156
|
-
|
|
160
|
+
const paths = arr.split('.');
|
|
161
|
+
const normPaths = [];
|
|
157
162
|
paths.forEach(function (_x) {
|
|
158
163
|
if (typeof _x === 'string' && /\d+/.test(_x)) {
|
|
159
164
|
normPaths.push(parseInt(_x));
|
|
@@ -174,7 +179,7 @@ class Utils {
|
|
|
174
179
|
paths = path;
|
|
175
180
|
}
|
|
176
181
|
first = paths.shift();
|
|
177
|
-
|
|
182
|
+
const next = paths.length > 0 ? paths[0] : null;
|
|
178
183
|
if (!arr.hasOwnProperty(first)) {
|
|
179
184
|
// new, key doesn't exists
|
|
180
185
|
if (typeof next === 'number') {
|
package/utils/Utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/utils/Utils.ts"],"names":[],"mappings":"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","file":"Utils.js","sourcesContent":["// import {merge, mergeDeep} from \"typescript-object-utils\";\n// import * as merge from 'deepmerge'\nimport * as _ from 'lodash';\n\n\nexport class Utils {\n\n /**\n * https://stackoverflow.com/questions/1960473/unique-values-in-an-array\n * @param arr\n * @returns {any[]}\n */\n static unique_array(arr: any[]): any[] {\n return arr.filter((v, i, a) => a.indexOf(v) === i);\n }\n\n static escapeRegExp(text: string): string {\n return text.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n }\n\n static clone(obj: any) {\n return _.cloneDeep(obj)\n }\n\n /*\n static mergeArray(dest: any[], source: any[], options?: merge.Options) {\n let res = _.concat(dest, source);\n return Utils.uniqArr(res)\n }\n*/\n\n static uniqArr(res: any[]) {\n return _.uniqBy(res, (entry: any) => {\n let x = null\n if (_.isFunction(entry)) {\n x = entry.toString();\n } else {\n x = JSON.stringify(entry);\n }\n return x\n });\n }\n\n\n static merge(...args: any[]): any {\n let first = _.cloneDeep(args.shift());\n return _.mergeWith(first, ...args, (dest: any, source: any) => {\n if (_.isArray(dest)) {\n let res = _.concat(dest, source);\n return Utils.uniqArr(res)\n } else if (_.isPlainObject(dest)) {\n return Utils.merge(dest, source);\n } else {\n return source;\n }\n\n });\n //return merge.all(args, {arrayMerge: this.mergeArray})\n //return _.merge(...args);//merge.all(args)\n /*\n let tmp:any={}\n args.forEach(_x => {tmp = mergeDeep(tmp,_x)})\n return tmp\n */\n }\n\n static walk(root: any, fn: Function) {\n function walk(obj: any, location: any[] = []) {\n if (obj === null || obj === undefined) return;\n\n Object.keys(obj).forEach((key) => {\n\n // Value is an array, call walk on each item in the array\n if (Array.isArray(obj[key])) {\n obj[key].forEach((el: any, j: number) => {\n fn({\n value: el,\n key: key,\n index: j,\n location: [...location, ...[key], ...[j]],\n parent: obj,\n isLeaf: false\n });\n walk(el, [...location, ...[key], ...[j]])\n })\n\n // Value is an object, walk the keys of the object\n } else if (typeof obj[key] === 'object') {\n fn({\n value: obj[key],\n key: key,\n parent: obj,\n index: null,\n location: [...location, ...[key]],\n isLeaf: false\n });\n walk(obj[key], [...location, ...[key]])\n\n // We've reached a leaf node, call fn on the leaf with the location\n } else {\n fn({\n value: obj[key],\n key: key,\n parent: obj,\n index: null,\n location: [...location, ...[key]],\n isLeaf: true\n })\n }\n })\n }\n\n walk(root)\n }\n\n static get(arr: any, path: string = null): any {\n if (path) {\n let paths = path.split('.');\n let first: string | number = paths.shift();\n if (/^[1-9]+\\d*$/.test(first)) {\n first = parseInt(first)\n }\n if (arr.hasOwnProperty(first)) {\n let pointer: any = arr[first];\n if (paths.length === 0) {\n return pointer\n } else {\n return Utils.get(pointer, paths.join('.'))\n }\n } else {\n // not found\n return null\n }\n\n }\n return arr\n\n }\n\n static splitTyped(arr: string, sep: string = '.'): any[] {\n let paths = arr.split('.');\n let normPaths: any[] = [];\n paths.forEach(function (_x) {\n if (typeof _x === 'string' && /\\d+/.test(_x)) {\n normPaths.push(parseInt(_x))\n } else {\n normPaths.push(_x)\n }\n\n });\n return normPaths\n }\n\n static set(arr: any, path: string | any[], value: any): boolean {\n let paths = null;\n let first: string | number = null;\n\n if (typeof path === 'string') {\n paths = Utils.splitTyped(path)\n } else {\n paths = path\n }\n first = paths.shift();\n let next = paths.length > 0 ? paths[0] : null;\n\n\n if (!arr.hasOwnProperty(first)) {\n // new, key doesn't exists\n if (typeof next === 'number') {\n // if next value is a number then this must be an array!\n arr[first] = []\n } else {\n arr[first] = {}\n }\n } else {\n if (Array.isArray(arr)) {\n if (!(typeof first === 'number')) {\n return false\n }\n } else if (Array.isArray(arr[first])) {\n if (!(typeof next === 'number')) {\n return false\n }\n } else if (!Utils.isObject(arr[first])) {\n // primative\n if (Utils.isObject(value)) {\n return false\n }\n } else {\n if (typeof next === 'number') {\n // must be array\n if (!Array.isArray(arr[first])) {\n return false\n }\n }\n }\n }\n\n if (paths.length > 0) {\n return Utils.set(arr[first], paths, value)\n } else {\n arr[first] = value;\n return true\n }\n }\n\n static isArray(o: any) {\n return _.isArray(o)\n }\n\n static isObject(o: any) {\n return _.isObject(o)\n }\n\n\n static isString(o: any) {\n return _.isString(o)\n }\n\n\n static isEmpty(o: any) {\n return _.isEmpty(o)\n }\n}\n"],"sourceRoot":".."}
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/Utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4DAA4D;AAC5D,qCAAqC;AACrC,0CAA4B;AAC5B,uEAAkE;AAGlE,MAAa,KAAK;IAEhB;;;;OAIG;IACH,MAAM,CAAC,YAAY,CAAC,GAAU;QAC5B,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,IAAY;QAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,0BAA0B,EAAE,MAAM,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,GAAQ;QACnB,OAAO,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED;;;;;IAKA;IAEA,MAAM,CAAC,OAAO,CAAC,GAAU;QACvB,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,KAAU,EAAE,EAAE;YAClC,IAAI,CAAC,GAAG,IAAI,CAAC;YACb,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;gBACvB,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;aACtB;iBAAM;gBACL,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;aAC3B;YACD,OAAO,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;IACL,CAAC;IAGD,MAAM,CAAC,KAAK,CAAC,GAAG,IAAW;QACzB,MAAM,KAAK,GAAG,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACxC,OAAO,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,IAAI,EAAE,CAAC,IAAS,EAAE,MAAW,EAAE,EAAE;YAC5D,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACnB,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBACnC,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;aAC3B;iBAAM,IAAI,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE;gBAChC,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;aAClC;iBAAM;gBACL,OAAO,MAAM,CAAC;aACf;QAEH,CAAC,CAAC,CAAC;QACH,wDAAwD;QACxD,4CAA4C;QAC5C;;;;WAIG;IACL,CAAC;IAED,yCAAyC;IACzC,oDAAoD;IACpD,+CAA+C;IAC/C,gBAAgB;IAChB,QAAQ;IACR,EAAE;IACF,0CAA0C;IAC1C,EAAE;IACF,kEAAkE;IAClE,uCAAuC;IACvC,qDAAqD;IACrD,iBAAiB;IACjB,yBAAyB;IACzB,wBAAwB;IACxB,wBAAwB;IACxB,yDAAyD;IACzD,2BAA2B;IAC3B,4BAA4B;IAC5B,gBAAgB;IAChB,uDAAuD;IACvD,cAAc;IACd,EAAE;IACF,6DAA6D;IAC7D,mDAAmD;IACnD,eAAe;IACf,6BAA6B;IAC7B,sBAAsB;IACtB,yBAAyB;IACzB,yBAAyB;IACzB,+CAA+C;IAC/C,0BAA0B;IAC1B,cAAc;IACd,mDAAmD;IACnD,EAAE;IACF,8EAA8E;IAC9E,iBAAiB;IACjB,eAAe;IACf,6BAA6B;IAC7B,sBAAsB;IACtB,yBAAyB;IACzB,yBAAyB;IACzB,+CAA+C;IAC/C,yBAAyB;IACzB,cAAc;IACd,UAAU;IACV,UAAU;IACV,MAAM;IACN,EAAE;IACF,gBAAgB;IAChB,IAAI;IAEJ,MAAM,CAAC,GAAG,CAAC,GAAQ,EAAE,OAAe,IAAI;QACtC,OAAO,6BAAa,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACpC,cAAc;QACd,mCAAmC;QACnC,gDAAgD;QAChD,qCAAqC;QACrC,+BAA+B;QAC/B,MAAM;QACN,qCAAqC;QACrC,uCAAuC;QACvC,gCAAgC;QAChC,wBAAwB;QACxB,eAAe;QACf,oDAAoD;QACpD,QAAQ;QACR,aAAa;QACb,mBAAmB;QACnB,mBAAmB;QACnB,MAAM;QACN,EAAE;QACF,IAAI;QACJ,cAAc;IAChB,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,GAAW,EAAE,MAAc,GAAG;QAC9C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7B,MAAM,SAAS,GAAU,EAAE,CAAC;QAC5B,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE;YACxB,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;gBAC5C,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;aAC9B;iBAAM;gBACL,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;aACpB;QAEH,CAAC,CAAC,CAAC;QACH,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,GAAQ,EAAE,IAAoB,EAAE,KAAU;QACnD,IAAI,KAAK,GAAG,IAAI,CAAC;QACjB,IAAI,KAAK,GAAoB,IAAI,CAAC;QAElC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YAC5B,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SAChC;aAAM;YACL,KAAK,GAAG,IAAI,CAAC;SACd;QACD,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;QACtB,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAGhD,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE;YAC9B,0BAA0B;YAC1B,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;gBAC5B,wDAAwD;gBACxD,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;aACjB;iBAAM;gBACL,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;aACjB;SACF;aAAM;YACL,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACtB,IAAI,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,EAAE;oBAChC,OAAO,KAAK,CAAC;iBACd;aACF;iBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;gBACpC,IAAI,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,EAAE;oBAC/B,OAAO,KAAK,CAAC;iBACd;aACF;iBAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;gBACtC,YAAY;gBACZ,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;oBACzB,OAAO,KAAK,CAAC;iBACd;aACF;iBAAM;gBACL,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;oBAC5B,gBAAgB;oBAChB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;wBAC9B,OAAO,KAAK,CAAC;qBACd;iBACF;aACF;SACF;QAED,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACpB,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;SAC5C;aAAM;YACL,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;YACnB,OAAO,IAAI,CAAC;SACb;IACH,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,CAAM;QACnB,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,CAAM;QACpB,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;IAGD,MAAM,CAAC,QAAQ,CAAC,CAAM;QACpB,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;IAGD,MAAM,CAAC,OAAO,CAAC,CAAM;QACnB,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC;CACF;AA5ND,sBA4NC","file":"Utils.js","sourcesContent":["// import {merge, mergeDeep} from \"typescript-object-utils\";\n// import * as merge from 'deepmerge'\nimport * as _ from 'lodash';\nimport {Interpolation} from \"@allgemein/base/utils/Interpolation\";\n\n\nexport class Utils {\n\n /**\n * https://stackoverflow.com/questions/1960473/unique-values-in-an-array\n * @param arr\n * @returns {any[]}\n */\n static unique_array(arr: any[]): any[] {\n return arr.filter((v, i, a) => a.indexOf(v) === i);\n }\n\n static escapeRegExp(text: string): string {\n return text.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n }\n\n static clone(obj: any) {\n return _.cloneDeep(obj);\n }\n\n /*\n static mergeArray(dest: any[], source: any[], options?: merge.Options) {\n let res = _.concat(dest, source);\n return Utils.uniqArr(res)\n }\n*/\n\n static uniqArr(res: any[]) {\n return _.uniqBy(res, (entry: any) => {\n let x = null;\n if (_.isFunction(entry)) {\n x = entry.toString();\n } else {\n x = JSON.stringify(entry);\n }\n return x;\n });\n }\n\n\n static merge(...args: any[]): any {\n const first = _.cloneDeep(args.shift());\n return _.mergeWith(first, ...args, (dest: any, source: any) => {\n if (_.isArray(dest)) {\n const res = _.concat(dest, source);\n return Utils.uniqArr(res);\n } else if (_.isPlainObject(dest)) {\n return Utils.merge(dest, source);\n } else {\n return source;\n }\n\n });\n // return merge.all(args, {arrayMerge: this.mergeArray})\n // return _.merge(...args);//merge.all(args)\n /*\n let tmp:any={}\n args.forEach(_x => {tmp = mergeDeep(tmp,_x)})\n return tmp\n */\n }\n\n // static walk(root: any, fn: Function) {\n // function walk(obj: any, location: any[] = []) {\n // if (obj === null || obj === undefined) {\n // return;\n // }\n //\n // Object.keys(obj).forEach((key) => {\n //\n // // Value is an array, call walk on each item in the array\n // if (Array.isArray(obj[key])) {\n // obj[key].forEach((el: any, j: number) => {\n // fn({\n // value: el,\n // key: key,\n // index: j,\n // location: [...location, ...[key], ...[j]],\n // parent: obj,\n // isLeaf: false\n // });\n // walk(el, [...location, ...[key], ...[j]]);\n // });\n //\n // // Value is an object, walk the keys of the object\n // } else if (typeof obj[key] === 'object') {\n // fn({\n // value: obj[key],\n // key: key,\n // parent: obj,\n // index: null,\n // location: [...location, ...[key]],\n // isLeaf: false\n // });\n // walk(obj[key], [...location, ...[key]]);\n //\n // // We've reached a leaf node, call fn on the leaf with the location\n // } else {\n // fn({\n // value: obj[key],\n // key: key,\n // parent: obj,\n // index: null,\n // location: [...location, ...[key]],\n // isLeaf: true\n // });\n // }\n // });\n // }\n //\n // walk(root);\n // }\n\n static get(arr: any, path: string = null): any {\n return Interpolation.get(arr, path);\n // if (path) {\n // const paths = path.split('.');\n // let first: string | number = paths.shift();\n // if (/^[1-9]+\\d*$/.test(first)) {\n // first = parseInt(first);\n // }\n // if (arr.hasOwnProperty(first)) {\n // const pointer: any = arr[first];\n // if (paths.length === 0) {\n // return pointer;\n // } else {\n // return Utils.get(pointer, paths.join('.'));\n // }\n // } else {\n // // not found\n // return null;\n // }\n //\n // }\n // return arr;\n }\n\n static splitTyped(arr: string, sep: string = '.'): any[] {\n const paths = arr.split('.');\n const normPaths: any[] = [];\n paths.forEach(function (_x) {\n if (typeof _x === 'string' && /\\d+/.test(_x)) {\n normPaths.push(parseInt(_x));\n } else {\n normPaths.push(_x);\n }\n\n });\n return normPaths;\n }\n\n static set(arr: any, path: string | any[], value: any): boolean {\n let paths = null;\n let first: string | number = null;\n\n if (typeof path === 'string') {\n paths = Utils.splitTyped(path);\n } else {\n paths = path;\n }\n first = paths.shift();\n const next = paths.length > 0 ? paths[0] : null;\n\n\n if (!arr.hasOwnProperty(first)) {\n // new, key doesn't exists\n if (typeof next === 'number') {\n // if next value is a number then this must be an array!\n arr[first] = [];\n } else {\n arr[first] = {};\n }\n } else {\n if (Array.isArray(arr)) {\n if (!(typeof first === 'number')) {\n return false;\n }\n } else if (Array.isArray(arr[first])) {\n if (!(typeof next === 'number')) {\n return false;\n }\n } else if (!Utils.isObject(arr[first])) {\n // primative\n if (Utils.isObject(value)) {\n return false;\n }\n } else {\n if (typeof next === 'number') {\n // must be array\n if (!Array.isArray(arr[first])) {\n return false;\n }\n }\n }\n }\n\n if (paths.length > 0) {\n return Utils.set(arr[first], paths, value);\n } else {\n arr[first] = value;\n return true;\n }\n }\n\n static isArray(o: any) {\n return _.isArray(o);\n }\n\n static isObject(o: any) {\n return _.isObject(o);\n }\n\n\n static isString(o: any) {\n return _.isString(o);\n }\n\n\n static isEmpty(o: any) {\n return _.isEmpty(o);\n }\n}\n"],"sourceRoot":".."}
|