@allgemein/base 1.5.6 → 1.6.3

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.
Files changed (45) hide show
  1. package/Constants.d.ts +1 -0
  2. package/Constants.js +2 -1
  3. package/Constants.js.map +1 -1
  4. package/MetadataStorage.js +4 -4
  5. package/MetadataStorage.js.map +1 -1
  6. package/browser.d.ts +1 -1
  7. package/browser.js +4 -1
  8. package/browser.js.map +1 -1
  9. package/index.d.ts +1 -1
  10. package/index.js +4 -1
  11. package/index.js.map +1 -1
  12. package/locking/LockFactory.d.ts +15 -0
  13. package/locking/LockFactory.js +60 -0
  14. package/locking/LockFactory.js.map +1 -0
  15. package/locking/Semaphore.d.ts +45 -0
  16. package/locking/Semaphore.js +108 -0
  17. package/locking/Semaphore.js.map +1 -0
  18. package/logging/AbstractLogger.js +3 -3
  19. package/logging/AbstractLogger.js.map +1 -1
  20. package/logging/Logger.js +1 -1
  21. package/logging/Logger.js.map +1 -1
  22. package/package.json +19 -12
  23. package/shared.d.ts +4 -1
  24. package/shared.js +7 -1
  25. package/shared.js.map +1 -1
  26. package/utils/ArrayUtils.d.ts +4 -0
  27. package/utils/ArrayUtils.js +91 -0
  28. package/utils/ArrayUtils.js.map +1 -0
  29. package/utils/ClassLoader.js +6 -6
  30. package/utils/ClassLoader.js.map +1 -1
  31. package/utils/ClassUtils.js +6 -6
  32. package/utils/ClassUtils.js.map +1 -1
  33. package/utils/FileUtils.d.ts +2 -2
  34. package/utils/FileUtils.js.map +1 -1
  35. package/utils/JsonUtils.js +2 -2
  36. package/utils/JsonUtils.js.map +1 -1
  37. package/utils/PlatformUtils.js +1 -1
  38. package/utils/PlatformUtils.js.map +1 -1
  39. package/utils/PlatformUtilsBrowser.js +1 -1
  40. package/utils/PlatformUtilsBrowser.js.map +1 -1
  41. package/utils/Serializer.d.ts +9 -0
  42. package/utils/Serializer.js +84 -0
  43. package/utils/Serializer.js.map +1 -0
  44. package/utils/TreeUtils.js +10 -10
  45. package/utils/TreeUtils.js.map +1 -1
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ArrayUtils = void 0;
4
+ const TreeUtils_1 = require("./TreeUtils");
5
+ const lodash_1 = require("lodash");
6
+ class ArrayUtils {
7
+ static merge(source, dest) {
8
+ const changes = [];
9
+ TreeUtils_1.TreeUtils.walk(dest, (x) => {
10
+ // new sub-property
11
+ const location = x.location.join('.');
12
+ if (x.isLeaf) {
13
+ // is leaf - check content
14
+ if ((0, lodash_1.isNull)(x.index) && x.key) {
15
+ // object path
16
+ const value = (0, lodash_1.get)(source, location, undefined);
17
+ if ((0, lodash_1.isUndefined)(value)) {
18
+ // not exists, append to source
19
+ (0, lodash_1.set)(source, location, x.value);
20
+ changes.push({ type: 'missing', key: location });
21
+ }
22
+ else {
23
+ if (value !== x.value) {
24
+ (0, lodash_1.set)(source, location, x.value);
25
+ changes.push({ type: 'value', key: location, src: value, dst: x.value });
26
+ }
27
+ }
28
+ }
29
+ else if ((0, lodash_1.isNumber)(x.index)) {
30
+ // array element
31
+ this.mergeHandleArray(source, x, changes);
32
+ }
33
+ else {
34
+ throw new Error('no object or array node on leaf');
35
+ }
36
+ }
37
+ else {
38
+ // is branch - check structure
39
+ if ((0, lodash_1.isNull)(x.index) && x.key) {
40
+ // object path
41
+ const value = (0, lodash_1.get)(source, location, undefined);
42
+ if ((0, lodash_1.isUndefined)(value)) {
43
+ // not exists, append to source
44
+ (0, lodash_1.set)(source, location, x.value);
45
+ changes.push({ type: 'missing', key: location });
46
+ }
47
+ }
48
+ else if ((0, lodash_1.isNumber)(x.index)) {
49
+ this.mergeHandleArray(source, x, changes);
50
+ }
51
+ else {
52
+ throw new Error('no object or array node on branch');
53
+ }
54
+ }
55
+ });
56
+ return changes;
57
+ }
58
+ static mergeHandleArray(source, x, changes) {
59
+ // array element
60
+ const parent = (0, lodash_1.clone)(x.location);
61
+ parent.pop();
62
+ const parentLocation = parent.join('.');
63
+ const sourceArray = parent.length === 0 ? source : (0, lodash_1.get)(source, parentLocation, undefined);
64
+ if ((0, lodash_1.isArray)(sourceArray)) {
65
+ // source array exists check if value present
66
+ const exists = sourceArray.find((y) => (0, lodash_1.isEqual)(x, x.value));
67
+ if (!exists) {
68
+ // add missing value
69
+ const position = sourceArray.length;
70
+ sourceArray.push(x.value);
71
+ changes.push({ type: 'push', key: parentLocation, position: position, value: x.value });
72
+ }
73
+ }
74
+ else if ((0, lodash_1.isUndefined)(sourceArray)) {
75
+ // source parent for appending structure is not the same
76
+ (0, lodash_1.set)(source, parentLocation, [x.value]);
77
+ changes.push({ type: 'create-push', key: parentLocation, position: 0, value: x.value });
78
+ }
79
+ else if ((0, lodash_1.isObjectLike)(sourceArray)) {
80
+ // source parent is an object like entry
81
+ // todo replace this with the array
82
+ throw new Error('structural inconsistencies: needed array to add value found object-like entry [' + parentLocation + ']');
83
+ }
84
+ else {
85
+ throw new Error('structural inconsistencies: needed array to add value found unknown [' + parentLocation + ']');
86
+ }
87
+ }
88
+ }
89
+ exports.ArrayUtils = ArrayUtils;
90
+
91
+ //# sourceMappingURL=ArrayUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/utils/ArrayUtils.ts"],"names":[],"mappings":"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","file":"ArrayUtils.js","sourcesContent":["import {TreeUtils, WalkValues} from './TreeUtils';\nimport {clone, get, isArray, isEqual, isNull, isNumber, isObjectLike, isUndefined, set} from 'lodash';\n\nexport class ArrayUtils {\n\n static merge(source: any, dest: any) {\n const changes: any[] = [];\n TreeUtils.walk(dest, (x: WalkValues) => {\n // new sub-property\n const location = x.location.join('.');\n\n if (x.isLeaf) {\n // is leaf - check content\n if (isNull(x.index) && x.key) {\n // object path\n const value = get(source, location, undefined);\n if (isUndefined(value)) {\n // not exists, append to source\n set(source, location, x.value);\n changes.push({type: 'missing', key: location});\n } else {\n if (value !== x.value) {\n set(source, location, x.value);\n changes.push({type: 'value', key: location, src: value, dst: x.value});\n }\n }\n } else if (isNumber(x.index)) {\n // array element\n this.mergeHandleArray(source, x, changes);\n } else {\n throw new Error('no object or array node on leaf');\n }\n } else {\n // is branch - check structure\n if (isNull(x.index) && x.key) {\n // object path\n const value = get(source, location, undefined);\n if (isUndefined(value)) {\n // not exists, append to source\n set(source, location, x.value);\n changes.push({type: 'missing', key: location});\n }\n } else if (isNumber(x.index)) {\n this.mergeHandleArray(source, x, changes);\n } else {\n throw new Error('no object or array node on branch');\n }\n }\n });\n return changes;\n }\n\n\n private static mergeHandleArray(source: any, x: WalkValues, changes: any[]) {\n // array element\n const parent = clone(x.location);\n parent.pop();\n const parentLocation = parent.join('.');\n const sourceArray = parent.length === 0 ? source : get(source, parentLocation, undefined);\n if (isArray(sourceArray)) {\n // source array exists check if value present\n const exists = sourceArray.find((y: any) => isEqual(x, x.value));\n if (!exists) {\n // add missing value\n const position = sourceArray.length;\n sourceArray.push(x.value);\n changes.push({type: 'push', key: parentLocation, position: position, value: x.value});\n }\n } else if (isUndefined(sourceArray)) {\n // source parent for appending structure is not the same\n set(source, parentLocation, [x.value]);\n changes.push({type: 'create-push', key: parentLocation, position: 0, value: x.value});\n } else if (isObjectLike(sourceArray)) {\n // source parent is an object like entry\n // todo replace this with the array\n throw new Error('structural inconsistencies: needed array to add value found object-like entry [' + parentLocation + ']');\n } else {\n throw new Error('structural inconsistencies: needed array to add value found unknown [' + parentLocation + ']');\n }\n\n }\n}\n"],"sourceRoot":".."}
@@ -18,7 +18,7 @@ class ClassLoader {
18
18
  static importClassesFromAny(o) {
19
19
  let klasses = [];
20
20
  o.forEach(x => {
21
- if (lodash_1.isString(x)) {
21
+ if ((0, lodash_1.isString)(x)) {
22
22
  const _x = PlatformUtils_1.PlatformUtils.pathNormilize(PlatformUtils_1.PlatformUtils.pathResolve(x));
23
23
  const exported = ClassLoader.importClassesFromDirectories([_x]);
24
24
  klasses = klasses.concat.apply(klasses, exported);
@@ -34,7 +34,7 @@ class ClassLoader {
34
34
  }
35
35
  static importClassesFromAnyAsync(o) {
36
36
  return Promise.all(o.map(async (x) => {
37
- if (lodash_1.isString(x)) {
37
+ if ((0, lodash_1.isString)(x)) {
38
38
  const _x = PlatformUtils_1.PlatformUtils.pathNormilize(PlatformUtils_1.PlatformUtils.pathResolve(x));
39
39
  return ClassLoader.importClassesFromDirectoriesAsync([_x]);
40
40
  }
@@ -45,7 +45,7 @@ class ClassLoader {
45
45
  throw new Error('TODO: unknown ' + x);
46
46
  }
47
47
  })).then(x => {
48
- return lodash_1.concat([], ...x);
48
+ return (0, lodash_1.concat)([], ...x);
49
49
  });
50
50
  }
51
51
  static importClassesFromDirectories(directories, formats = ['.js', '.ts']) {
@@ -97,7 +97,7 @@ class ClassLoader {
97
97
  return null;
98
98
  }
99
99
  }));
100
- return this.filterClasses(dirs.filter(x => !lodash_1.isNull(x)), []); // this.loadFileClasses(dirs, []);
100
+ return this.filterClasses(dirs.filter(x => !(0, lodash_1.isNull)(x)), []); // this.loadFileClasses(dirs, []);
101
101
  }
102
102
  /**
103
103
  * Loads all json files from the given directory.
@@ -137,7 +137,7 @@ class ClassLoader {
137
137
  return ClassUtils_1.ClassUtils.getFunction(klass);
138
138
  }
139
139
  static filterClasses(exported, allLoaded) {
140
- if (lodash_1.isArray(exported)) {
140
+ if ((0, lodash_1.isArray)(exported)) {
141
141
  exported.forEach(e => this.filterClasses(e, allLoaded));
142
142
  }
143
143
  else {
@@ -151,7 +151,7 @@ class ClassLoader {
151
151
  allLoaded.push(exported.loaded);
152
152
  }
153
153
  else if (exported.loaded instanceof Object) {
154
- lodash_1.keys(exported.loaded).forEach(key => this.filterClasses({
154
+ (0, lodash_1.keys)(exported.loaded).forEach(key => this.filterClasses({
155
155
  loaded: exported.loaded[key],
156
156
  source: exported.source
157
157
  }, allLoaded));
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/utils/ClassLoader.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,mCAA+D;AAC/D,mDAA8C;AAE9C,2CAAsC;AACtC,6CAAwC;AAGxC,MAAM,UAAU,GAAG,YAAY,CAAC;AAEhC;;GAEG;AACH,MAAa,WAAW;IAEtB,MAAM,CAAC,oBAAoB,CAAC,CAAqB;QAC/C,IAAI,OAAO,GAAe,EAAE,CAAC;QAC7B,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACZ,IAAI,iBAAQ,CAAC,CAAC,CAAC,EAAE;gBACf,MAAM,EAAE,GAAG,6BAAa,CAAC,aAAa,CAAC,6BAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrE,MAAM,QAAQ,GAAG,WAAW,CAAC,4BAA4B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAChE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;aACnD;iBAAM,IAAI,CAAC,YAAY,QAAQ,EAAE;gBAChC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACjB;iBAAM;gBACL,MAAM,IAAI,KAAK,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC;aACvC;QACH,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,yBAAyB,CAAC,CAAqB;QACpD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,EAAC,CAAC,EAAC,EAAE;YACjC,IAAI,iBAAQ,CAAC,CAAC,CAAC,EAAE;gBACf,MAAM,EAAE,GAAG,6BAAa,CAAC,aAAa,CAAC,6BAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrE,OAAO,WAAW,CAAC,iCAAiC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aAC5D;iBAAM,IAAI,CAAC,YAAY,QAAQ,EAAE;gBAChC,OAAO,CAAC,CAAC,CAAC,CAAC;aACZ;iBAAM;gBACL,MAAM,IAAI,KAAK,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC;aACvC;QACH,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YACX,OAAO,eAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;IACL,CAAC;IAGD,MAAM,CAAC,4BAA4B,CAAC,WAAqB,EAAE,OAAO,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC;QAEjF,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE;YACnD,MAAM,CAAC,GAAG,6BAAa,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;YAC3C,MAAM,CAAC,GAAG,6BAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC7C,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC,EAAE,EAAc,CAAC,CAAC;QAEnB,MAAM,IAAI,GAAsC,QAAQ;aACrD,MAAM,CAAC,IAAI,CAAC,EAAE;YACb,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAClE,OAAO,OAAO,CAAC,OAAO,CAAC,6BAAa,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,YAAY,KAAK,OAAO,CAAC;QAC7F,CAAC,CAAC;aACD,GAAG,CAAC,IAAI,CAAC,EAAE;YACV,MAAM,GAAG,GAAG;gBACV,MAAM,EAAE,IAAI;gBACZ,MAAM,EAAE,6BAAa,CAAC,IAAI,CAAC,6BAAa,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;aAC5D,CAAC;YACF,OAAO,GAAG,CAAC;QACb,CAAC,CAAC,CAAC;QAEL,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,kCAAkC;IACzE,CAAC;IAGD,MAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC,WAAqB,EAAE,OAAO,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC;QAC5F,IAAI,QAAQ,GAAa,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE;YAC7B,MAAM,CAAC,GAAG,6BAAa,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;YAC3C,QAAQ,CAAC,IAAI,CAAC,qBAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;SAClC;QACD,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YACnC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,MAAM,IAAI,GAAsC,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ;aACvE,MAAM,CAAC,IAAI,CAAC,EAAE;YACb,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAClE,OAAO,OAAO,CAAC,OAAO,CAAC,6BAAa,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,YAAY,KAAK,OAAO,CAAC;QAC7F,CAAC,CAAC;aACD,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,6BAAa,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;aAC5C,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,6BAAa,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;aAC7C,GAAG,CAAC,KAAK,EAAC,IAAI,EAAC,EAAE;YAChB,IAAI;gBACF,MAAM,GAAG,GAAG;oBACV,MAAM,EAAE,IAAI;oBACZ,MAAM,EAAE,MAAM,6BAAa,CAAC,SAAS,CAAC,IAAI,CAAC;iBAC5C,CAAC;gBACF,OAAO,GAAG,CAAC;aACZ;YAAC,OAAO,CAAC,EAAE;gBACV,OAAO,IAAI,CAAC;aACb;QACH,CAAC,CAAC,CAAC,CAAC;QACN,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,eAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,kCAAkC;IACjG,CAAC;IAGD;;OAEG;IACH,MAAM,CAAC,0BAA0B,CAAC,WAAqB,EAAE,MAAM,GAAG,OAAO;QAEvE,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE;YACnD,OAAO,OAAO,CAAC,MAAM,CAAC,6BAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,6BAAa,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC3F,CAAC,EAAE,EAAc,CAAC,CAAC;QAEnB,OAAO,QAAQ;aACZ,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,6BAAa,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC;aAC1D,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,6BAAa,CAAC,IAAI,CAAC,6BAAa,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACtE,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,+BAA+B,CAAC,WAAqB,EAAE,MAAM,GAAG,OAAO;QAClF,IAAI,QAAQ,GAAa,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE;YAC7B,MAAM,CAAC,GAAG,6BAAa,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;YAC3C,QAAQ,CAAC,IAAI,CAAC,qBAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;SAClC;QACD,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YACnC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,OAAO,QAAQ;aACZ,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,6BAAa,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC;aAC1D,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,6BAAa,CAAC,IAAI,CAAC,6BAAa,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACtE,CAAC;IAGD,MAAM,CAAC,SAAS,CAAC,GAAa;QAC5B,OAAO,uBAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IAGD,MAAM,CAAC,YAAY,CAAC,KAAwB;QAC1C,OAAO,uBAAU,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IAGD,MAAM,CAAC,WAAW,CAAC,KAAwB;QACzC,OAAO,uBAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAGO,MAAM,CAAC,aAAa,CAAC,QAA6E,EAAE,SAAqB;QAC/H,IAAI,gBAAO,CAAC,QAAQ,CAAC,EAAE;YACrB,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;SACzD;aAAM;YACL,IAAI,QAAQ,CAAC,MAAM,YAAY,QAAQ,EAAE;gBACvC,IAAI,OAAO,IAAI,OAAO,CAAC,gBAAgB,CAAC,EAAE;oBACxC,OAAO,CAAC,gBAAgB,CAAC,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;iBACzE;qBAAM;oBACL,QAAQ,CAAC,MAAM,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC;iBAC9C;gBACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;aACjC;iBAAM,IAAI,QAAQ,CAAC,MAAM,YAAY,MAAM,EAAE;gBAC5C,aAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC;oBACtD,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC;oBAC5B,MAAM,EAAE,QAAQ,CAAC,MAAM;iBACxB,EAAE,SAAS,CAAC,CAAC,CAAC;aAChB;iBAAM,IAAI,QAAQ,CAAC,MAAM,YAAY,KAAK,EAAE;gBAC3C,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC;oBACrD,MAAM,EAAE,CAAC;oBACT,MAAM,EAAE,QAAQ,CAAC,MAAM;iBACxB,EAAE,SAAS,CAAC,CAAC,CAAC;aAChB;SACF;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAGO,MAAM,CAAC,eAAe,CAAC,QAAa,EAAE,SAAqB;QACjE,IAAI,QAAQ,YAAY,QAAQ,EAAE;YAChC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC1B;aAAM,IAAI,QAAQ,YAAY,MAAM,EAAE;YACrC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;SAEtF;aAAM,IAAI,QAAQ,YAAY,KAAK,EAAE;YACpC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;SAClE;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AArLD,kCAqLC","file":"ClassLoader.js","sourcesContent":["/**\n *\n * @see https://github.com/typeorm/typeorm/blob/master/src/util/DirectoryExportedClassesLoader.ts\n *\n */\n\nimport {concat, isArray, isNull, isString, keys} from 'lodash';\nimport {PlatformUtils} from './PlatformUtils';\nimport {StringOrFunction} from '../Constants';\nimport {FileUtils} from './FileUtils';\nimport {ClassUtils} from './ClassUtils';\n\n\nconst __SOURCE__ = '__SOURCE__';\n\n/**\n * Loads all exported classes from the given directory.\n */\nexport class ClassLoader {\n\n static importClassesFromAny(o: StringOrFunction[]): Function[] {\n let klasses: Function[] = [];\n o.forEach(x => {\n if (isString(x)) {\n const _x = PlatformUtils.pathNormilize(PlatformUtils.pathResolve(x));\n const exported = ClassLoader.importClassesFromDirectories([_x]);\n klasses = klasses.concat.apply(klasses, exported);\n } else if (x instanceof Function) {\n klasses.push(x);\n } else {\n throw new Error('TODO: unknown ' + x);\n }\n });\n return klasses;\n }\n\n static importClassesFromAnyAsync(o: StringOrFunction[]): Promise<Function[]> {\n return Promise.all(o.map(async x => {\n if (isString(x)) {\n const _x = PlatformUtils.pathNormilize(PlatformUtils.pathResolve(x));\n return ClassLoader.importClassesFromDirectoriesAsync([_x]);\n } else if (x instanceof Function) {\n return [x];\n } else {\n throw new Error('TODO: unknown ' + x);\n }\n })).then(x => {\n return concat([], ...x);\n });\n }\n\n\n static importClassesFromDirectories(directories: string[], formats = ['.js', '.ts']): Function[] {\n\n const allFiles = directories.reduce((allDirs, dir) => {\n const x = PlatformUtils.pathNormilize(dir);\n const y = PlatformUtils.load('glob').sync(x);\n return allDirs.concat(y);\n }, [] as string[]);\n\n const dirs: { loaded: any, source: string }[] = allFiles\n .filter(file => {\n const dtsExtension = file.substring(file.length - 5, file.length);\n return formats.indexOf(PlatformUtils.pathExtname(file)) !== -1 && dtsExtension !== '.d.ts';\n })\n .map(file => {\n const cls = {\n source: file,\n loaded: PlatformUtils.load(PlatformUtils.pathResolve(file))\n };\n return cls;\n });\n\n return this.filterClasses(dirs, []); // this.loadFileClasses(dirs, []);\n }\n\n\n static async importClassesFromDirectoriesAsync(directories: string[], formats = ['.js', '.ts']): Promise<Function[]> {\n let allFiles: string[] = [];\n const promises = [];\n for (const dir of directories) {\n const x = PlatformUtils.pathNormilize(dir);\n promises.push(FileUtils.glob(x));\n }\n await Promise.all(promises).then(r => {\n allFiles = allFiles.concat(...r);\n });\n\n const dirs: { loaded: any, source: string }[] = await Promise.all(allFiles\n .filter(file => {\n const dtsExtension = file.substring(file.length - 5, file.length);\n return formats.indexOf(PlatformUtils.pathExtname(file)) !== -1 && dtsExtension !== '.d.ts';\n })\n .map(file => PlatformUtils.pathResolve(file))\n .filter(file => PlatformUtils.fileExist(file))\n .map(async file => {\n try {\n const cls = {\n source: file,\n loaded: await PlatformUtils.loadAsync(file)\n };\n return cls;\n } catch (e) {\n return null;\n }\n }));\n return this.filterClasses(dirs.filter(x => !isNull(x)), []); // this.loadFileClasses(dirs, []);\n }\n\n\n /**\n * Loads all json files from the given directory.\n */\n static importJsonsFromDirectories(directories: string[], format = '.json'): any[] {\n\n const allFiles = directories.reduce((allDirs, dir) => {\n return allDirs.concat(PlatformUtils.load('glob').sync(PlatformUtils.pathNormilize(dir)));\n }, [] as string[]);\n\n return allFiles\n .filter(file => PlatformUtils.pathExtname(file) === format)\n .map(file => PlatformUtils.load(PlatformUtils.pathResolve(file)));\n }\n\n /**\n * Loads all json files from the given directory.\n */\n static async importJsonsFromDirectoriesAsync(directories: string[], format = '.json'): Promise<any[]> {\n let allFiles: string[] = [];\n const promises = [];\n for (const dir of directories) {\n const x = PlatformUtils.pathNormilize(dir);\n promises.push(FileUtils.glob(x));\n }\n await Promise.all(promises).then(r => {\n allFiles = allFiles.concat(...r);\n });\n\n return allFiles\n .filter(file => PlatformUtils.pathExtname(file) === format)\n .map(file => PlatformUtils.load(PlatformUtils.pathResolve(file)));\n }\n\n\n static getSource(cls: Function): string {\n return ClassUtils.getSource(cls);\n }\n\n\n static getClassName(klass: string | Function) {\n return ClassUtils.getClassName(klass);\n }\n\n\n static getFunction(klass: string | Function) {\n return ClassUtils.getFunction(klass);\n }\n\n\n private static filterClasses(exported: { loaded: any, source: string } | { loaded: any, source: string }[], allLoaded: Function[]) {\n if (isArray(exported)) {\n exported.forEach(e => this.filterClasses(e, allLoaded));\n } else {\n if (exported.loaded instanceof Function) {\n if (Reflect && Reflect['getOwnMetadata']) {\n Reflect['defineMetadata'](__SOURCE__, exported.source, exported.loaded);\n } else {\n exported.loaded.__SOURCE__ = exported.source;\n }\n allLoaded.push(exported.loaded);\n } else if (exported.loaded instanceof Object) {\n keys(exported.loaded).forEach(key => this.filterClasses({\n loaded: exported.loaded[key],\n source: exported.source\n }, allLoaded));\n } else if (exported.loaded instanceof Array) {\n exported.loaded.forEach((i: any) => this.filterClasses({\n loaded: i,\n source: exported.source\n }, allLoaded));\n }\n }\n\n return allLoaded;\n }\n\n\n private static loadFileClasses(exported: any, allLoaded: Function[]) {\n if (exported instanceof Function) {\n allLoaded.push(exported);\n } else if (exported instanceof Object) {\n Object.keys(exported).forEach(key => this.loadFileClasses(exported[key], allLoaded));\n\n } else if (exported instanceof Array) {\n exported.forEach((i: any) => this.loadFileClasses(i, allLoaded));\n }\n\n return allLoaded;\n }\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../../../src/utils/ClassLoader.ts"],"names":[],"mappings":"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","file":"ClassLoader.js","sourcesContent":["/**\n *\n * @see https://github.com/typeorm/typeorm/blob/master/src/util/DirectoryExportedClassesLoader.ts\n *\n */\n\nimport {concat, isArray, isNull, isString, keys} from 'lodash';\nimport {PlatformUtils} from './PlatformUtils';\nimport {StringOrFunction} from '../Constants';\nimport {FileUtils} from './FileUtils';\nimport {ClassUtils} from './ClassUtils';\n\n\nconst __SOURCE__ = '__SOURCE__';\n\n/**\n * Loads all exported classes from the given directory.\n */\nexport class ClassLoader {\n\n static importClassesFromAny(o: StringOrFunction[]): Function[] {\n let klasses: Function[] = [];\n o.forEach(x => {\n if (isString(x)) {\n const _x = PlatformUtils.pathNormilize(PlatformUtils.pathResolve(x));\n const exported = ClassLoader.importClassesFromDirectories([_x]);\n klasses = klasses.concat.apply(klasses, exported);\n } else if (x instanceof Function) {\n klasses.push(x);\n } else {\n throw new Error('TODO: unknown ' + x);\n }\n });\n return klasses;\n }\n\n static importClassesFromAnyAsync(o: StringOrFunction[]): Promise<Function[]> {\n return Promise.all(o.map(async x => {\n if (isString(x)) {\n const _x = PlatformUtils.pathNormilize(PlatformUtils.pathResolve(x));\n return ClassLoader.importClassesFromDirectoriesAsync([_x]);\n } else if (x instanceof Function) {\n return [x];\n } else {\n throw new Error('TODO: unknown ' + x);\n }\n })).then(x => {\n return concat([], ...x);\n });\n }\n\n\n static importClassesFromDirectories(directories: string[], formats = ['.js', '.ts']): Function[] {\n\n const allFiles = directories.reduce((allDirs, dir) => {\n const x = PlatformUtils.pathNormilize(dir);\n const y = PlatformUtils.load('glob').sync(x);\n return allDirs.concat(y);\n }, [] as string[]);\n\n const dirs: { loaded: any, source: string }[] = allFiles\n .filter(file => {\n const dtsExtension = file.substring(file.length - 5, file.length);\n return formats.indexOf(PlatformUtils.pathExtname(file)) !== -1 && dtsExtension !== '.d.ts';\n })\n .map(file => {\n const cls = {\n source: file,\n loaded: PlatformUtils.load(PlatformUtils.pathResolve(file))\n };\n return cls;\n });\n\n return this.filterClasses(dirs, []); // this.loadFileClasses(dirs, []);\n }\n\n\n static async importClassesFromDirectoriesAsync(directories: string[], formats = ['.js', '.ts']): Promise<Function[]> {\n let allFiles: string[] = [];\n const promises = [];\n for (const dir of directories) {\n const x = PlatformUtils.pathNormilize(dir);\n promises.push(FileUtils.glob(x));\n }\n await Promise.all(promises).then(r => {\n allFiles = allFiles.concat(...r);\n });\n\n const dirs: { loaded: any, source: string }[] = await Promise.all(allFiles\n .filter(file => {\n const dtsExtension = file.substring(file.length - 5, file.length);\n return formats.indexOf(PlatformUtils.pathExtname(file)) !== -1 && dtsExtension !== '.d.ts';\n })\n .map(file => PlatformUtils.pathResolve(file))\n .filter(file => PlatformUtils.fileExist(file))\n .map(async file => {\n try {\n const cls = {\n source: file,\n loaded: await PlatformUtils.loadAsync(file)\n };\n return cls;\n } catch (e) {\n return null;\n }\n }));\n return this.filterClasses(dirs.filter(x => !isNull(x)), []); // this.loadFileClasses(dirs, []);\n }\n\n\n /**\n * Loads all json files from the given directory.\n */\n static importJsonsFromDirectories(directories: string[], format = '.json'): any[] {\n\n const allFiles = directories.reduce((allDirs, dir) => {\n return allDirs.concat(PlatformUtils.load('glob').sync(PlatformUtils.pathNormilize(dir)));\n }, [] as string[]);\n\n return allFiles\n .filter(file => PlatformUtils.pathExtname(file) === format)\n .map(file => PlatformUtils.load(PlatformUtils.pathResolve(file)));\n }\n\n /**\n * Loads all json files from the given directory.\n */\n static async importJsonsFromDirectoriesAsync(directories: string[], format = '.json'): Promise<any[]> {\n let allFiles: string[] = [];\n const promises = [];\n for (const dir of directories) {\n const x = PlatformUtils.pathNormilize(dir);\n promises.push(FileUtils.glob(x));\n }\n await Promise.all(promises).then(r => {\n allFiles = allFiles.concat(...r);\n });\n\n return allFiles\n .filter(file => PlatformUtils.pathExtname(file) === format)\n .map(file => PlatformUtils.load(PlatformUtils.pathResolve(file)));\n }\n\n\n static getSource(cls: Function): string {\n return ClassUtils.getSource(cls);\n }\n\n\n static getClassName(klass: string | Function) {\n return ClassUtils.getClassName(klass);\n }\n\n\n static getFunction(klass: string | Function) {\n return ClassUtils.getFunction(klass);\n }\n\n\n private static filterClasses(exported: { loaded: any, source: string } | { loaded: any, source: string }[], allLoaded: Function[]) {\n if (isArray(exported)) {\n exported.forEach(e => this.filterClasses(e, allLoaded));\n } else {\n if (exported.loaded instanceof Function) {\n if (Reflect && Reflect['getOwnMetadata']) {\n Reflect['defineMetadata'](__SOURCE__, exported.source, exported.loaded);\n } else {\n exported.loaded.__SOURCE__ = exported.source;\n }\n allLoaded.push(exported.loaded);\n } else if (exported.loaded instanceof Object) {\n keys(exported.loaded).forEach(key => this.filterClasses({\n loaded: exported.loaded[key],\n source: exported.source\n }, allLoaded));\n } else if (exported.loaded instanceof Array) {\n exported.loaded.forEach((i: any) => this.filterClasses({\n loaded: i,\n source: exported.source\n }, allLoaded));\n }\n }\n\n return allLoaded;\n }\n\n\n private static loadFileClasses(exported: any, allLoaded: Function[]) {\n if (exported instanceof Function) {\n allLoaded.push(exported);\n } else if (exported instanceof Object) {\n Object.keys(exported).forEach(key => this.loadFileClasses(exported[key], allLoaded));\n\n } else if (exported instanceof Array) {\n exported.forEach((i: any) => this.loadFileClasses(i, allLoaded));\n }\n\n return allLoaded;\n }\n}\n"],"sourceRoot":".."}
@@ -5,13 +5,13 @@ const lodash_1 = require("lodash");
5
5
  const Constants_1 = require("../Constants");
6
6
  class ClassUtils {
7
7
  static getClassName(klass) {
8
- if (lodash_1.isString(klass)) {
8
+ if ((0, lodash_1.isString)(klass)) {
9
9
  return klass;
10
10
  }
11
- else if (lodash_1.isFunction(klass)) {
11
+ else if ((0, lodash_1.isFunction)(klass)) {
12
12
  return klass.name;
13
13
  }
14
- else if (lodash_1.isObject(klass)) {
14
+ else if ((0, lodash_1.isObject)(klass)) {
15
15
  return klass.constructor.name;
16
16
  }
17
17
  else {
@@ -19,14 +19,14 @@ class ClassUtils {
19
19
  }
20
20
  }
21
21
  static getFunction(klass) {
22
- if (lodash_1.isString(klass)) {
22
+ if ((0, lodash_1.isString)(klass)) {
23
23
  // TODO create error class
24
24
  throw new Error('class not found! 02');
25
25
  }
26
- else if (lodash_1.isFunction(klass)) {
26
+ else if ((0, lodash_1.isFunction)(klass)) {
27
27
  return klass;
28
28
  }
29
- else if (lodash_1.isObject(klass)) {
29
+ else if ((0, lodash_1.isObject)(klass)) {
30
30
  return klass.constructor;
31
31
  }
32
32
  else {
@@ -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,iBAAQ,CAAC,KAAK,CAAC,EAAE;YACnB,OAAO,KAAK,CAAC;SACd;aAAM,IAAI,mBAAU,CAAC,KAAK,CAAC,EAAE;YAC5B,OAAO,KAAK,CAAC,IAAI,CAAC;SACnB;aAAM,IAAI,iBAAQ,CAAC,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,iBAAQ,CAAC,KAAK,CAAC,EAAE;YACnB,0BAA0B;YAC1B,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;SACxC;aAAM,IAAI,mBAAU,CAAC,KAAK,CAAC,EAAE;YAC5B,OAAO,KAAK,CAAC;SACd;aAAM,IAAI,iBAAQ,CAAC,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,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":".."}
@@ -8,7 +8,7 @@ export declare class FileUtils {
8
8
  static getJsonSync(filepath: string): any;
9
9
  static readFile(filename: string): Promise<Buffer>;
10
10
  static readFileSync(filename: string): Buffer;
11
- static writeFileSync(filename: string, content: Buffer | string, options?: fs.WriteFileOptions | string | null): void;
12
- static writeFile(filename: string, content: string | Buffer, options?: fs.WriteFileOptions | string | null): Promise<void>;
11
+ static writeFileSync(filename: string, content: Buffer | string, options?: fs.WriteFileOptions): void;
12
+ static writeFile(filename: string, content: string | Buffer, options?: fs.WriteFileOptions): Promise<void>;
13
13
  static deleteFile(dir: string, file: string): Promise<{}>;
14
14
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/utils/FileUtils.ts"],"names":[],"mappings":"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","file":"FileUtils.js","sourcesContent":["import {PlatformUtils} from './PlatformUtils';\nimport * as path from 'path';\nimport * as fs from 'fs';\n\n\nexport class FileUtils {\n\n static _GLOB: any = null;\n\n static _getGlob() {\n if (!this._GLOB) {\n this._GLOB = PlatformUtils.load('glob');\n }\n return this._GLOB;\n }\n\n\n static glob(lib_path: string): Promise<string[]> {\n return new Promise((resolve, reject) => {\n this._getGlob()(lib_path, ((err: Error, matches: string[]) => {\n if (err) {\n reject(err);\n } else {\n resolve(matches);\n }\n }));\n });\n }\n\n\n static async getJson(filepath: string): Promise<any> {\n try {\n const data = await this.readFile(filepath);\n return JSON.parse(data.toString('utf-8'));\n } catch (e) {\n }\n return null;\n }\n\n static getJsonSync(filepath: string): any {\n try {\n const data = this.readFileSync(filepath);\n return JSON.parse(data.toString('utf-8'));\n } catch (e) {\n }\n return null;\n }\n\n\n static readFile(filename: string): Promise<Buffer> {\n return new Promise((resolve, reject) => {\n fs.readFile(filename, (err, data) => {\n if (err) {\n reject(err);\n } else {\n resolve(data);\n }\n });\n });\n }\n\n static readFileSync(filename: string): Buffer {\n return fs.readFileSync(filename);\n }\n\n static writeFileSync(filename: string, content: Buffer | string,\n options?: fs.WriteFileOptions | string | null): void {\n return fs.writeFileSync(filename, content, options);\n }\n\n static writeFile(filename: string, content: string | Buffer,\n options?: fs.WriteFileOptions | string | null): Promise<void> {\n return new Promise((resolve, reject) => {\n fs.writeFile(filename, content, options, (err) => {\n if (err) {\n reject(err);\n } else {\n resolve();\n }\n });\n });\n }\n\n\n static deleteFile(dir: string, file: string): Promise<{}> {\n return new Promise(function (resolve, reject) {\n const filePath = path.join(dir, file);\n fs.lstat(filePath, function (err, stats) {\n if (err) {\n return reject(err);\n }\n if (stats.isDirectory()) {\n resolve(PlatformUtils.deleteDirectory(filePath));\n } else {\n fs.unlink(filePath, function (err) {\n if (err) {\n return reject(err);\n }\n resolve(null);\n });\n }\n });\n });\n }\n\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../../../src/utils/FileUtils.ts"],"names":[],"mappings":";;;AAAA,mDAA8C;AAC9C,6BAA6B;AAC7B,yBAAyB;AAGzB,MAAa,SAAS;IAIpB,MAAM,CAAC,QAAQ;QACb,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACf,IAAI,CAAC,KAAK,GAAG,6BAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACzC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAGD,MAAM,CAAC,IAAI,CAAC,QAAgB;QAC1B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAU,EAAE,OAAiB,EAAE,EAAE;gBAC3D,IAAI,GAAG,EAAE;oBACP,MAAM,CAAC,GAAG,CAAC,CAAC;iBACb;qBAAM;oBACL,OAAO,CAAC,OAAO,CAAC,CAAC;iBAClB;YACH,CAAC,CAAC,CAAC,CAAC;QACN,CAAC,CAAC,CAAC;IACL,CAAC;IAGD,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,QAAgB;QACnC,IAAI;YACF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC3C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;SAC3C;QAAC,OAAO,CAAC,EAAE;SACX;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,QAAgB;QACjC,IAAI;YACF,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YACzC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;SAC3C;QAAC,OAAO,CAAC,EAAE;SACX;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAGD,MAAM,CAAC,QAAQ,CAAC,QAAgB;QAC9B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;gBAClC,IAAI,GAAG,EAAE;oBACP,MAAM,CAAC,GAAG,CAAC,CAAC;iBACb;qBAAM;oBACL,OAAO,CAAC,IAAI,CAAC,CAAC;iBACf;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,QAAgB;QAClC,OAAO,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,QAAgB,EAAE,OAAwB,EAC1C,OAA6B;QAChD,OAAO,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,QAAgB,EAAE,OAAwB,EAC1C,OAA6B;QAC5C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBAC/C,IAAI,GAAG,EAAE;oBACP,MAAM,CAAC,GAAG,CAAC,CAAC;iBACb;qBAAM;oBACL,OAAO,EAAE,CAAC;iBACX;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAGD,MAAM,CAAC,UAAU,CAAC,GAAW,EAAE,IAAY;QACzC,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO,EAAE,MAAM;YAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACtC,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,GAAG,EAAE,KAAK;gBACrC,IAAI,GAAG,EAAE;oBACP,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;iBACpB;gBACD,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE;oBACvB,OAAO,CAAC,6BAAa,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;iBAClD;qBAAM;oBACL,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,GAAG;wBAC/B,IAAI,GAAG,EAAE;4BACP,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;yBACpB;wBACD,OAAO,CAAC,IAAI,CAAC,CAAC;oBAChB,CAAC,CAAC,CAAC;iBACJ;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;;AAlGH,8BAoGC;AAlGQ,eAAK,GAAQ,IAAI,CAAC","file":"FileUtils.js","sourcesContent":["import {PlatformUtils} from './PlatformUtils';\nimport * as path from 'path';\nimport * as fs from 'fs';\n\n\nexport class FileUtils {\n\n static _GLOB: any = null;\n\n static _getGlob() {\n if (!this._GLOB) {\n this._GLOB = PlatformUtils.load('glob');\n }\n return this._GLOB;\n }\n\n\n static glob(lib_path: string): Promise<string[]> {\n return new Promise((resolve, reject) => {\n this._getGlob()(lib_path, ((err: Error, matches: string[]) => {\n if (err) {\n reject(err);\n } else {\n resolve(matches);\n }\n }));\n });\n }\n\n\n static async getJson(filepath: string): Promise<any> {\n try {\n const data = await this.readFile(filepath);\n return JSON.parse(data.toString('utf-8'));\n } catch (e) {\n }\n return null;\n }\n\n static getJsonSync(filepath: string): any {\n try {\n const data = this.readFileSync(filepath);\n return JSON.parse(data.toString('utf-8'));\n } catch (e) {\n }\n return null;\n }\n\n\n static readFile(filename: string): Promise<Buffer> {\n return new Promise((resolve, reject) => {\n fs.readFile(filename, (err, data) => {\n if (err) {\n reject(err);\n } else {\n resolve(data);\n }\n });\n });\n }\n\n static readFileSync(filename: string): Buffer {\n return fs.readFileSync(filename);\n }\n\n static writeFileSync(filename: string, content: Buffer | string,\n options?: fs.WriteFileOptions): void {\n return fs.writeFileSync(filename, content, options);\n }\n\n static writeFile(filename: string, content: string | Buffer,\n options?: fs.WriteFileOptions): Promise<void> {\n return new Promise((resolve, reject) => {\n fs.writeFile(filename, content, options, (err) => {\n if (err) {\n reject(err);\n } else {\n resolve();\n }\n });\n });\n }\n\n\n static deleteFile(dir: string, file: string): Promise<{}> {\n return new Promise(function (resolve, reject) {\n const filePath = path.join(dir, file);\n fs.lstat(filePath, function (err, stats) {\n if (err) {\n return reject(err);\n }\n if (stats.isDirectory()) {\n resolve(PlatformUtils.deleteDirectory(filePath));\n } else {\n fs.unlink(filePath, function (err) {\n if (err) {\n return reject(err);\n }\n resolve(null);\n });\n }\n });\n });\n }\n\n}\n"],"sourceRoot":".."}
@@ -12,10 +12,10 @@ class JsonUtils {
12
12
  }
13
13
  static correctTypes(c) {
14
14
  TreeUtils_1.TreeUtils.walk(c, x => {
15
- if (x.value && lodash_1.isString(x.value) && x.value.length < 48 && x.value.length > 0) {
15
+ if (x.value && (0, lodash_1.isString)(x.value) && x.value.length < 48 && x.value.length > 0) {
16
16
  if (Constants_1.ISO8601.test(x.value)) {
17
17
  const date = new Date(x.value);
18
- if (lodash_1.isNumber(x.index)) {
18
+ if ((0, lodash_1.isNumber)(x.index)) {
19
19
  x.parent[x.index] = date;
20
20
  }
21
21
  else {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/utils/JsonUtils.ts"],"names":[],"mappings":";;;AAAA,mCAA0C;AAC1C,2CAAsC;AACtC,4CAAqC;AAErC,MAAa,SAAS;IAEpB,MAAM,CAAC,KAAK,CAAC,IAAY;QACvB,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACjC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,CAAM;QACxB,qBAAS,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;YAClB,IAAI,CAAC,CAAC,KAAK,IAAI,iBAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC7E,IAAI,mBAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;oBACzB,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;oBAC/B,IAAI,iBAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;wBACrB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;qBAC1B;yBAAM;wBACL,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;qBACxB;iBACF;aACF;QACH,CAAC,CACF,CAAC;QACF,OAAO,CAAC,CAAC;IACX,CAAC;IAGD,MAAM,CAAC,SAAS,CAAC,GAAQ;QACvB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;CACF;AA7BD,8BA6BC","file":"JsonUtils.js","sourcesContent":["import {isNumber, isString} from 'lodash';\nimport {TreeUtils} from './TreeUtils';\nimport {ISO8601} from '../Constants';\n\nexport class JsonUtils {\n\n static parse(json: string) {\n let _json = JSON.parse(json);\n _json = this.correctTypes(_json);\n return _json;\n }\n\n static correctTypes(c: any) {\n TreeUtils.walk(c, x => {\n if (x.value && isString(x.value) && x.value.length < 48 && x.value.length > 0) {\n if (ISO8601.test(x.value)) {\n const date = new Date(x.value);\n if (isNumber(x.index)) {\n x.parent[x.index] = date;\n } else {\n x.parent[x.key] = date;\n }\n }\n }\n }\n );\n return c;\n }\n\n\n static stringify(obj: any) {\n return JSON.stringify(obj);\n }\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../../../src/utils/JsonUtils.ts"],"names":[],"mappings":";;;AAAA,mCAA0C;AAC1C,2CAAsC;AACtC,4CAAqC;AAErC,MAAa,SAAS;IAEpB,MAAM,CAAC,KAAK,CAAC,IAAY;QACvB,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACjC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,CAAM;QACxB,qBAAS,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;YAClB,IAAI,CAAC,CAAC,KAAK,IAAI,IAAA,iBAAQ,EAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC7E,IAAI,mBAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;oBACzB,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;oBAC/B,IAAI,IAAA,iBAAQ,EAAC,CAAC,CAAC,KAAK,CAAC,EAAE;wBACrB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;qBAC1B;yBAAM;wBACL,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;qBACxB;iBACF;aACF;QACH,CAAC,CACF,CAAC;QACF,OAAO,CAAC,CAAC;IACX,CAAC;IAGD,MAAM,CAAC,SAAS,CAAC,GAAQ;QACvB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;CACF;AA7BD,8BA6BC","file":"JsonUtils.js","sourcesContent":["import {isNumber, isString} from 'lodash';\nimport {TreeUtils} from './TreeUtils';\nimport {ISO8601} from '../Constants';\n\nexport class JsonUtils {\n\n static parse(json: string) {\n let _json = JSON.parse(json);\n _json = this.correctTypes(_json);\n return _json;\n }\n\n static correctTypes(c: any) {\n TreeUtils.walk(c, x => {\n if (x.value && isString(x.value) && x.value.length < 48 && x.value.length > 0) {\n if (ISO8601.test(x.value)) {\n const date = new Date(x.value);\n if (isNumber(x.index)) {\n x.parent[x.index] = date;\n } else {\n x.parent[x.key] = date;\n }\n }\n }\n }\n );\n return c;\n }\n\n\n static stringify(obj: any) {\n return JSON.stringify(obj);\n }\n}\n"],"sourceRoot":".."}
@@ -23,7 +23,7 @@ class PlatformUtils {
23
23
  * set workdir
24
24
  */
25
25
  static setWorkDir(workdir) {
26
- if (lodash_1.isString(workdir)) {
26
+ if ((0, lodash_1.isString)(workdir)) {
27
27
  this.workdir = PlatformUtils.pathResolve(workdir);
28
28
  }
29
29
  else {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/utils/PlatformUtils.ts"],"names":[],"mappings":"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","file":"PlatformUtils.js","sourcesContent":["/**\n * see https://github.com/typeorm/typeorm/blob/master/src/platform/PlatformTools.ts\n */\n\n\nimport * as path from 'path';\nimport * as fs from 'fs';\nimport {isString} from 'lodash';\nimport {FileUtils} from './FileUtils';\n\n\nconst FILEPATH = path.sep === '/' ? /^(\\.|\\.\\/|\\/)([\\w\\/\\.\\-_ ]*)$/ : /^(?:[a-zA-Z]\\:|\\\\\\\\[\\w\\.]+\\\\[\\w.$]+)\\\\(?:[\\w]+\\\\)*\\w([\\w.])+$/;\n\n/**\n * Platform-specific tools.\n */\nexport class PlatformUtils {\n\n /**\n * Type of the currently running platform.\n */\n static type: 'browser' | 'node' = 'node';\n\n static workdir: string = null;\n\n /**\n * Gets global variable where global stuff can be stored.\n */\n static getGlobalVariable(): any {\n return global;\n }\n\n\n /**\n * set workdir\n */\n static setWorkDir(workdir: string) {\n if (isString(workdir)) {\n this.workdir = PlatformUtils.pathResolve(workdir);\n } else {\n this.workdir = null;\n }\n }\n\n\n static join(...args: string[]) {\n return path.join(...args);\n }\n\n /**\n * Loads (\"require\"-s) given file or package.\n * This operation only supports on node platform\n */\n static load(name: string): any {\n\n // if name is not absolute or relative, then try to load package from the node_modules of the directory we are currenly in\n // this is useful when we are using typeorm package globally installed and it accesses drivers\n // that are not installed globally\n\n try {\n if (this.fileExist(name)) {\n const ext = this.pathExtname(name);\n if (ext) {\n // name without ext\n name = name.replace(ext, '');\n }\n }\n return require(name);\n } catch (err) {\n if (!path.isAbsolute(name) && name.substr(0, 2) !== './' && name.substr(0, 3) !== '../') {\n return require(path.resolve(process.cwd() + '/node_modules/' + name));\n }\n\n throw err;\n }\n }\n\n /**\n * Loads (\"require\"-s) given file or package.\n * This operation only supports on node platform\n */\n static loadAsync(name: string): Promise<any> {\n\n // if name is not absolute or relative, then try to load package from the node_modules of the directory we are currenly in\n // this is useful when we are using typeorm package globally installed and it accesses drivers\n // that are not installed globally\n\n try {\n if (this.fileExist(name)) {\n const ext = this.pathExtname(name);\n if (ext) {\n // name without ext\n name = name.replace(ext, '');\n }\n }\n return import(name);\n } catch (err) {\n if (!path.isAbsolute(name) && name.substr(0, 2) !== './' && name.substr(0, 3) !== '../') {\n return import(path.resolve(process.cwd() + '/node_modules/' + name));\n }\n\n throw err;\n }\n }\n\n /**\n * Normalizes given path. Does \"path.normalize\".\n */\n static pathNormilize(pathStr: string): string {\n return path.normalize(pathStr);\n }\n\n /**\n * Gets file extension. Does \"path.extname\".\n */\n static pathExtname(pathStr: string, dotted: boolean = true): string {\n let str = '';\n if (/\\$\\{.*\\}/.test(pathStr)) {\n str = this.withoutInterpolation(pathStr, (str) => {\n return path.extname(str);\n });\n } else {\n str = path.extname(pathStr);\n }\n if (!dotted) {\n str = str.replace('.', '');\n }\n return str;\n }\n\n /**\n * Resolved given path. Does \"path.resolve\".\n */\n static pathResolve(pathStr: string): string {\n if (this.workdir) {\n return path.resolve(this.workdir, pathStr);\n }\n return path.resolve(pathStr);\n }\n\n /**\n * Resolved given path. Does \"path.resolve\".\n */\n static pathNormAndResolve(pathStr: string): string {\n return this.pathNormilize(this.pathResolve(pathStr));\n }\n\n static isFile(pathStr: string): boolean {\n return fs.statSync(pathStr).isFile();\n }\n\n static isDir(pathStr: string): boolean {\n return fs.statSync(pathStr).isDirectory();\n }\n\n /**\n * Synchronously checks if file exist. Does \"fs.existsSync\".\n */\n static fileExist(pathStr: string): boolean {\n return fs.existsSync(pathStr);\n }\n\n /**\n * Synchronously checks if file exist. Does \"fs.existsSync\".\n */\n static fileExistAsync(pathStr: string): Promise<boolean> {\n return new Promise((resolve, reject) => {\n fs.stat(pathStr, err => {\n if (err) {\n reject(err);\n } else {\n resolve(null);\n }\n });\n });\n }\n\n /**\n * Returns the basename of a file\n */\n static basename(pathStr: string): string {\n return path.basename(pathStr);\n }\n\n static withoutInterpolation(str: string, fn: (str: string) => string) {\n if (/\\$\\{.*\\}/.test(str)) {\n // has interpolations\n const regex = new RegExp(/\\$\\{.*\\}/g);\n const m = regex.exec(str);\n const cache = {};\n let inc = 0;\n for (const _m of m) {\n const r = '###' + (inc++) + '###';\n str = str.replace(_m, r);\n cache[r] = _m;\n }\n str = fn(str);\n for (const _m in cache) {\n if (cache.hasOwnProperty(_m)) {\n str = str.replace(_m, cache[_m]);\n }\n }\n }\n return str;\n }\n\n /**\n * Returns the filename only (without extension)\n */\n static filename(pathStr: string): string {\n const base = path.basename(pathStr);\n if (/\\$\\{.*\\}/.test(base)) {\n return this.withoutInterpolation(base, (str) => {\n return str.replace(new RegExp('\\\\' + path.extname(str) + '$'), '');\n });\n }\n return base.replace(new RegExp('\\\\' + path.extname(base) + '$'), '');\n }\n\n\n /**\n * Returns the dirname of the file\n */\n static dirname(pathStr: string): string {\n return path.dirname(pathStr);\n }\n\n\n static testForFilePath(path: string) {\n return FILEPATH.test(path);\n }\n\n /**\n * Normalizes given path. Does \"path.normalize\".\n */\n static pathNormalize(pathStr: string): string {\n return path.normalize(pathStr);\n }\n\n /**\n * Normalizes given path. Does \"path.normalize\".\n */\n static pathResolveAndNormalize(pathStr: string): string {\n return this.pathNormalize(this.pathResolve(pathStr));\n }\n\n\n /**\n * Test if path is absolute.\n */\n static isAbsolute(pathStr: string): boolean {\n return path.isAbsolute(pathStr);\n }\n\n static directory(file: string): string {\n return path.dirname(file);\n }\n\n\n /**\n * Gets environment variable.\n */\n static getEnvVariable(name: string): any {\n return process.env[name];\n }\n\n\n static getHostPath(): string {\n if (process.platform === 'win32') {\n return path.join(process.env.SYSTEMROOT, '/System32/drivers/etc/hosts');\n }\n return '/etc/hosts';\n }\n\n static getHostFileContent(): string {\n return fs.readFileSync(this.getHostPath(), {encoding: 'utf-8'});\n }\n\n static mkdir(targetDir: string, sep: string = path.sep): boolean {\n const initDir = path.isAbsolute(targetDir) ? sep : '';\n targetDir.split(sep).reduce((parentDir, childDir) => {\n const curDir = path.resolve(parentDir, childDir);\n if (!fs.existsSync(curDir)) {\n fs.mkdirSync(curDir);\n }\n return curDir;\n }, initDir);\n return true;\n }\n\n\n static readFile(filename: string): Promise<Buffer> {\n return FileUtils.readFile(filename);\n }\n\n static readFileSync(filename: string): Buffer {\n return FileUtils.readFileSync(filename);\n }\n\n static deleteFile(dir: string, file: string): Promise<{}> {\n return FileUtils.deleteFile(dir, file);\n }\n\n static deleteDirectory(dir: string): Promise<{}> {\n return new Promise(function (resolve, reject) {\n fs.access(dir, function (err) {\n if (err) {\n return reject(err);\n }\n fs.readdir(dir, function (err, files) {\n if (err) {\n return reject(err);\n }\n Promise.all(files.map(function (file) {\n return PlatformUtils.deleteFile(dir, file);\n })).then(function () {\n fs.rmdir(dir, function (err) {\n if (err) {\n return reject(err);\n }\n resolve(null);\n });\n }).catch(reject);\n });\n });\n });\n }\n\n\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../../../src/utils/PlatformUtils.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAGH,6BAA6B;AAC7B,yBAAyB;AACzB,mCAAgC;AAChC,2CAAsC;AAGtC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC,+DAA+D,CAAC;AAEtI;;GAEG;AACH,MAAa,aAAa;IASxB;;OAEG;IACH,MAAM,CAAC,iBAAiB;QACtB,OAAO,MAAM,CAAC;IAChB,CAAC;IAGD;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,OAAe;QAC/B,IAAI,IAAA,iBAAQ,EAAC,OAAO,CAAC,EAAE;YACrB,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;SACnD;aAAM;YACL,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;SACrB;IACH,CAAC;IAGD,MAAM,CAAC,IAAI,CAAC,GAAG,IAAc;QAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,IAAI,CAAC,IAAY;QAEtB,0HAA0H;QAC1H,8FAA8F;QAC9F,kCAAkC;QAElC,IAAI;YACF,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBACxB,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBACnC,IAAI,GAAG,EAAE;oBACP,mBAAmB;oBACnB,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;iBAC9B;aACF;YACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;SACtB;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,EAAE;gBACvF,OAAO,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,gBAAgB,GAAG,IAAI,CAAC,CAAC,CAAC;aACvE;YAED,MAAM,GAAG,CAAC;SACX;IACH,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,SAAS,CAAC,IAAY;QAE3B,0HAA0H;QAC1H,8FAA8F;QAC9F,kCAAkC;QAElC,IAAI;YACF,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBACxB,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBACnC,IAAI,GAAG,EAAE;oBACP,mBAAmB;oBACnB,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;iBAC9B;aACF;YACD,4CAAc,IAAI,GAAE;SACrB;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,EAAE;gBACvF,4CAAc,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,gBAAgB,GAAG,IAAI,CAAC,GAAE;aACtE;YAED,MAAM,GAAG,CAAC;SACX;IACH,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,OAAe;QAClC,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,OAAe,EAAE,SAAkB,IAAI;QACxD,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YAC5B,GAAG,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBAC/C,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC3B,CAAC,CAAC,CAAC;SACJ;aAAM;YACL,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;SAC7B;QACD,IAAI,CAAC,MAAM,EAAE;YACX,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;SAC5B;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,OAAe;QAChC,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;SAC5C;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,kBAAkB,CAAC,OAAe;QACvC,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,OAAe;QAC3B,OAAO,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,OAAe;QAC1B,OAAO,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,OAAe;QAC9B,OAAO,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,OAAe;QACnC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE;gBACrB,IAAI,GAAG,EAAE;oBACP,MAAM,CAAC,GAAG,CAAC,CAAC;iBACb;qBAAM;oBACL,OAAO,CAAC,IAAI,CAAC,CAAC;iBACf;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,OAAe;QAC7B,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,CAAC,oBAAoB,CAAC,GAAW,EAAE,EAA2B;QAClE,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YACxB,qBAAqB;YACrB,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC;YACtC,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1B,MAAM,KAAK,GAAG,EAAE,CAAC;YACjB,IAAI,GAAG,GAAG,CAAC,CAAC;YACZ,KAAK,MAAM,EAAE,IAAI,CAAC,EAAE;gBAClB,MAAM,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC;gBAClC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;gBACzB,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;aACf;YACD,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;YACd,KAAK,MAAM,EAAE,IAAI,KAAK,EAAE;gBACtB,IAAI,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE;oBAC5B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;iBAClC;aACF;SACF;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,OAAe;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACpC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACzB,OAAO,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE;gBAC7C,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;YACrE,CAAC,CAAC,CAAC;SACJ;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;IACvE,CAAC;IAGD;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,OAAe;QAC5B,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAGD,MAAM,CAAC,eAAe,CAAC,IAAY;QACjC,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,OAAe;QAClC,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,uBAAuB,CAAC,OAAe;QAC5C,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;IACvD,CAAC;IAGD;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,OAAe;QAC/B,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,IAAY;QAC3B,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAGD;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,IAAY;QAChC,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAGD,MAAM,CAAC,WAAW;QAChB,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE;YAChC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,6BAA6B,CAAC,CAAC;SACzE;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,MAAM,CAAC,kBAAkB;QACvB,OAAO,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,EAAC,QAAQ,EAAE,OAAO,EAAC,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,SAAiB,EAAE,MAAc,IAAI,CAAC,GAAG;QACpD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACtD,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE;YAClD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YACjD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;gBAC1B,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;aACtB;YACD,OAAO,MAAM,CAAC;QAChB,CAAC,EAAE,OAAO,CAAC,CAAC;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;IAGD,MAAM,CAAC,QAAQ,CAAC,QAAgB;QAC9B,OAAO,qBAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,QAAgB;QAClC,OAAO,qBAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,GAAW,EAAE,IAAY;QACzC,OAAO,qBAAS,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,GAAW;QAChC,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO,EAAE,MAAM;YAC1C,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,GAAG;gBAC1B,IAAI,GAAG,EAAE;oBACP,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;iBACpB;gBACD,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,GAAG,EAAE,KAAK;oBAClC,IAAI,GAAG,EAAE;wBACP,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;qBACpB;oBACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,IAAI;wBAClC,OAAO,aAAa,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;oBAC7C,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;wBACP,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,UAAU,GAAG;4BACzB,IAAI,GAAG,EAAE;gCACP,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;6BACpB;4BACD,OAAO,CAAC,IAAI,CAAC,CAAC;wBAChB,CAAC,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACnB,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;;AAtTH,sCAyTC;AAvTC;;GAEG;AACI,kBAAI,GAAuB,MAAM,CAAC;AAElC,qBAAO,GAAW,IAAI,CAAC","file":"PlatformUtils.js","sourcesContent":["/**\n * see https://github.com/typeorm/typeorm/blob/master/src/platform/PlatformTools.ts\n */\n\n\nimport * as path from 'path';\nimport * as fs from 'fs';\nimport {isString} from 'lodash';\nimport {FileUtils} from './FileUtils';\n\n\nconst FILEPATH = path.sep === '/' ? /^(\\.|\\.\\/|\\/)([\\w\\/\\.\\-_ ]*)$/ : /^(?:[a-zA-Z]\\:|\\\\\\\\[\\w\\.]+\\\\[\\w.$]+)\\\\(?:[\\w]+\\\\)*\\w([\\w.])+$/;\n\n/**\n * Platform-specific tools.\n */\nexport class PlatformUtils {\n\n /**\n * Type of the currently running platform.\n */\n static type: 'browser' | 'node' = 'node';\n\n static workdir: string = null;\n\n /**\n * Gets global variable where global stuff can be stored.\n */\n static getGlobalVariable(): any {\n return global;\n }\n\n\n /**\n * set workdir\n */\n static setWorkDir(workdir: string) {\n if (isString(workdir)) {\n this.workdir = PlatformUtils.pathResolve(workdir);\n } else {\n this.workdir = null;\n }\n }\n\n\n static join(...args: string[]) {\n return path.join(...args);\n }\n\n /**\n * Loads (\"require\"-s) given file or package.\n * This operation only supports on node platform\n */\n static load(name: string): any {\n\n // if name is not absolute or relative, then try to load package from the node_modules of the directory we are currenly in\n // this is useful when we are using typeorm package globally installed and it accesses drivers\n // that are not installed globally\n\n try {\n if (this.fileExist(name)) {\n const ext = this.pathExtname(name);\n if (ext) {\n // name without ext\n name = name.replace(ext, '');\n }\n }\n return require(name);\n } catch (err) {\n if (!path.isAbsolute(name) && name.substr(0, 2) !== './' && name.substr(0, 3) !== '../') {\n return require(path.resolve(process.cwd() + '/node_modules/' + name));\n }\n\n throw err;\n }\n }\n\n /**\n * Loads (\"require\"-s) given file or package.\n * This operation only supports on node platform\n */\n static loadAsync(name: string): Promise<any> {\n\n // if name is not absolute or relative, then try to load package from the node_modules of the directory we are currenly in\n // this is useful when we are using typeorm package globally installed and it accesses drivers\n // that are not installed globally\n\n try {\n if (this.fileExist(name)) {\n const ext = this.pathExtname(name);\n if (ext) {\n // name without ext\n name = name.replace(ext, '');\n }\n }\n return import(name);\n } catch (err) {\n if (!path.isAbsolute(name) && name.substr(0, 2) !== './' && name.substr(0, 3) !== '../') {\n return import(path.resolve(process.cwd() + '/node_modules/' + name));\n }\n\n throw err;\n }\n }\n\n /**\n * Normalizes given path. Does \"path.normalize\".\n */\n static pathNormilize(pathStr: string): string {\n return path.normalize(pathStr);\n }\n\n /**\n * Gets file extension. Does \"path.extname\".\n */\n static pathExtname(pathStr: string, dotted: boolean = true): string {\n let str = '';\n if (/\\$\\{.*\\}/.test(pathStr)) {\n str = this.withoutInterpolation(pathStr, (str) => {\n return path.extname(str);\n });\n } else {\n str = path.extname(pathStr);\n }\n if (!dotted) {\n str = str.replace('.', '');\n }\n return str;\n }\n\n /**\n * Resolved given path. Does \"path.resolve\".\n */\n static pathResolve(pathStr: string): string {\n if (this.workdir) {\n return path.resolve(this.workdir, pathStr);\n }\n return path.resolve(pathStr);\n }\n\n /**\n * Resolved given path. Does \"path.resolve\".\n */\n static pathNormAndResolve(pathStr: string): string {\n return this.pathNormilize(this.pathResolve(pathStr));\n }\n\n static isFile(pathStr: string): boolean {\n return fs.statSync(pathStr).isFile();\n }\n\n static isDir(pathStr: string): boolean {\n return fs.statSync(pathStr).isDirectory();\n }\n\n /**\n * Synchronously checks if file exist. Does \"fs.existsSync\".\n */\n static fileExist(pathStr: string): boolean {\n return fs.existsSync(pathStr);\n }\n\n /**\n * Synchronously checks if file exist. Does \"fs.existsSync\".\n */\n static fileExistAsync(pathStr: string): Promise<boolean> {\n return new Promise((resolve, reject) => {\n fs.stat(pathStr, err => {\n if (err) {\n reject(err);\n } else {\n resolve(null);\n }\n });\n });\n }\n\n /**\n * Returns the basename of a file\n */\n static basename(pathStr: string): string {\n return path.basename(pathStr);\n }\n\n static withoutInterpolation(str: string, fn: (str: string) => string) {\n if (/\\$\\{.*\\}/.test(str)) {\n // has interpolations\n const regex = new RegExp(/\\$\\{.*\\}/g);\n const m = regex.exec(str);\n const cache = {};\n let inc = 0;\n for (const _m of m) {\n const r = '###' + (inc++) + '###';\n str = str.replace(_m, r);\n cache[r] = _m;\n }\n str = fn(str);\n for (const _m in cache) {\n if (cache.hasOwnProperty(_m)) {\n str = str.replace(_m, cache[_m]);\n }\n }\n }\n return str;\n }\n\n /**\n * Returns the filename only (without extension)\n */\n static filename(pathStr: string): string {\n const base = path.basename(pathStr);\n if (/\\$\\{.*\\}/.test(base)) {\n return this.withoutInterpolation(base, (str) => {\n return str.replace(new RegExp('\\\\' + path.extname(str) + '$'), '');\n });\n }\n return base.replace(new RegExp('\\\\' + path.extname(base) + '$'), '');\n }\n\n\n /**\n * Returns the dirname of the file\n */\n static dirname(pathStr: string): string {\n return path.dirname(pathStr);\n }\n\n\n static testForFilePath(path: string) {\n return FILEPATH.test(path);\n }\n\n /**\n * Normalizes given path. Does \"path.normalize\".\n */\n static pathNormalize(pathStr: string): string {\n return path.normalize(pathStr);\n }\n\n /**\n * Normalizes given path. Does \"path.normalize\".\n */\n static pathResolveAndNormalize(pathStr: string): string {\n return this.pathNormalize(this.pathResolve(pathStr));\n }\n\n\n /**\n * Test if path is absolute.\n */\n static isAbsolute(pathStr: string): boolean {\n return path.isAbsolute(pathStr);\n }\n\n static directory(file: string): string {\n return path.dirname(file);\n }\n\n\n /**\n * Gets environment variable.\n */\n static getEnvVariable(name: string): any {\n return process.env[name];\n }\n\n\n static getHostPath(): string {\n if (process.platform === 'win32') {\n return path.join(process.env.SYSTEMROOT, '/System32/drivers/etc/hosts');\n }\n return '/etc/hosts';\n }\n\n static getHostFileContent(): string {\n return fs.readFileSync(this.getHostPath(), {encoding: 'utf-8'});\n }\n\n static mkdir(targetDir: string, sep: string = path.sep): boolean {\n const initDir = path.isAbsolute(targetDir) ? sep : '';\n targetDir.split(sep).reduce((parentDir, childDir) => {\n const curDir = path.resolve(parentDir, childDir);\n if (!fs.existsSync(curDir)) {\n fs.mkdirSync(curDir);\n }\n return curDir;\n }, initDir);\n return true;\n }\n\n\n static readFile(filename: string): Promise<Buffer> {\n return FileUtils.readFile(filename);\n }\n\n static readFileSync(filename: string): Buffer {\n return FileUtils.readFileSync(filename);\n }\n\n static deleteFile(dir: string, file: string): Promise<{}> {\n return FileUtils.deleteFile(dir, file);\n }\n\n static deleteDirectory(dir: string): Promise<{}> {\n return new Promise(function (resolve, reject) {\n fs.access(dir, function (err) {\n if (err) {\n return reject(err);\n }\n fs.readdir(dir, function (err, files) {\n if (err) {\n return reject(err);\n }\n Promise.all(files.map(function (file) {\n return PlatformUtils.deleteFile(dir, file);\n })).then(function () {\n fs.rmdir(dir, function (err) {\n if (err) {\n return reject(err);\n }\n resolve(null);\n });\n }).catch(reject);\n });\n });\n });\n }\n\n\n}\n"],"sourceRoot":".."}
@@ -21,7 +21,7 @@ class PlatformUtils {
21
21
  * set workdir
22
22
  */
23
23
  static setWorkDir(workdir) {
24
- if (lodash_1.isString(workdir)) {
24
+ if ((0, lodash_1.isString)(workdir)) {
25
25
  this.workdir = PlatformUtils.pathResolve(workdir);
26
26
  }
27
27
  else {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/utils/PlatformUtilsBrowser.ts"],"names":[],"mappings":"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","file":"PlatformUtilsBrowser.js","sourcesContent":["/**\n * see https://github.com/typeorm/typeorm/blob/master/src/platform/PlatformTools.ts\n */\n\nimport {isString} from 'lodash';\nimport {NotSupportedError} from '../exceptions/NotSupportedError';\n\n\n// const FILEPATH = path.sep === '/' ? /^(\\.|\\.\\/|\\/)([\\w\\/\\.\\-_ ]*)$/ : /^(?:[a-zA-Z]\\:|\\\\\\\\[\\w\\.]+\\\\[\\w.$]+)\\\\(?:[\\w]+\\\\)*\\w([\\w.])+$/;\n\n/**\n * Platform-specific tools.\n */\nexport class PlatformUtils {\n\n /**\n * Type of the currently running platform.\n */\n static type: 'browser' | 'node' = 'node';\n\n static workdir: string = null;\n\n /**\n * Gets global variable where global stuff can be stored.\n */\n static getGlobalVariable(): any {\n return global;\n }\n\n\n /**\n * set workdir\n */\n static setWorkDir(workdir: string) {\n if (isString(workdir)) {\n this.workdir = PlatformUtils.pathResolve(workdir);\n } else {\n this.workdir = null;\n }\n }\n\n\n static join(...args: string[]) {\n return args.join('/');\n }\n\n static load(name: string): any {\n throw new NotSupportedError('not supported');\n }\n\n static loadAsync(name: string): Promise<any> {\n throw new NotSupportedError('not supported');\n }\n\n\n /**\n * Normalizes given path. Does \"path.normalize\".\n */\n static pathNormilize(pathStr: string): string {\n throw new NotSupportedError('not supported');\n }\n\n /**\n * Gets file extension. Does \"path.extname\".\n */\n static pathExtname(pathStr: string, dotted: boolean = true): string {\n throw new NotSupportedError('not supported');\n }\n\n /**\n * Resolved given path. Does \"path.resolve\".\n */\n static pathResolve(pathStr: string): string {\n throw new NotSupportedError('not supported');\n }\n\n /**\n * Resolved given path. Does \"path.resolve\".\n */\n static pathNormAndResolve(pathStr: string): string {\n return this.pathNormilize(this.pathResolve(pathStr));\n }\n\n static isFile(pathStr: string): boolean {\n throw new NotSupportedError('not supported');\n }\n\n static isDir(pathStr: string): boolean {\n throw new NotSupportedError('not supported');\n }\n\n /**\n * Synchronously checks if file exist. Does \"fs.existsSync\".\n */\n static fileExist(pathStr: string): boolean {\n throw new NotSupportedError('not supported');\n }\n\n static fileExistAsync(pathStr: string): Promise<boolean> {\n throw new NotSupportedError('not supported');\n }\n\n /**\n * Returns the basename of a file\n */\n static basename(pathStr: string): string {\n throw new NotSupportedError('not supported');\n }\n\n static withoutInterpolation(str: string, fn: (str: string) => string) {\n if (/\\$\\{.*\\}/.test(str)) {\n // has interpolations\n const regex = new RegExp(/\\$\\{.*\\}/g);\n const m = regex.exec(str);\n const cache = {};\n let inc = 0;\n for (const _m of m) {\n const r = '###' + (inc++) + '###';\n str = str.replace(_m, r);\n cache[r] = _m;\n }\n str = fn(str);\n for (const _m in cache) {\n if (cache.hasOwnProperty(_m)) {\n str = str.replace(_m, cache[_m]);\n }\n }\n }\n return str;\n }\n\n /**\n * Returns the filename only (without extension)\n */\n static filename(pathStr: string): string {\n throw new NotSupportedError('not supported');\n }\n\n\n /**\n * Returns the dirname of the file\n */\n static dirname(pathStr: string): string {\n throw new NotSupportedError('not supported');\n }\n\n\n static testForFilePath(path: string) {\n throw new NotSupportedError('not supported');\n }\n\n /**\n * Normalizes given path. Does \"path.normalize\".\n */\n static pathNormalize(pathStr: string): string {\n throw new NotSupportedError('not supported');\n }\n\n /**\n * Normalizes given path. Does \"path.normalize\".\n */\n static pathResolveAndNormalize(pathStr: string): string {\n return this.pathNormalize(this.pathResolve(pathStr));\n }\n\n\n /**\n * Test if path is absolute.\n */\n static isAbsolute(pathStr: string): boolean {\n throw new NotSupportedError('not supported');\n }\n\n static directory(file: string): string {\n throw new NotSupportedError('not supported');\n }\n\n\n /**\n * Gets environment variable.\n */\n static getEnvVariable(name: string): any {\n return process.env[name];\n }\n\n\n static getHostPath(): string {\n throw new NotSupportedError('not supported');\n }\n\n static getHostFileContent(): string {\n throw new NotSupportedError('not supported');\n }\n\n static mkdir(targetDir: string, sep: string = null): boolean {\n throw new NotSupportedError('not supported');\n }\n\n\n static readFile(filename: string): Promise<Buffer> {\n throw new NotSupportedError('not supported');\n }\n\n static readFileSync(filename: string): Buffer {\n throw new NotSupportedError('not supported');\n }\n\n static deleteFile(dir: string, file: string): Promise<{}> {\n throw new NotSupportedError('not supported');\n }\n\n static deleteDirectory(dir: string): Promise<{}> {\n throw new NotSupportedError('not supported');\n }\n\n\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../../../src/utils/PlatformUtilsBrowser.ts"],"names":[],"mappings":"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","file":"PlatformUtilsBrowser.js","sourcesContent":["/**\n * see https://github.com/typeorm/typeorm/blob/master/src/platform/PlatformTools.ts\n */\n\nimport {isString} from 'lodash';\nimport {NotSupportedError} from '../exceptions/NotSupportedError';\n\n\n// const FILEPATH = path.sep === '/' ? /^(\\.|\\.\\/|\\/)([\\w\\/\\.\\-_ ]*)$/ : /^(?:[a-zA-Z]\\:|\\\\\\\\[\\w\\.]+\\\\[\\w.$]+)\\\\(?:[\\w]+\\\\)*\\w([\\w.])+$/;\n\n/**\n * Platform-specific tools.\n */\nexport class PlatformUtils {\n\n /**\n * Type of the currently running platform.\n */\n static type: 'browser' | 'node' = 'node';\n\n static workdir: string = null;\n\n /**\n * Gets global variable where global stuff can be stored.\n */\n static getGlobalVariable(): any {\n return global;\n }\n\n\n /**\n * set workdir\n */\n static setWorkDir(workdir: string) {\n if (isString(workdir)) {\n this.workdir = PlatformUtils.pathResolve(workdir);\n } else {\n this.workdir = null;\n }\n }\n\n\n static join(...args: string[]) {\n return args.join('/');\n }\n\n static load(name: string): any {\n throw new NotSupportedError('not supported');\n }\n\n static loadAsync(name: string): Promise<any> {\n throw new NotSupportedError('not supported');\n }\n\n\n /**\n * Normalizes given path. Does \"path.normalize\".\n */\n static pathNormilize(pathStr: string): string {\n throw new NotSupportedError('not supported');\n }\n\n /**\n * Gets file extension. Does \"path.extname\".\n */\n static pathExtname(pathStr: string, dotted: boolean = true): string {\n throw new NotSupportedError('not supported');\n }\n\n /**\n * Resolved given path. Does \"path.resolve\".\n */\n static pathResolve(pathStr: string): string {\n throw new NotSupportedError('not supported');\n }\n\n /**\n * Resolved given path. Does \"path.resolve\".\n */\n static pathNormAndResolve(pathStr: string): string {\n return this.pathNormilize(this.pathResolve(pathStr));\n }\n\n static isFile(pathStr: string): boolean {\n throw new NotSupportedError('not supported');\n }\n\n static isDir(pathStr: string): boolean {\n throw new NotSupportedError('not supported');\n }\n\n /**\n * Synchronously checks if file exist. Does \"fs.existsSync\".\n */\n static fileExist(pathStr: string): boolean {\n throw new NotSupportedError('not supported');\n }\n\n static fileExistAsync(pathStr: string): Promise<boolean> {\n throw new NotSupportedError('not supported');\n }\n\n /**\n * Returns the basename of a file\n */\n static basename(pathStr: string): string {\n throw new NotSupportedError('not supported');\n }\n\n static withoutInterpolation(str: string, fn: (str: string) => string) {\n if (/\\$\\{.*\\}/.test(str)) {\n // has interpolations\n const regex = new RegExp(/\\$\\{.*\\}/g);\n const m = regex.exec(str);\n const cache = {};\n let inc = 0;\n for (const _m of m) {\n const r = '###' + (inc++) + '###';\n str = str.replace(_m, r);\n cache[r] = _m;\n }\n str = fn(str);\n for (const _m in cache) {\n if (cache.hasOwnProperty(_m)) {\n str = str.replace(_m, cache[_m]);\n }\n }\n }\n return str;\n }\n\n /**\n * Returns the filename only (without extension)\n */\n static filename(pathStr: string): string {\n throw new NotSupportedError('not supported');\n }\n\n\n /**\n * Returns the dirname of the file\n */\n static dirname(pathStr: string): string {\n throw new NotSupportedError('not supported');\n }\n\n\n static testForFilePath(path: string) {\n throw new NotSupportedError('not supported');\n }\n\n /**\n * Normalizes given path. Does \"path.normalize\".\n */\n static pathNormalize(pathStr: string): string {\n throw new NotSupportedError('not supported');\n }\n\n /**\n * Normalizes given path. Does \"path.normalize\".\n */\n static pathResolveAndNormalize(pathStr: string): string {\n return this.pathNormalize(this.pathResolve(pathStr));\n }\n\n\n /**\n * Test if path is absolute.\n */\n static isAbsolute(pathStr: string): boolean {\n throw new NotSupportedError('not supported');\n }\n\n static directory(file: string): string {\n throw new NotSupportedError('not supported');\n }\n\n\n /**\n * Gets environment variable.\n */\n static getEnvVariable(name: string): any {\n return process.env[name];\n }\n\n\n static getHostPath(): string {\n throw new NotSupportedError('not supported');\n }\n\n static getHostFileContent(): string {\n throw new NotSupportedError('not supported');\n }\n\n static mkdir(targetDir: string, sep: string = null): boolean {\n throw new NotSupportedError('not supported');\n }\n\n\n static readFile(filename: string): Promise<Buffer> {\n throw new NotSupportedError('not supported');\n }\n\n static readFileSync(filename: string): Buffer {\n throw new NotSupportedError('not supported');\n }\n\n static deleteFile(dir: string, file: string): Promise<{}> {\n throw new NotSupportedError('not supported');\n }\n\n static deleteDirectory(dir: string): Promise<{}> {\n throw new NotSupportedError('not supported');\n }\n\n\n}\n"],"sourceRoot":".."}
@@ -0,0 +1,9 @@
1
+ export declare class Serializer {
2
+ static TYPES: {};
3
+ static serialize(data: any): string;
4
+ static deserialize(data: any): any;
5
+ static serializeObject(x: any): void;
6
+ static deserializeObject(x: any): any;
7
+ static serializeClass(x: any): void;
8
+ static deserializeClass(x: any): any;
9
+ }
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Serializer = void 0;
4
+ const lodash_1 = require("lodash");
5
+ const JsonUtils_1 = require("./JsonUtils");
6
+ const TreeUtils_1 = require("./TreeUtils");
7
+ const ClassUtils_1 = require("./ClassUtils");
8
+ const Constants_1 = require("../Constants");
9
+ class Serializer {
10
+ static serialize(data) {
11
+ const x = (0, lodash_1.cloneDeep)(data);
12
+ this.serializeObject(x);
13
+ return JsonUtils_1.JsonUtils.stringify(x);
14
+ }
15
+ static deserialize(data) {
16
+ let x = JsonUtils_1.JsonUtils.parse(data);
17
+ x = this.deserializeObject(x);
18
+ return x;
19
+ }
20
+ static serializeObject(x) {
21
+ if ((0, lodash_1.isObjectLike)(x) && !(0, lodash_1.isArray)(x)) {
22
+ this.serializeClass(x);
23
+ TreeUtils_1.TreeUtils.walk(x, (v) => {
24
+ if ((0, lodash_1.isObjectLike)(v.value) && !(0, lodash_1.isArray)(v.value)) {
25
+ this.serializeClass(v.value);
26
+ }
27
+ });
28
+ }
29
+ else if ((0, lodash_1.isArray)(x)) {
30
+ for (let i = 0; i < x.length; i++) {
31
+ this.serializeObject(x[i]);
32
+ }
33
+ }
34
+ }
35
+ static deserializeObject(x) {
36
+ if ((0, lodash_1.isObjectLike)(x) && !(0, lodash_1.isArray)(x)) {
37
+ x = this.deserializeClass(x);
38
+ TreeUtils_1.TreeUtils.walk(x, (y) => {
39
+ if ((0, lodash_1.isObjectLike)(y.value) && !(0, lodash_1.isArray)(y.value)) {
40
+ if ((0, lodash_1.isNumber)(y.index)) {
41
+ y.parent[y.index] = this.deserializeClass(y.value);
42
+ }
43
+ else {
44
+ y.parent[y.key] = this.deserializeClass(y.value);
45
+ }
46
+ }
47
+ });
48
+ }
49
+ else if ((0, lodash_1.isArray)(x)) {
50
+ for (let i = 0; i < x.length; i++) {
51
+ x[i] = this.deserializeObject(x[i]);
52
+ }
53
+ }
54
+ return x;
55
+ }
56
+ static serializeClass(x) {
57
+ const clsName = ClassUtils_1.ClassUtils.getClassName(x);
58
+ if (![Object.name, Array.name, Date.name].includes(clsName)) {
59
+ const fn = Object.getPrototypeOf(x);
60
+ if (!this.TYPES[clsName]) {
61
+ this.TYPES[clsName] = fn.constructor;
62
+ }
63
+ (0, lodash_1.set)(x, Constants_1.__CLASS__, clsName);
64
+ }
65
+ }
66
+ static deserializeClass(x) {
67
+ const clsName = (0, lodash_1.get)(x, Constants_1.__CLASS__, null);
68
+ let constructor = null;
69
+ if (this.TYPES[clsName]) {
70
+ constructor = this.TYPES[clsName];
71
+ if (constructor) {
72
+ const y = Reflect.construct(constructor, []);
73
+ (0, lodash_1.assign)(y, x);
74
+ delete y[Constants_1.__CLASS__];
75
+ return y;
76
+ }
77
+ }
78
+ return x;
79
+ }
80
+ }
81
+ exports.Serializer = Serializer;
82
+ Serializer.TYPES = {};
83
+
84
+ //# sourceMappingURL=Serializer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/utils/Serializer.ts"],"names":[],"mappings":"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","file":"Serializer.js","sourcesContent":["import {assign, cloneDeep, get, isArray, isNumber, isObjectLike, set} from 'lodash';\nimport {JsonUtils} from './JsonUtils';\nimport {TreeUtils} from './TreeUtils';\nimport {ClassUtils} from './ClassUtils';\nimport {__CLASS__} from '../Constants';\n\nexport class Serializer {\n\n static TYPES = {};\n\n static serialize(data: any) {\n const x = cloneDeep(data);\n this.serializeObject(x);\n return JsonUtils.stringify(x);\n }\n\n static deserialize(data: any) {\n let x = JsonUtils.parse(data);\n x = this.deserializeObject(x);\n return x;\n }\n\n static serializeObject(x: any) {\n if (isObjectLike(x) && !isArray(x)) {\n this.serializeClass(x);\n TreeUtils.walk(x, (v) => {\n if (isObjectLike(v.value) && !isArray(v.value)) {\n this.serializeClass(v.value);\n }\n });\n } else if (isArray(x)) {\n for (let i = 0; i < x.length; i++) {\n this.serializeObject(x[i]);\n }\n }\n }\n\n static deserializeObject(x: any) {\n if (isObjectLike(x) && !isArray(x)) {\n x = this.deserializeClass(x);\n TreeUtils.walk(x, (y) => {\n if (isObjectLike(y.value) && !isArray(y.value)) {\n if (isNumber(y.index)) {\n y.parent[y.index] = this.deserializeClass(y.value);\n } else {\n y.parent[y.key] = this.deserializeClass(y.value);\n }\n }\n });\n } else if (isArray(x)) {\n for (let i = 0; i < x.length; i++) {\n x[i] = this.deserializeObject(x[i]);\n }\n }\n return x;\n }\n\n\n static serializeClass(x: any) {\n const clsName = ClassUtils.getClassName(x);\n if (![Object.name, Array.name, Date.name].includes(clsName)) {\n const fn = Object.getPrototypeOf(x);\n if (!this.TYPES[clsName]) {\n this.TYPES[clsName] = fn.constructor;\n }\n set(x, __CLASS__, clsName);\n }\n }\n\n static deserializeClass(x: any) {\n const clsName = get(x, __CLASS__, null);\n let constructor = null;\n if (this.TYPES[clsName]) {\n constructor = this.TYPES[clsName];\n if (constructor) {\n const y = Reflect.construct(constructor, []);\n assign(y, x);\n delete y[__CLASS__];\n return y;\n }\n }\n return x;\n }\n\n}\n"],"sourceRoot":".."}