@allgemein/base 1.6.12 → 1.6.13

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.12",
3
+ "version": "1.6.13",
4
4
  "description": "Library for commons moduls.",
5
5
  "main": "./index.js",
6
6
  "private": false,
@@ -5,7 +5,7 @@ const lodash_1 = require("lodash");
5
5
  const types_1 = require("util/types");
6
6
  class TreeUtils {
7
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))));
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) || (0, lodash_1.isFunction)(el))));
9
9
  }
10
10
  static walk(root, fn) {
11
11
  function walk(obj, parent = null, key = null, location = []) {
@@ -66,7 +66,7 @@ class TreeUtils {
66
66
  if ((0, lodash_1.isArray)(obj)) {
67
67
  for (let j = 0; j < obj.length; j++) {
68
68
  const el = obj[j];
69
- const isLeaf = !(0, lodash_1.isArray)(el) && !(0, lodash_1.isObjectLike)(el);
69
+ const isLeaf = TreeUtils.isLeaf(el);
70
70
  await fn({
71
71
  value: el,
72
72
  key: key,
@@ -82,7 +82,7 @@ class TreeUtils {
82
82
  }
83
83
  else if ((0, lodash_1.isObjectLike)(obj)) {
84
84
  for (const _key of (0, lodash_1.keys)(obj)) {
85
- const isLeaf = !(0, lodash_1.isArray)(obj[_key]) && !(0, lodash_1.isObjectLike)(obj[_key]);
85
+ const isLeaf = TreeUtils.isLeaf(obj[_key]);
86
86
  await fn({
87
87
  value: obj[_key],
88
88
  key: _key,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/utils/TreeUtils.ts"],"names":[],"mappings":";;;AAAA,mCAAiG;AACjG,sCAA0D;AAW1D,MAAa,SAAS;IAEpB,MAAM,CAAC,MAAM,CAAC,EAAO;QACnB,OAAO,CAAC,CAAC,IAAA,gBAAO,EAAC,EAAE,CAAC,IAAI,CAAC,IAAA,iBAAQ,EAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAA,sBAAc,EAAC,EAAE,CAAC,IAAI,IAAA,sBAAc,EAAC,EAAE,CAAC,IAAI,IAAA,eAAM,EAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACvG,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,IAAS,EAAE,EAA2B;QAChD,SAAS,IAAI,CAAC,GAAQ,EAAE,SAAc,IAAI,EAAE,MAAuB,IAAI,EAAE,WAAkB,EAAE;YAC3F,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE;gBACrC,OAAO;aACR;YACD,IAAI,IAAA,gBAAO,EAAC,GAAG,CAAC,EAAE;gBAChB,GAAG,CAAC,OAAO,CAAC,CAAC,EAAO,EAAE,CAAS,EAAE,EAAE;oBACjC,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBACpC,EAAE,CAAC;wBACD,KAAK,EAAE,EAAE;wBACT,GAAG,EAAE,GAAG;wBACR,KAAK,EAAE,CAAC;wBACR,QAAQ,EAAE,CAAC,GAAG,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;wBAC/B,MAAM,EAAE,GAAG;wBACX,MAAM,EAAE,MAAM;qBACf,CAAC,CAAC;oBACH,IAAI,CAAC,MAAM,EAAE;wBACX,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;qBAChF;gBACH,CAAC,CAAC,CAAC;aACJ;iBAAM,IAAI,IAAA,qBAAY,EAAC,GAAG,CAAC,EAAE;gBAC5B,IAAA,aAAI,EAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAY,EAAE,EAAE;oBACjC,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC3C,kEAAkE;oBAClE,EAAE,CAAC;wBACD,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC;wBAChB,GAAG,EAAE,IAAI;wBACT,MAAM,EAAE,GAAG;wBACX,KAAK,EAAE,IAAI;wBACX,QAAQ,EAAE,CAAC,GAAG,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;wBAClC,MAAM,EAAE,MAAM;qBACf,CAAC,CAAC;oBACH,IAAI,CAAC,MAAM,EAAE;wBACX,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,GAAG,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;qBACtD;gBACH,CAAC,CAAC,CAAC;aACJ;iBAAM;gBACL,EAAE,CAAC;oBACD,KAAK,EAAE,GAAG;oBACV,GAAG,EAAE,GAAG;oBACR,MAAM,EAAE,MAAM;oBACd,KAAK,EAAE,IAAI;oBACX,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC;oBACvB,MAAM,EAAE,IAAI;iBACb,CAAC,CAAC;aACJ;QACH,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,CAAC;IACb,CAAC;IAGD,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,IAAS,EAAE,EAA2B;QAC3D,KAAK,UAAU,IAAI,CAAC,GAAQ,EAAE,SAAc,IAAI,EAAE,MAAuB,IAAI,EAAE,WAAkB,EAAE;YACjG,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE;gBACrC,OAAO;aACR;YACD,IAAI,IAAA,gBAAO,EAAC,GAAG,CAAC,EAAE;gBAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACnC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;oBAClB,MAAM,MAAM,GAAG,CAAC,IAAA,gBAAO,EAAC,EAAE,CAAC,IAAI,CAAC,IAAA,qBAAY,EAAC,EAAE,CAAC,CAAC;oBACjD,MAAM,EAAE,CAAC;wBACP,KAAK,EAAE,EAAE;wBACT,GAAG,EAAE,GAAG;wBACR,KAAK,EAAE,CAAC;wBACR,QAAQ,EAAE,CAAC,GAAG,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;wBAC/B,MAAM,EAAE,GAAG;wBACX,MAAM,EAAE,MAAM;qBACf,CAAC,CAAC;oBACH,IAAI,CAAC,MAAM,EAAE;wBACX,MAAM,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;qBACtF;iBACF;aACF;iBAAM,IAAI,IAAA,qBAAY,EAAC,GAAG,CAAC,EAAE;gBAC5B,KAAK,MAAM,IAAI,IAAI,IAAA,aAAI,EAAC,GAAG,CAAC,EAAE;oBAC5B,MAAM,MAAM,GAAG,CAAC,IAAA,gBAAO,EAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAA,qBAAY,EAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC/D,MAAM,EAAE,CAAC;wBACP,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC;wBAChB,GAAG,EAAE,IAAI;wBACT,MAAM,EAAE,GAAG;wBACX,KAAK,EAAE,IAAI;wBACX,QAAQ,EAAE,CAAC,GAAG,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;wBAClC,MAAM,EAAE,MAAM;qBACf,CAAC,CAAC;oBACH,IAAI,CAAC,MAAM,EAAE;wBACX,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,GAAG,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;qBAC5D;iBACF;aACF;iBAAM;gBACL,MAAM,EAAE,CAAC;oBACP,KAAK,EAAE,GAAG;oBACV,GAAG,EAAE,GAAG;oBACR,MAAM,EAAE,MAAM;oBACd,KAAK,EAAE,IAAI;oBACX,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC;oBACvB,MAAM,EAAE,IAAI;iBACb,CAAC,CAAC;aACJ;QACH,CAAC;QAED,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;CAGF;AA9GD,8BA8GC","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":".."}
1
+ {"version":3,"sources":["../../../src/utils/TreeUtils.ts"],"names":[],"mappings":"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","file":"TreeUtils.js","sourcesContent":["import {isArray, isDate, isFunction, 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) || isFunction(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 = TreeUtils.isLeaf(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 = TreeUtils.isLeaf(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":".."}