@allgemein/base 1.6.9 → 1.6.11

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@allgemein/base",
3
- "version": "1.6.9",
3
+ "version": "1.6.11",
4
4
  "description": "Library for commons moduls.",
5
5
  "main": "./index.js",
6
6
  "private": false,
@@ -29,24 +29,24 @@
29
29
  },
30
30
  "homepage": "https://github.com/allgemein-node/base#readme",
31
31
  "devDependencies": {
32
- "@allgemein/packaging": "^1.2.13",
33
- "@testdeck/mocha": "^0.1.2",
34
- "@types/chai": "^4.2.22",
32
+ "@allgemein/packaging": "^1.2.18",
33
+ "@testdeck/mocha": "^0.2.1",
34
+ "@types/chai": "^4.3.3",
35
35
  "@types/expect": "^24.3.0",
36
- "@types/glob": "^7.1.4",
37
- "@types/lodash": "^4.14.175",
38
- "@types/mocha": "^9.0.0",
39
- "@types/node": "^16.10.3",
40
- "@typescript-eslint/eslint-plugin": "^5.10.1",
41
- "@typescript-eslint/parser": "^5.10.1",
42
- "chai": "^4.3.4",
36
+ "@types/glob": "^8.0.0",
37
+ "@types/lodash": "^4.14.186",
38
+ "@types/mocha": "^10.0.0",
39
+ "@types/node": "^18.7.23",
40
+ "@typescript-eslint/eslint-plugin": "^5.38.1",
41
+ "@typescript-eslint/parser": "^5.38.1",
42
+ "chai": "^4.3.6",
43
43
  "codecov": "^3.8.3",
44
44
  "codelyzer": "^6.0.2",
45
- "del": "6.0.0",
46
- "eslint": "7.28.0",
47
- "eslint-plugin-import": "2.23.4",
48
- "eslint-plugin-mocha": "9.0.0",
49
- "eslint-plugin-prettier": "3.4.0",
45
+ "del": "6.1.1",
46
+ "eslint": "8.24.0",
47
+ "eslint-plugin-import": "2.26.0",
48
+ "eslint-plugin-mocha": "10.1.0",
49
+ "eslint-plugin-prettier": "4.2.1",
50
50
  "gulp": "4.0.2",
51
51
  "gulp-bump": "^3.2.0",
52
52
  "gulp-clean": "^0.4.0",
@@ -55,14 +55,13 @@
55
55
  "gulp-sourcemaps": "3.0.0",
56
56
  "gulp-typescript": "5.0.1",
57
57
  "merge-stream": "^2.0.0",
58
- "mocha": "^9.1.2",
58
+ "mocha": "^10.0.0",
59
59
  "nyc": "^15.1.0",
60
60
  "lodash": "^4.17.21",
61
61
  "reflect-metadata": "^0.1.13",
62
62
  "std-mocks": "^1.0.1",
63
- "ts-node": "^10.2.1",
64
- "tslint": "^6.1.3",
65
- "typescript": "4.4.3"
63
+ "ts-node": "^10.9.1",
64
+ "typescript": "4.8.4"
66
65
  },
67
66
  "peerDependencies": {
68
67
  "lodash": "^4.17.21"
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/utils/ClassUtils.ts"],"names":[],"mappings":";;;AAAA,mCAAgH;AAChH,4CAAwC;AAExC,MAAa,UAAU;IACrB,MAAM,CAAC,YAAY,CAAC,KAAwB;QAC1C,IAAI,IAAA,iBAAQ,EAAC,KAAK,CAAC,EAAE;YACnB,OAAO,KAAK,CAAC;SACd;aAAM,IAAI,IAAA,mBAAU,EAAC,KAAK,CAAC,EAAE;YAC5B,OAAO,KAAK,CAAC,IAAI,CAAC;SACnB;aAAM,IAAI,IAAA,iBAAQ,EAAC,KAAK,CAAC,EAAE;YAC1B,OAAO,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC;SAC/B;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;SACrC;IACH,CAAC;IAGD,MAAM,CAAC,WAAW,CAAC,KAAwB;QACzC,IAAI,IAAA,iBAAQ,EAAC,KAAK,CAAC,EAAE;YACnB,0BAA0B;YAC1B,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;SACxC;aAAM,IAAI,IAAA,mBAAU,EAAC,KAAK,CAAC,EAAE;YAC5B,OAAO,KAAK,CAAC;SACd;aAAM,IAAI,IAAA,iBAAQ,EAAC,KAAK,CAAC,EAAE;YAC1B,OAAO,KAAK,CAAC,WAAW,CAAC;SAC1B;aAAM;YACL,0BAA0B;YAC1B,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;SACxC;IACH,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,GAAa;QAC5B,IAAI,KAAK,GAAG,IAAI,CAAC;QACjB,IAAI,OAAO,IAAI,OAAO,CAAC,gBAAgB,CAAC,EAAE;YACxC,KAAK,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,sBAAU,EAAE,GAAG,CAAC,CAAC;SACpD;aAAM;YACL,KAAK,GAAG,GAAG,CAAC,sBAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,sBAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;SAClD;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CAEF;AAtCD,gCAsCC","file":"ClassUtils.js","sourcesContent":["import {isNull, isNumber, find, isString, snakeCase, concat, isArray, keys, isFunction, isObject} from 'lodash';\nimport {__SOURCE__} from '../Constants';\n\nexport class ClassUtils {\n static getClassName(klass: string | Function) {\n if (isString(klass)) {\n return klass;\n } else if (isFunction(klass)) {\n return klass.name;\n } else if (isObject(klass)) {\n return klass.constructor.name;\n } else {\n throw new Error('class not found!');\n }\n }\n\n\n static getFunction(klass: string | Function) {\n if (isString(klass)) {\n // TODO create error class\n throw new Error('class not found! 02');\n } else if (isFunction(klass)) {\n return klass;\n } else if (isObject(klass)) {\n return klass.constructor;\n } else {\n // TODO create error class\n throw new Error('class not found! 01');\n }\n }\n\n static getSource(cls: Function): string {\n let _path = null;\n if (Reflect && Reflect['getOwnMetadata']) {\n _path = Reflect['getOwnMetadata'](__SOURCE__, cls);\n } else {\n _path = cls[__SOURCE__] ? cls[__SOURCE__] : null;\n }\n return _path;\n }\n\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../../../src/utils/ClassUtils.ts"],"names":[],"mappings":";;;AAAA,mCAAgH;AAChH,4CAAwC;AAExC,MAAa,UAAU;IACrB,MAAM,CAAC,YAAY,CAAC,KAAwB;QAC1C,IAAI,IAAA,iBAAQ,EAAC,KAAK,CAAC,EAAE;YACnB,OAAO,KAAK,CAAC;SACd;aAAM,IAAI,IAAA,mBAAU,EAAC,KAAK,CAAC,EAAE;YAC5B,OAAO,KAAK,CAAC,IAAI,CAAC;SACnB;aAAM,IAAI,IAAA,iBAAQ,EAAC,KAAK,CAAC,EAAE;YAC1B,OAAO,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC;SAC/B;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;SACrC;IACH,CAAC;IAGD,MAAM,CAAC,WAAW,CAAC,KAAwB;QACzC,IAAI,IAAA,iBAAQ,EAAC,KAAK,CAAC,EAAE;YACnB,0BAA0B;YAC1B,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;SACxC;aAAM,IAAI,IAAA,mBAAU,EAAC,KAAK,CAAC,EAAE;YAC5B,OAAO,KAAK,CAAC;SACd;aAAM,IAAI,IAAA,iBAAQ,EAAC,KAAK,CAAC,EAAE;YAC1B,OAAO,KAAK,CAAC,WAAW,CAAC;SAC1B;aAAM;YACL,0BAA0B;YAC1B,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;SACxC;IACH,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,GAAa;QAC5B,IAAI,KAAK,GAAG,IAAI,CAAC;QACjB,IAAI,OAAO,IAAI,OAAO,CAAC,gBAAgB,CAAC,EAAE;YACxC,KAAK,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,sBAAU,EAAE,GAAa,CAAC,CAAC;SAC9D;aAAM;YACL,KAAK,GAAG,GAAG,CAAC,sBAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,sBAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;SAClD;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CAEF;AAtCD,gCAsCC","file":"ClassUtils.js","sourcesContent":["import {isNull, isNumber, find, isString, snakeCase, concat, isArray, keys, isFunction, isObject} from 'lodash';\nimport {__SOURCE__} from '../Constants';\n\nexport class ClassUtils {\n static getClassName(klass: string | Function) {\n if (isString(klass)) {\n return klass;\n } else if (isFunction(klass)) {\n return klass.name;\n } else if (isObject(klass)) {\n return klass.constructor.name;\n } else {\n throw new Error('class not found!');\n }\n }\n\n\n static getFunction(klass: string | Function) {\n if (isString(klass)) {\n // TODO create error class\n throw new Error('class not found! 02');\n } else if (isFunction(klass)) {\n return klass;\n } else if (isObject(klass)) {\n return klass.constructor;\n } else {\n // TODO create error class\n throw new Error('class not found! 01');\n }\n }\n\n static getSource(cls: Function): string {\n let _path = null;\n if (Reflect && Reflect['getOwnMetadata']) {\n _path = Reflect['getOwnMetadata'](__SOURCE__, cls as object);\n } else {\n _path = cls[__SOURCE__] ? cls[__SOURCE__] : null;\n }\n return _path;\n }\n\n}\n"],"sourceRoot":".."}
@@ -1,4 +1,5 @@
1
1
 
2
+
2
3
  import * as fs from 'fs';
3
4
  export declare class FileUtils {
4
5
  static _GLOB: any;
@@ -0,0 +1,4 @@
1
+ export declare class Interpolation {
2
+ static exec(data: any, ...lookup: any[]): void;
3
+ static get(arr: any, path?: string): any;
4
+ }
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Interpolation = void 0;
4
+ const TreeUtils_1 = require("./TreeUtils");
5
+ const lodash_1 = require("lodash");
6
+ const REGEX = /\${[^}]+}/g;
7
+ class Interpolation {
8
+ static exec(data, ...lookup) {
9
+ if (!lookup.length) {
10
+ lookup = [data];
11
+ }
12
+ else {
13
+ if (Array.isArray(lookup[0])) {
14
+ lookup = lookup[0];
15
+ }
16
+ }
17
+ TreeUtils_1.TreeUtils.walk(data, (x) => {
18
+ let v = x.value;
19
+ if ((0, lodash_1.isString)(v) && REGEX.test(v)) {
20
+ const match = v.match(REGEX);
21
+ match.forEach(_match => {
22
+ const content = _match.replace(/^\${|}$/g, '');
23
+ const splits = content.split(':-', 2);
24
+ const path = splits.shift();
25
+ const hasFallback = splits.length > 0;
26
+ const fallback = splits.shift();
27
+ let _value = null;
28
+ for (let i = 0; i < lookup.length; i++) {
29
+ _value = this.get(lookup[i], path);
30
+ if (_value) {
31
+ break;
32
+ }
33
+ }
34
+ if (_value) {
35
+ if (x.index !== null) {
36
+ x.parent[x.index] = v = v.replace(_match, _value);
37
+ }
38
+ else {
39
+ x.parent[x.key] = v = v.replace(_match, _value);
40
+ }
41
+ }
42
+ else {
43
+ if (hasFallback) {
44
+ if (x.index !== null) {
45
+ x.parent[x.index] = v = v.replace(_match, fallback);
46
+ }
47
+ else {
48
+ x.parent[x.key] = v = v.replace(_match, fallback);
49
+ }
50
+ }
51
+ }
52
+ });
53
+ }
54
+ });
55
+ }
56
+ static get(arr, path = null) {
57
+ if (path) {
58
+ const paths = path.split('.');
59
+ let first = paths.shift();
60
+ if (/^[1-9]+\d*$/.test(first)) {
61
+ first = parseInt(first, 10);
62
+ }
63
+ // eslint-disable-next-line no-prototype-builtins
64
+ if (arr.hasOwnProperty(first)) {
65
+ const pointer = arr[first];
66
+ if (paths.length === 0) {
67
+ return pointer;
68
+ }
69
+ else {
70
+ return this.get(pointer, paths.join('.'));
71
+ }
72
+ }
73
+ else {
74
+ // not found
75
+ return null;
76
+ }
77
+ }
78
+ return arr;
79
+ }
80
+ }
81
+ exports.Interpolation = Interpolation;
82
+
83
+ //# sourceMappingURL=Interpolation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/utils/Interpolation.ts"],"names":[],"mappings":"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","file":"Interpolation.js","sourcesContent":["import {TreeUtils, WalkValues} from './TreeUtils';\nimport {isString} from 'lodash';\n\nconst REGEX = /\\${[^}]+}/g;\n\n\nexport class Interpolation {\n\n static exec(data: any, ...lookup: any[]): void {\n\n if (!lookup.length) {\n lookup = [data];\n } else {\n if (Array.isArray(lookup[0])) {\n lookup = lookup[0];\n }\n }\n\n TreeUtils.walk(data, (x: WalkValues) => {\n let v = x.value;\n if (isString(v) && 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 = this.get(lookup[i], path);\n if (_value) {\n break;\n }\n }\n\n if (_value) {\n if (x.index !== null) {\n x.parent[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.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 static get(arr: any, path: string = null): any {\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, 10);\n }\n // eslint-disable-next-line no-prototype-builtins\n if (arr.hasOwnProperty(first)) {\n const pointer: any = arr[first];\n if (paths.length === 0) {\n return pointer;\n } else {\n return this.get(pointer, paths.join('.'));\n }\n } else {\n // not found\n return null;\n }\n\n }\n return arr;\n\n }\n\n\n}\n"],"sourceRoot":".."}
@@ -7,6 +7,7 @@ export interface WalkValues {
7
7
  isLeaf: boolean;
8
8
  }
9
9
  export declare class TreeUtils {
10
+ static isLeaf(el: any): boolean;
10
11
  static walk(root: any, fn: (x: WalkValues) => void): void;
11
12
  static walkAsync(root: any, fn: (x: WalkValues) => void): Promise<void>;
12
13
  }
@@ -2,7 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TreeUtils = void 0;
4
4
  const lodash_1 = require("lodash");
5
+ const types_1 = require("util/types");
5
6
  class TreeUtils {
7
+ static isLeaf(el) {
8
+ return !((0, lodash_1.isArray)(el) || ((0, lodash_1.isObject)(el) && !((0, types_1.isNumberObject)(el) || (0, types_1.isStringObject)(el) || (0, lodash_1.isDate)(el))));
9
+ }
6
10
  static walk(root, fn) {
7
11
  function walk(obj, parent = null, key = null, location = []) {
8
12
  if (obj === null || obj === undefined) {
@@ -10,7 +14,7 @@ class TreeUtils {
10
14
  }
11
15
  if ((0, lodash_1.isArray)(obj)) {
12
16
  obj.forEach((el, j) => {
13
- const isLeaf = !(0, lodash_1.isArray)(el) && !(0, lodash_1.isObjectLike)(el);
17
+ const isLeaf = TreeUtils.isLeaf(el);
14
18
  fn({
15
19
  value: el,
16
20
  key: key,
@@ -26,7 +30,8 @@ class TreeUtils {
26
30
  }
27
31
  else if ((0, lodash_1.isObjectLike)(obj)) {
28
32
  (0, lodash_1.keys)(obj).forEach((_key) => {
29
- const isLeaf = !(0, lodash_1.isArray)(obj[_key]) && !(0, lodash_1.isObjectLike)(obj[_key]);
33
+ const isLeaf = TreeUtils.isLeaf(obj[_key]);
34
+ // const isLeaf = !isArray(obj[_key]) && !isObjectLike(obj[_key]);
30
35
  fn({
31
36
  value: obj[_key],
32
37
  key: _key,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/utils/TreeUtils.ts"],"names":[],"mappings":"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","file":"TreeUtils.js","sourcesContent":["import {isArray, isObjectLike, keys} from 'lodash';\n\nexport interface WalkValues {\n value: any;\n key: string | number;\n index: number;\n location: any;\n parent: any;\n isLeaf: boolean;\n}\n\nexport class TreeUtils {\n\n\n static walk(root: any, fn: (x: WalkValues) => void) {\n function walk(obj: any, parent: any = null, key: string | number = null, location: any[] = []) {\n if (obj === null || obj === undefined) {\n return;\n }\n if (isArray(obj)) {\n obj.forEach((el: any, j: number) => {\n const isLeaf = !isArray(el) && !isObjectLike(el);\n fn({\n value: el,\n key: key,\n index: j,\n location: [...location, ...[j]],\n parent: obj,\n isLeaf: isLeaf\n });\n if (!isLeaf) {\n walk(el, j, el, key ? [...location, ...[key], ...[j]] : [...location, ...[j]]);\n }\n });\n } else if (isObjectLike(obj)) {\n keys(obj).forEach((_key: string) => {\n const isLeaf = !isArray(obj[_key]) && !isObjectLike(obj[_key]);\n fn({\n value: obj[_key],\n key: _key,\n parent: obj,\n index: null,\n location: [...location, ...[_key]],\n isLeaf: isLeaf\n });\n if (!isLeaf) {\n walk(obj[_key], obj, _key, [...location, ...[_key]]);\n }\n });\n } else {\n fn({\n value: obj,\n key: key,\n parent: parent,\n index: null,\n location: [...location],\n isLeaf: true\n });\n }\n }\n\n walk(root);\n }\n\n\n static async walkAsync(root: any, fn: (x: WalkValues) => void) {\n async function walk(obj: any, parent: any = null, key: string | number = null, location: any[] = []) {\n if (obj === null || obj === undefined) {\n return;\n }\n if (isArray(obj)) {\n for (let j = 0; j < obj.length; j++) {\n const el = obj[j];\n const isLeaf = !isArray(el) && !isObjectLike(el);\n await fn({\n value: el,\n key: key,\n index: j,\n location: [...location, ...[j]],\n parent: obj,\n isLeaf: isLeaf\n });\n if (!isLeaf) {\n await walk(el, j, el, key ? [...location, ...[key], ...[j]] : [...location, ...[j]]);\n }\n }\n } else if (isObjectLike(obj)) {\n for (const _key of keys(obj)) {\n const isLeaf = !isArray(obj[_key]) && !isObjectLike(obj[_key]);\n await fn({\n value: obj[_key],\n key: _key,\n parent: obj,\n index: null,\n location: [...location, ...[_key]],\n isLeaf: isLeaf\n });\n if (!isLeaf) {\n await walk(obj[_key], obj, _key, [...location, ...[_key]]);\n }\n }\n } else {\n await fn({\n value: obj,\n key: key,\n parent: parent,\n index: null,\n location: [...location],\n isLeaf: true\n });\n }\n }\n\n await walk(root);\n }\n\n\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../../../src/utils/TreeUtils.ts"],"names":[],"mappings":"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","file":"TreeUtils.js","sourcesContent":["import {isArray, isDate, isNull, isNumber, isObject, isObjectLike, isString, keys} from 'lodash';\nimport {isNumberObject, isStringObject} from 'util/types';\n\nexport interface WalkValues {\n value: any;\n key: string | number;\n index: number;\n location: any;\n parent: any;\n isLeaf: boolean;\n}\n\nexport class TreeUtils {\n\n static isLeaf(el: any) {\n return !(isArray(el) || (isObject(el) && !(isNumberObject(el) || isStringObject(el) || isDate(el))));\n }\n\n static walk(root: any, fn: (x: WalkValues) => void) {\n function walk(obj: any, parent: any = null, key: string | number = null, location: any[] = []) {\n if (obj === null || obj === undefined) {\n return;\n }\n if (isArray(obj)) {\n obj.forEach((el: any, j: number) => {\n const isLeaf = TreeUtils.isLeaf(el);\n fn({\n value: el,\n key: key,\n index: j,\n location: [...location, ...[j]],\n parent: obj,\n isLeaf: isLeaf\n });\n if (!isLeaf) {\n walk(el, j, el, key ? [...location, ...[key], ...[j]] : [...location, ...[j]]);\n }\n });\n } else if (isObjectLike(obj)) {\n keys(obj).forEach((_key: string) => {\n const isLeaf = TreeUtils.isLeaf(obj[_key]);\n // const isLeaf = !isArray(obj[_key]) && !isObjectLike(obj[_key]);\n fn({\n value: obj[_key],\n key: _key,\n parent: obj,\n index: null,\n location: [...location, ...[_key]],\n isLeaf: isLeaf\n });\n if (!isLeaf) {\n walk(obj[_key], obj, _key, [...location, ...[_key]]);\n }\n });\n } else {\n fn({\n value: obj,\n key: key,\n parent: parent,\n index: null,\n location: [...location],\n isLeaf: true\n });\n }\n }\n\n walk(root);\n }\n\n\n static async walkAsync(root: any, fn: (x: WalkValues) => void) {\n async function walk(obj: any, parent: any = null, key: string | number = null, location: any[] = []) {\n if (obj === null || obj === undefined) {\n return;\n }\n if (isArray(obj)) {\n for (let j = 0; j < obj.length; j++) {\n const el = obj[j];\n const isLeaf = !isArray(el) && !isObjectLike(el);\n await fn({\n value: el,\n key: key,\n index: j,\n location: [...location, ...[j]],\n parent: obj,\n isLeaf: isLeaf\n });\n if (!isLeaf) {\n await walk(el, j, el, key ? [...location, ...[key], ...[j]] : [...location, ...[j]]);\n }\n }\n } else if (isObjectLike(obj)) {\n for (const _key of keys(obj)) {\n const isLeaf = !isArray(obj[_key]) && !isObjectLike(obj[_key]);\n await fn({\n value: obj[_key],\n key: _key,\n parent: obj,\n index: null,\n location: [...location, ...[_key]],\n isLeaf: isLeaf\n });\n if (!isLeaf) {\n await walk(obj[_key], obj, _key, [...location, ...[_key]]);\n }\n }\n } else {\n await fn({\n value: obj,\n key: key,\n parent: parent,\n index: null,\n location: [...location],\n isLeaf: true\n });\n }\n }\n\n await walk(root);\n }\n\n\n}\n"],"sourceRoot":".."}