@nu-art/ts-common 0.300.8 → 0.400.0

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 (211) hide show
  1. package/consts/consts.js +2 -4
  2. package/consts/consts.js.map +1 -0
  3. package/core/application.d.ts +1 -1
  4. package/core/application.js +3 -6
  5. package/core/application.js.map +1 -0
  6. package/core/debug-flags.d.ts +1 -1
  7. package/core/debug-flags.js +15 -17
  8. package/core/debug-flags.js.map +1 -0
  9. package/core/dispatcher.d.ts +2 -2
  10. package/core/dispatcher.js +7 -8
  11. package/core/dispatcher.js.map +1 -0
  12. package/core/error-handling.d.ts +5 -5
  13. package/core/error-handling.js +7 -9
  14. package/core/error-handling.js.map +1 -0
  15. package/core/exceptions/exceptions.d.ts +2 -2
  16. package/core/exceptions/exceptions.js +33 -44
  17. package/core/exceptions/exceptions.js.map +1 -0
  18. package/core/exceptions/http-codes.d.ts +8 -2
  19. package/core/exceptions/http-codes.js +6 -6
  20. package/core/exceptions/http-codes.js.map +1 -0
  21. package/core/exceptions/types.js +2 -2
  22. package/core/exceptions/types.js.map +1 -0
  23. package/core/logger/BeLogged.d.ts +2 -2
  24. package/core/logger/BeLogged.js +9 -11
  25. package/core/logger/BeLogged.js.map +1 -0
  26. package/core/logger/LogClient.d.ts +3 -1
  27. package/core/logger/LogClient.js +21 -24
  28. package/core/logger/LogClient.js.map +1 -0
  29. package/core/logger/LogClient_BaseRotate.d.ts +2 -2
  30. package/core/logger/LogClient_BaseRotate.js +12 -12
  31. package/core/logger/LogClient_BaseRotate.js.map +1 -0
  32. package/core/logger/LogClient_Browser.d.ts +2 -2
  33. package/core/logger/LogClient_Browser.js +40 -45
  34. package/core/logger/LogClient_Browser.js.map +1 -0
  35. package/core/logger/LogClient_BrowserGroups.d.ts +2 -2
  36. package/core/logger/LogClient_BrowserGroups.js +65 -67
  37. package/core/logger/LogClient_BrowserGroups.js.map +1 -0
  38. package/core/logger/LogClient_ConsoleProxy.d.ts +23 -0
  39. package/core/logger/LogClient_ConsoleProxy.js +89 -0
  40. package/core/logger/LogClient_ConsoleProxy.js.map +1 -0
  41. package/core/logger/LogClient_File.d.ts +1 -1
  42. package/core/logger/LogClient_File.js +6 -30
  43. package/core/logger/LogClient_File.js.map +1 -0
  44. package/core/logger/LogClient_Function.d.ts +2 -2
  45. package/core/logger/LogClient_Function.js +6 -8
  46. package/core/logger/LogClient_Function.js.map +1 -0
  47. package/core/logger/LogClient_MemBuffer.d.ts +2 -2
  48. package/core/logger/LogClient_MemBuffer.js +19 -21
  49. package/core/logger/LogClient_MemBuffer.js.map +1 -0
  50. package/core/logger/LogClient_Terminal.d.ts +2 -2
  51. package/core/logger/LogClient_Terminal.js +16 -21
  52. package/core/logger/LogClient_Terminal.js.map +1 -0
  53. package/core/logger/Logger.d.ts +2 -2
  54. package/core/logger/Logger.js +37 -39
  55. package/core/logger/Logger.js.map +1 -0
  56. package/core/logger/types.js +4 -6
  57. package/core/logger/types.js.map +1 -0
  58. package/core/logger/utils.d.ts +1 -1
  59. package/core/logger/utils.js +10 -15
  60. package/core/logger/utils.js.map +1 -0
  61. package/core/module-manager.d.ts +8 -6
  62. package/core/module-manager.js +28 -26
  63. package/core/module-manager.js.map +1 -0
  64. package/core/module.d.ts +5 -5
  65. package/core/module.js +28 -28
  66. package/core/module.js.map +1 -0
  67. package/csv.d.ts +2 -2
  68. package/csv.js +3 -18
  69. package/csv.js.map +1 -0
  70. package/db/consts.d.ts +3 -0
  71. package/db/consts.js +17 -7
  72. package/db/consts.js.map +1 -0
  73. package/db/dependencies-test.js +2 -2
  74. package/db/dependencies-test.js.map +1 -0
  75. package/db/types.d.ts +10 -2
  76. package/db/types.js +2 -2
  77. package/db/types.js.map +1 -0
  78. package/esm.d.ts +1 -0
  79. package/esm.js +4 -0
  80. package/esm.js.map +1 -0
  81. package/index.d.ts +50 -49
  82. package/index.js +51 -65
  83. package/index.js.map +1 -0
  84. package/mem-storage/MemStorage.d.ts +3 -1
  85. package/mem-storage/MemStorage.js +90 -72
  86. package/mem-storage/MemStorage.js.map +1 -0
  87. package/mem-storage/index.d.ts +1 -0
  88. package/mem-storage/index.js +2 -0
  89. package/mem-storage/index.js.map +1 -0
  90. package/modules/CSVModule.d.ts +2 -2
  91. package/modules/CSVModule.js +22 -48
  92. package/modules/CSVModule.js.map +1 -0
  93. package/modules/CSVModuleV3.d.ts +2 -2
  94. package/modules/CSVModuleV3.js +60 -86
  95. package/modules/CSVModuleV3.js.map +1 -0
  96. package/modules/CliParamsModule.d.ts +2 -2
  97. package/modules/CliParamsModule.js +23 -28
  98. package/modules/CliParamsModule.js.map +1 -0
  99. package/modules/JSONCSVModule.d.ts +2 -2
  100. package/modules/JSONCSVModule.js +56 -78
  101. package/modules/JSONCSVModule.js.map +1 -0
  102. package/modules/csv-serializer.d.ts +1 -1
  103. package/modules/csv-serializer.js +11 -5
  104. package/modules/csv-serializer.js.map +1 -0
  105. package/package.json +20 -11
  106. package/replacer-v2/ReplacerV2.d.ts +1 -1
  107. package/replacer-v2/ReplacerV2.js +6 -9
  108. package/replacer-v2/ReplacerV2.js.map +1 -0
  109. package/test-index.d.ts +2 -2
  110. package/test-index.js +3 -18
  111. package/test-index.js.map +1 -0
  112. package/testing/consts.d.ts +13 -2
  113. package/testing/consts.js +66 -26
  114. package/testing/consts.js.map +1 -0
  115. package/testing/test-template.test.d.ts +1 -0
  116. package/testing/test-template.test.js +42 -0
  117. package/testing/test-template.test.js.map +1 -0
  118. package/testing/types.d.ts +17 -5
  119. package/testing/types.js +2 -2
  120. package/testing/types.js.map +1 -0
  121. package/testing/workspace-creator.d.ts +10 -0
  122. package/testing/workspace-creator.js +79 -0
  123. package/testing/workspace-creator.js.map +1 -0
  124. package/tools/Replacer.d.ts +2 -2
  125. package/tools/Replacer.js +22 -24
  126. package/tools/Replacer.js.map +1 -0
  127. package/tools/get-log-style.js +4 -6
  128. package/tools/get-log-style.js.map +1 -0
  129. package/utils/FileSystemUtils.d.ts +34 -0
  130. package/utils/FileSystemUtils.js +153 -0
  131. package/utils/FileSystemUtils.js.map +1 -0
  132. package/utils/array-tools.d.ts +4 -4
  133. package/utils/array-tools.js +56 -83
  134. package/utils/array-tools.js.map +1 -0
  135. package/utils/conflict-tools.d.ts +1 -0
  136. package/utils/conflict-tools.js +3 -0
  137. package/utils/conflict-tools.js.map +1 -0
  138. package/utils/crypto-tools.d.ts +44 -0
  139. package/utils/crypto-tools.js +101 -10
  140. package/utils/crypto-tools.js.map +1 -0
  141. package/utils/date-time-tools.d.ts +48 -4
  142. package/utils/date-time-tools.js +166 -64
  143. package/utils/date-time-tools.js.map +1 -0
  144. package/utils/db-object-tools.d.ts +7 -2
  145. package/utils/db-object-tools.js +20 -20
  146. package/utils/db-object-tools.js.map +1 -0
  147. package/utils/exception-tools.js +13 -15
  148. package/utils/exception-tools.js.map +1 -0
  149. package/utils/filter-tools.js +48 -48
  150. package/utils/filter-tools.js.map +1 -0
  151. package/utils/hash-tools.js +14 -22
  152. package/utils/hash-tools.js.map +1 -0
  153. package/utils/index.d.ts +27 -0
  154. package/utils/index.js +28 -0
  155. package/utils/index.js.map +1 -0
  156. package/utils/json-tools.js +5 -8
  157. package/utils/json-tools.js.map +1 -0
  158. package/utils/merge-tools.d.ts +9 -0
  159. package/utils/merge-tools.js +18 -19
  160. package/utils/merge-tools.js.map +1 -0
  161. package/utils/mimetype-tools.d.ts +1 -0
  162. package/utils/mimetype-tools.js +26 -27
  163. package/utils/mimetype-tools.js.map +1 -0
  164. package/utils/number-tools.js +3 -7
  165. package/utils/number-tools.js.map +1 -0
  166. package/utils/object-tools.d.ts +15 -1
  167. package/utils/object-tools.js +110 -33
  168. package/utils/object-tools.js.map +1 -0
  169. package/utils/promise-tools.d.ts +5 -0
  170. package/utils/promise-tools.js +9 -5
  171. package/utils/promise-tools.js.map +1 -0
  172. package/utils/query-params.js +3 -6
  173. package/utils/query-params.js.map +1 -0
  174. package/utils/queue-v2.d.ts +1 -1
  175. package/utils/queue-v2.js +72 -73
  176. package/utils/queue-v2.js.map +1 -0
  177. package/utils/queue.d.ts +1 -1
  178. package/utils/queue.js +15 -17
  179. package/utils/queue.js.map +1 -0
  180. package/utils/random-tools.js +7 -11
  181. package/utils/random-tools.js.map +1 -0
  182. package/utils/storage-capacity-tools.js +7 -9
  183. package/utils/storage-capacity-tools.js.map +1 -0
  184. package/utils/string-tools.js +17 -31
  185. package/utils/string-tools.js.map +1 -0
  186. package/utils/time-proxy.d.ts +8 -0
  187. package/utils/time-proxy.js +10 -0
  188. package/utils/time-proxy.js.map +1 -0
  189. package/utils/tools.d.ts +1 -1
  190. package/utils/tools.js +18 -28
  191. package/utils/tools.js.map +1 -0
  192. package/utils/types.d.ts +9 -3
  193. package/utils/types.js +2 -4
  194. package/utils/types.js.map +1 -0
  195. package/utils/ui-tools.js +6 -12
  196. package/utils/ui-tools.js.map +1 -0
  197. package/utils/url-tools.d.ts +5 -0
  198. package/utils/url-tools.js +20 -0
  199. package/utils/url-tools.js.map +1 -0
  200. package/utils/version-tools.js +17 -12
  201. package/utils/version-tools.js.map +1 -0
  202. package/validator/type-validators.d.ts +14 -10
  203. package/validator/type-validators.js +84 -105
  204. package/validator/type-validators.js.map +1 -0
  205. package/validator/validator-core.d.ts +4 -4
  206. package/validator/validator-core.js +16 -21
  207. package/validator/validator-core.js.map +1 -0
  208. package/validator/validators.d.ts +9 -5
  209. package/validator/validators.js +48 -47
  210. package/validator/validators.js.map +1 -0
  211. package/tsconfig.json +0 -23
package/utils/queue-v2.js CHANGED
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  /*
3
2
  * ts-common is the basic building blocks of our typescript projects
4
3
  *
@@ -16,80 +15,23 @@
16
15
  * See the License for the specific language governing permissions and
17
16
  * limitations under the License.
18
17
  */
19
- Object.defineProperty(exports, "__esModule", { value: true });
20
- exports.QueueV2 = void 0;
21
- const Logger_1 = require("../core/logger/Logger");
22
- const array_tools_1 = require("./array-tools");
23
- class QueueV2 extends Logger_1.Logger {
18
+ import { Logger } from '../core/logger/Logger.js';
19
+ import { addItemToArray, removeItemFromArray, sortArray } from './array-tools.js';
20
+ export class QueueV2 extends Logger {
21
+ allowedParallelOperationsCount = 1;
22
+ runningOperationsCount = 0;
23
+ cancelled = false;
24
+ queue = [];
25
+ onQueueEmpty;
26
+ finalResolve;
27
+ runner;
28
+ sorter;
29
+ filter;
24
30
  constructor(name, runner) {
25
31
  super(name);
26
- this.allowedParallelOperationsCount = 1;
27
- this.runningOperationsCount = 0;
28
- this.cancelled = false;
29
- this.queue = [];
30
- this.getLength = () => this.queue.length;
31
- this.ignore = () => {
32
- this.cancelled = false;
33
- };
34
- this.execute = () => {
35
- var _a, _b;
36
- if (this.queue.length === 0 && this.runningOperationsCount === 0) {
37
- (_a = this.onQueueEmpty) === null || _a === void 0 ? void 0 : _a.call(this);
38
- return (_b = this.finalResolve) === null || _b === void 0 ? void 0 : _b.call(this);
39
- }
40
- if (this.filter)
41
- this.queue = this.filter(this.queue);
42
- const sorter = this.sorter;
43
- if (sorter)
44
- this.queue = (0, array_tools_1.sortArray)(this.queue, (queueItem) => sorter(queueItem.item));
45
- for (let i = 0; this.runningOperationsCount < this.allowedParallelOperationsCount && i < this.queue.length; i++) {
46
- if (this.cancelled) {
47
- this.cancelled = false;
48
- return;
49
- }
50
- const toExecute = this.queue[0];
51
- (0, array_tools_1.removeItemFromArray)(this.queue, toExecute);
52
- this.runningOperationsCount++;
53
- new Promise((resolve, reject) => {
54
- if (this.cancelled) {
55
- this.cancelled = false;
56
- this.runningOperationsCount = 0;
57
- return;
58
- }
59
- this.runner(toExecute.item).then(output => {
60
- var _a;
61
- (_a = toExecute.onCompleted) === null || _a === void 0 ? void 0 : _a.call(toExecute, output);
62
- this.runningOperationsCount--;
63
- resolve(); // Recursively call execute to process next item
64
- }).catch(e => {
65
- var _a;
66
- try {
67
- (_a = toExecute.onError) === null || _a === void 0 ? void 0 : _a.call(toExecute, e);
68
- }
69
- catch (e1) {
70
- this.logError('Error while calling onError');
71
- this.logError('--- Original: ', e);
72
- this.logError('-- Secondary: ', e1);
73
- reject(e);
74
- }
75
- finally {
76
- this.runningOperationsCount--;
77
- resolve(); // Recursively call execute to process next item
78
- }
79
- });
80
- }).then(this.execute)
81
- .catch(this.ignore);
82
- }
83
- if (this.cancelled)
84
- this.cancelled = false;
85
- };
86
- this.cancelAll = () => {
87
- if (this.runningOperationsCount > 0)
88
- this.cancelled = true;
89
- this.queue = [];
90
- };
91
32
  this.runner = runner;
92
33
  }
34
+ getLength = () => this.queue.length;
93
35
  setParallelCount(parallelCount) {
94
36
  this.allowedParallelOperationsCount = parallelCount;
95
37
  return this;
@@ -104,7 +46,7 @@ class QueueV2 extends Logger_1.Logger {
104
46
  return this;
105
47
  }
106
48
  addItemImpl(item, onCompleted, onError) {
107
- (0, array_tools_1.addItemToArray)(this.queue, Object.freeze({ onCompleted: onCompleted, onError: onError, item }));
49
+ addItemToArray(this.queue, Object.freeze({ onCompleted: onCompleted, onError: onError, item }));
108
50
  return this;
109
51
  }
110
52
  setSorter(sorter) {
@@ -115,11 +57,68 @@ class QueueV2 extends Logger_1.Logger {
115
57
  this.filter = filter;
116
58
  return this;
117
59
  }
60
+ ignore = () => {
61
+ this.cancelled = false;
62
+ };
63
+ execute = () => {
64
+ if (this.queue.length === 0 && this.runningOperationsCount === 0) {
65
+ this.onQueueEmpty?.();
66
+ return this.finalResolve?.();
67
+ }
68
+ if (this.filter)
69
+ this.queue = this.filter(this.queue);
70
+ const sorter = this.sorter;
71
+ if (sorter)
72
+ this.queue = sortArray(this.queue, (queueItem) => sorter(queueItem.item));
73
+ for (let i = 0; this.runningOperationsCount < this.allowedParallelOperationsCount && i < this.queue.length; i++) {
74
+ if (this.cancelled) {
75
+ this.cancelled = false;
76
+ return;
77
+ }
78
+ const toExecute = this.queue[0];
79
+ removeItemFromArray(this.queue, toExecute);
80
+ this.runningOperationsCount++;
81
+ new Promise((resolve, reject) => {
82
+ if (this.cancelled) {
83
+ this.cancelled = false;
84
+ this.runningOperationsCount = 0;
85
+ return;
86
+ }
87
+ this.runner(toExecute.item).then(output => {
88
+ toExecute.onCompleted?.(output);
89
+ this.runningOperationsCount--;
90
+ resolve(); // Recursively call execute to process next item
91
+ }).catch(e => {
92
+ try {
93
+ toExecute.onError?.(e);
94
+ }
95
+ catch (e1) {
96
+ this.logError('Error while calling onError');
97
+ this.logError('--- Original: ', e);
98
+ this.logError('-- Secondary: ', e1);
99
+ reject(e);
100
+ }
101
+ finally {
102
+ this.runningOperationsCount--;
103
+ resolve(); // Recursively call execute to process next item
104
+ }
105
+ });
106
+ }).then(this.execute)
107
+ .catch(this.ignore);
108
+ }
109
+ if (this.cancelled)
110
+ this.cancelled = false;
111
+ };
118
112
  async executeSync() {
119
113
  await new Promise(resolve => {
120
114
  this.finalResolve = resolve;
121
115
  this.execute();
122
116
  });
123
117
  }
118
+ cancelAll = () => {
119
+ if (this.runningOperationsCount > 0)
120
+ this.cancelled = true;
121
+ this.queue = [];
122
+ };
124
123
  }
125
- exports.QueueV2 = QueueV2;
124
+ //# sourceMappingURL=queue-v2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queue-v2.js","sourceRoot":"/Users/tacb0ss/dev/nu-art/beamz/_thunderstorm/ts-common/src/main/","sources":["utils/queue-v2.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAC,MAAM,EAAC,MAAM,0BAA0B,CAAC;AAChD,OAAO,EAAC,cAAc,EAAE,mBAAmB,EAAE,SAAS,EAAC,MAAM,kBAAkB,CAAC;AAShF,MAAM,OAAO,OACZ,SAAQ,MAAM;IAEN,8BAA8B,GAAG,CAAC,CAAC;IACnC,sBAAsB,GAAG,CAAC,CAAC;IAC3B,SAAS,GAAY,KAAK,CAAC;IAC3B,KAAK,GAAgD,EAAE,CAAC;IACxD,YAAY,CAAc;IAC1B,YAAY,CAA6B;IAChC,MAAM,CAA+C;IAC9D,MAAM,CAAyC;IAC/C,MAAM,CAAwG;IAEtH,YAAY,IAAY,EAAE,MAAoD;QAC7E,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACtB,CAAC;IAED,SAAS,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAEpC,gBAAgB,CAAC,aAAqB;QACrC,IAAI,CAAC,8BAA8B,GAAG,aAAa,CAAC;QACpD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,eAAe,CAAC,YAAwB;QACvC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,OAAO,IAAI,CAAC;IACb,CAAC;IAED,OAAO,CAAC,SAAmB,EAAE,WAA0C,EAAE,OAAgC;QACxG,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;QAClD,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,OAAO,IAAI,CAAC;IACb,CAAC;IAED,WAAW,CAAC,IAAc,EAAE,WAA0C,EAAE,OAAgC;QACvG,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAC,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC;QAC9F,OAAO,IAAI,CAAC;IACb,CAAC;IAED,SAAS,CAAC,MAA4C;QACrD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,OAAO,IAAI,CAAC;IACb,CAAC;IAED,SAAS,CAAC,MAA2G;QACpH,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,OAAO,IAAI,CAAC;IACb,CAAC;IAEO,MAAM,GAAG,GAAG,EAAE;QACrB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACxB,CAAC,CAAC;IAEF,OAAO,GAAG,GAAG,EAAE;QACd,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,sBAAsB,KAAK,CAAC,EAAE,CAAC;YAClE,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;QAC9B,CAAC;QAED,IAAI,IAAI,CAAC,MAAM;YACd,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEtC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,MAAM;YACT,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QAE3E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,8BAA8B,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACjH,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACpB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,OAAO;YACR,CAAC;YACD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAChC,mBAAmB,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YAE3C,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC9B,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACrC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;oBACpB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;oBACvB,IAAI,CAAC,sBAAsB,GAAG,CAAC,CAAC;oBAChC,OAAO;gBACR,CAAC;gBAED,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;oBACzC,SAAS,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC;oBAChC,IAAI,CAAC,sBAAsB,EAAE,CAAC;oBAC9B,OAAO,EAAE,CAAC,CAAC,gDAAgD;gBAC5D,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;oBACZ,IAAI,CAAC;wBACJ,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;oBACxB,CAAC;oBAAC,OAAO,EAAO,EAAE,CAAC;wBAClB,IAAI,CAAC,QAAQ,CAAC,6BAA6B,CAAC,CAAC;wBAC7C,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;wBACnC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;wBACpC,MAAM,CAAC,CAAC,CAAC,CAAC;oBACX,CAAC;4BAAS,CAAC;wBACV,IAAI,CAAC,sBAAsB,EAAE,CAAC;wBAC9B,OAAO,EAAE,CAAC,CAAC,gDAAgD;oBAC5D,CAAC;gBACF,CAAC,CAAC,CAAC;YACJ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;iBACnB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtB,CAAC;QACD,IAAI,IAAI,CAAC,SAAS;YACjB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC,CAAC;IAEF,KAAK,CAAC,WAAW;QAChB,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;YAC3B,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;YAC5B,IAAI,CAAC,OAAO,EAAE,CAAC;QAChB,CAAC,CAAC,CAAC;IACJ,CAAC;IAEM,SAAS,GAAG,GAAG,EAAE;QACvB,IAAI,IAAI,CAAC,sBAAsB,GAAG,CAAC;YAClC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IACjB,CAAC,CAAC;CACF"}
package/utils/queue.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { Logger } from '../core/logger/Logger';
1
+ import { Logger } from '../core/logger/Logger.js';
2
2
  export declare class Queue extends Logger {
3
3
  private allowedParallelOperationsCount;
4
4
  private runningOperationsCount;
package/utils/queue.js CHANGED
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  /*
3
2
  * ts-common is the basic building blocks of our typescript projects
4
3
  *
@@ -16,18 +15,16 @@
16
15
  * See the License for the specific language governing permissions and
17
16
  * limitations under the License.
18
17
  */
19
- Object.defineProperty(exports, "__esModule", { value: true });
20
- exports.Queue = void 0;
21
- const Logger_1 = require("../core/logger/Logger");
22
- const array_tools_1 = require("./array-tools");
23
- class Queue extends Logger_1.Logger {
18
+ import { Logger } from '../core/logger/Logger.js';
19
+ import { addItemToArray, removeItemFromArray } from './array-tools.js';
20
+ export class Queue extends Logger {
21
+ allowedParallelOperationsCount = 1;
22
+ runningOperationsCount = 0;
23
+ queue = [];
24
+ onQueueEmpty;
25
+ finalResolve;
24
26
  constructor(name) {
25
27
  super(name);
26
- this.allowedParallelOperationsCount = 1;
27
- this.runningOperationsCount = 0;
28
- this.queue = [];
29
- this.ignore = () => {
30
- };
31
28
  }
32
29
  setParallelCount(parallelCount) {
33
30
  this.allowedParallelOperationsCount = parallelCount;
@@ -38,11 +35,11 @@ class Queue extends Logger_1.Logger {
38
35
  return this;
39
36
  }
40
37
  addItem(toExecute, onCompleted, onError) {
41
- this.addItemImpl(toExecute.bind(this), onCompleted === null || onCompleted === void 0 ? void 0 : onCompleted.bind(this), onError === null || onError === void 0 ? void 0 : onError.bind(this));
38
+ this.addItemImpl(toExecute.bind(this), onCompleted?.bind(this), onError?.bind(this));
42
39
  this.execute();
43
40
  }
44
41
  addItemImpl(toExecute, onCompleted, onError) {
45
- (0, array_tools_1.addItemToArray)(this.queue, async (resolve) => {
42
+ addItemToArray(this.queue, async (resolve) => {
46
43
  this.runningOperationsCount++;
47
44
  try {
48
45
  const output = await toExecute();
@@ -63,15 +60,16 @@ class Queue extends Logger_1.Logger {
63
60
  this.execute();
64
61
  });
65
62
  }
63
+ ignore = () => {
64
+ };
66
65
  execute() {
67
- var _a;
68
66
  if (this.queue.length === 0 && this.runningOperationsCount === 0) {
69
67
  this.onQueueEmpty && this.onQueueEmpty();
70
- return (_a = this.finalResolve) === null || _a === void 0 ? void 0 : _a.call(this);
68
+ return this.finalResolve?.();
71
69
  }
72
70
  for (let i = 0; this.runningOperationsCount < this.allowedParallelOperationsCount && i < this.queue.length; i++) {
73
71
  const toExecute = this.queue[0];
74
- (0, array_tools_1.removeItemFromArray)(this.queue, toExecute);
72
+ removeItemFromArray(this.queue, toExecute);
75
73
  new Promise(toExecute.bind(this))
76
74
  .then(this.ignore)
77
75
  .catch(this.ignore);
@@ -84,4 +82,4 @@ class Queue extends Logger_1.Logger {
84
82
  });
85
83
  }
86
84
  }
87
- exports.Queue = Queue;
85
+ //# sourceMappingURL=queue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queue.js","sourceRoot":"/Users/tacb0ss/dev/nu-art/beamz/_thunderstorm/ts-common/src/main/","sources":["utils/queue.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  /*
3
2
  * ts-common is the basic building blocks of our typescript projects
4
3
  *
@@ -16,17 +15,13 @@
16
15
  * See the License for the specific language governing permissions and
17
16
  * limitations under the License.
18
17
  */
19
- Object.defineProperty(exports, "__esModule", { value: true });
20
- exports.generateHex = generateHex;
21
- exports.generateUUID = generateUUID;
22
- exports.generateShortURL = generateShortURL;
23
- const crypto_1 = require("crypto");
24
- function generateHex(length) {
25
- return (0, crypto_1.randomBytes)(Math.ceil(length / 2))
18
+ import { randomBytes } from 'crypto';
19
+ export function generateHex(length) {
20
+ return randomBytes(Math.ceil(length / 2))
26
21
  .toString('hex')
27
22
  .slice(0, length).toLowerCase();
28
23
  }
29
- function generateUUID() {
24
+ export function generateUUID() {
30
25
  return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
31
26
  const r = Math.random() * 16 | 0, v = c === 'x' ? r : (r & 0x3 | 0x8);
32
27
  return v.toString(16);
@@ -35,13 +30,14 @@ function generateUUID() {
35
30
  /**
36
31
  * generate 8 characters long string that is value for short url usage
37
32
  */
38
- function generateShortURL() {
33
+ export function generateShortURL() {
39
34
  const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_';
40
35
  let result = '';
41
- const random = (0, crypto_1.randomBytes)(8); // Generate 8 random bytes
36
+ const random = randomBytes(8); // Generate 8 random bytes
42
37
  for (let i = 0; i < 8; i++) {
43
38
  const byte = random[i];
44
39
  result += chars.charAt(byte % chars.length);
45
40
  }
46
41
  return result;
47
42
  }
43
+ //# sourceMappingURL=random-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"random-tools.js","sourceRoot":"/Users/tacb0ss/dev/nu-art/beamz/_thunderstorm/ts-common/src/main/","sources":["utils/random-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAC,WAAW,EAAC,MAAM,QAAQ,CAAC;AAEnC,MAAM,UAAU,WAAW,CAAC,MAAc;IACzC,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;SACvC,QAAQ,CAAC,KAAK,CAAC;SACf,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,YAAY;IAC3B,OAAO,sCAAsC,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC;QACzE,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;QACtE,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC/B,MAAM,KAAK,GAAG,kEAAkE,CAAC;IACjF,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,0BAA0B;IAEzD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC"}
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  /*
3
2
  * ts-common is the basic building blocks of our typescript projects
4
3
  *
@@ -16,11 +15,10 @@
16
15
  * See the License for the specific language governing permissions and
17
16
  * limitations under the License.
18
17
  */
19
- Object.defineProperty(exports, "__esModule", { value: true });
20
- exports.PB = exports.TB = exports.GB = exports.MB = exports.KB = exports.Byte = void 0;
21
- exports.Byte = 1;
22
- exports.KB = exports.Byte * 1024;
23
- exports.MB = exports.KB * 1024;
24
- exports.GB = exports.MB * 1024;
25
- exports.TB = exports.GB * 1024;
26
- exports.PB = exports.TB * 1024;
18
+ export const Byte = 1;
19
+ export const KB = Byte * 1024;
20
+ export const MB = KB * 1024;
21
+ export const GB = MB * 1024;
22
+ export const TB = GB * 1024;
23
+ export const PB = TB * 1024;
24
+ //# sourceMappingURL=storage-capacity-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-capacity-tools.js","sourceRoot":"/Users/tacb0ss/dev/nu-art/beamz/_thunderstorm/ts-common/src/main/","sources":["utils/storage-capacity-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC;AACtB,MAAM,CAAC,MAAM,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAC9B,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAC5B,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAC5B,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAC5B,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC"}
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  /*
3
2
  * ts-common is the basic building blocks of our typescript projects
4
3
  *
@@ -16,25 +15,11 @@
16
15
  * See the License for the specific language governing permissions and
17
16
  * limitations under the License.
18
17
  */
19
- Object.defineProperty(exports, "__esModule", { value: true });
20
- exports.padNumber = padNumber;
21
- exports.stringToHashCode = stringToHashCode;
22
- exports.escape_RegExp = escape_RegExp;
23
- exports.maxSubstring = maxSubstring;
24
- exports.getStringSize = getStringSize;
25
- exports.stringFormat = stringFormat;
26
- exports.replaceStringAt = replaceStringAt;
27
- exports.capitalizeAllFirstLetters = capitalizeAllFirstLetters;
28
- exports.capitalizeFirstLetter = capitalizeFirstLetter;
29
- exports.createLevenshteinDistanceMatrix = createLevenshteinDistanceMatrix;
30
- exports.levenshteinDistance = levenshteinDistance;
31
- exports.normalizeString = normalizeString;
32
- exports.convertUpperCamelCase = convertUpperCamelCase;
33
- function padNumber(num, length) {
18
+ export function padNumber(num, length) {
34
19
  const _num = num.toString();
35
20
  return _num.length < length ? padNumber('0' + _num, length) : _num;
36
21
  }
37
- function stringToHashCode(stringToHash) {
22
+ export function stringToHashCode(stringToHash) {
38
23
  let hash = 0;
39
24
  if (stringToHash.length === 0)
40
25
  return hash;
@@ -44,10 +29,10 @@ function stringToHashCode(stringToHash) {
44
29
  }
45
30
  return hash;
46
31
  }
47
- function escape_RegExp(string) {
32
+ export function escape_RegExp(string) {
48
33
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
49
34
  }
50
- function maxSubstring(string, maxBytes, direction = 'start') {
35
+ export function maxSubstring(string, maxBytes, direction = 'start') {
51
36
  const encoder = new TextEncoder();
52
37
  const decoder = new TextDecoder();
53
38
  const bytes = encoder.encode(string);
@@ -70,7 +55,7 @@ function maxSubstring(string, maxBytes, direction = 'start') {
70
55
  * @returns The size of the string in the specified unit.
71
56
  * @throws Error if the unit is invalid.
72
57
  */
73
- function getStringSize(str, unit = 'KB') {
58
+ export function getStringSize(str, unit = 'KB') {
74
59
  const encoder = new TextEncoder();
75
60
  const bytes = encoder.encode(str);
76
61
  const byteLength = bytes.length;
@@ -85,17 +70,17 @@ function getStringSize(str, unit = 'KB') {
85
70
  throw new Error('Invalid unit. Please specify "KB", "MB", or "GB".');
86
71
  }
87
72
  }
88
- function stringFormat(input, params = []) {
89
- return (params === null || params === void 0 ? void 0 : params.reduce((toRet, param, index) => {
73
+ export function stringFormat(input, params = []) {
74
+ return params?.reduce((toRet, param, index) => {
90
75
  return toRet.replace(new RegExp(`\\{${index}\\}`, 'g'), param);
91
- }, input || '')) || input;
76
+ }, input || '') || input;
92
77
  }
93
- function replaceStringAt(origin, index, replacement) {
94
- if (!(origin === null || origin === void 0 ? void 0 : origin.length) || !(replacement === null || replacement === void 0 ? void 0 : replacement.length))
78
+ export function replaceStringAt(origin, index, replacement) {
79
+ if (!origin?.length || !replacement?.length)
95
80
  return origin;
96
81
  return origin.substring(0, index) + replacement + origin.substring(index + replacement.length);
97
82
  }
98
- function capitalizeAllFirstLetters(value) {
83
+ export function capitalizeAllFirstLetters(value) {
99
84
  let resultString = value;
100
85
  for (let i = 0; i < resultString.length; i++) {
101
86
  if (i === 0 || i > 0 && resultString[i - 1] === ' ')
@@ -103,10 +88,10 @@ function capitalizeAllFirstLetters(value) {
103
88
  }
104
89
  return resultString;
105
90
  }
106
- function capitalizeFirstLetter(value) {
91
+ export function capitalizeFirstLetter(value) {
107
92
  return value.charAt(0).toUpperCase() + value.substr(1).toLowerCase();
108
93
  }
109
- function createLevenshteinDistanceMatrix(str1, str2) {
94
+ export function createLevenshteinDistanceMatrix(str1, str2) {
110
95
  const len1 = str1.length;
111
96
  const len2 = str2.length;
112
97
  //Init 2D matrix of size str1.length * str2.length filled with 0
@@ -122,7 +107,7 @@ function createLevenshteinDistanceMatrix(str1, str2) {
122
107
  matrix[i][j] = Math.min((matrix[i - 1][j]) + 1, (matrix[i][j - 1]) + 1, (matrix[i - 1][j - 1]) + (str1[i - 1] === str2[j - 1] ? 0 : 1));
123
108
  return matrix;
124
109
  }
125
- function levenshteinDistance(str1, str2) {
110
+ export function levenshteinDistance(str1, str2) {
126
111
  //Quick exists
127
112
  if (str1.length === 0)
128
113
  return str2.length;
@@ -133,9 +118,10 @@ function levenshteinDistance(str1, str2) {
133
118
  //Distance between the strings should be at bottom right corner of the matrix
134
119
  return matrix[str1.length][str2.length];
135
120
  }
136
- function normalizeString(string) {
121
+ export function normalizeString(string) {
137
122
  return string.replace(/–/g, '-').replace(/\n/g, '').replace(/\s+/g, ' ').replace(/’/g, '\'').trim();
138
123
  }
139
- function convertUpperCamelCase(upperCamelCase, delimiter = ' ') {
124
+ export function convertUpperCamelCase(upperCamelCase, delimiter = ' ') {
140
125
  return upperCamelCase.replace(/([a-z0-9])([A-Z])/g, `$1${delimiter}$2`);
141
126
  }
127
+ //# sourceMappingURL=string-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string-tools.js","sourceRoot":"/Users/tacb0ss/dev/nu-art/beamz/_thunderstorm/ts-common/src/main/","sources":["utils/string-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export declare const TimeProxy: Readonly<{
2
+ getDelta: () => number;
3
+ setDelta: (dt: number) => number;
4
+ setVirtualTime: (timestamp: number) => number;
5
+ currentTimeMillis: () => number;
6
+ getRealTime: () => number;
7
+ reset: () => 0;
8
+ }>;
@@ -0,0 +1,10 @@
1
+ let _dt = 0;
2
+ export const TimeProxy = Object.freeze({
3
+ getDelta: () => _dt,
4
+ setDelta: (dt) => _dt = dt,
5
+ setVirtualTime: (timestamp) => TimeProxy.setDelta(timestamp - TimeProxy.getRealTime()),
6
+ currentTimeMillis: () => TimeProxy.getRealTime() + _dt,
7
+ getRealTime: () => Date.now(),
8
+ reset: () => _dt = 0,
9
+ });
10
+ //# sourceMappingURL=time-proxy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"time-proxy.js","sourceRoot":"/Users/tacb0ss/dev/nu-art/beamz/_thunderstorm/ts-common/src/main/","sources":["utils/time-proxy.ts"],"names":[],"mappings":"AAAA,IAAI,GAAG,GAAG,CAAC,CAAC;AACZ,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;IACtC,QAAQ,EAAE,GAAG,EAAE,CAAC,GAAG;IACnB,QAAQ,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE;IAClC,cAAc,EAAE,CAAC,SAAiB,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;IAC9F,iBAAiB,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,GAAG,GAAG;IACtD,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;IAC7B,KAAK,EAAE,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC;CACpB,CAAC,CAAC"}
package/utils/tools.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { ResolvableContent, TS_Object } from './types';
1
+ import { ResolvableContent, TS_Object } from './types.js';
2
2
  export declare function regexpCase(value: string, reg: string): RegExpMatchArray | {
3
3
  input: undefined;
4
4
  };
package/utils/tools.js CHANGED
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  /*
3
2
  * ts-common is the basic building blocks of our typescript projects
4
3
  *
@@ -16,19 +15,11 @@
16
15
  * See the License for the specific language governing permissions and
17
16
  * limitations under the License.
18
17
  */
19
- Object.defineProperty(exports, "__esModule", { value: true });
20
- exports.logicalXOR = exports.resolveFunctionOrValue = exports.resolveContent = exports.functionThatReturnsTrue = exports.functionThatReturnsFalse = exports.voidFunction = exports.EmptyArray = exports.EmptyObject = void 0;
21
- exports.regexpCase = regexpCase;
22
- exports.createFilterPattern = createFilterPattern;
23
- exports.calculateJsonSizeMb = calculateJsonSizeMb;
24
- exports.__stringify = __stringify;
25
- exports.exists = exists;
26
- exports.freeze = freeze;
27
- const object_tools_1 = require("./object-tools");
28
- function regexpCase(value, reg) {
18
+ import { _keys } from './object-tools.js';
19
+ export function regexpCase(value, reg) {
29
20
  return value.match(new RegExp(reg)) || { input: undefined };
30
21
  }
31
- function createFilterPattern(rawFilter) {
22
+ export function createFilterPattern(rawFilter) {
32
23
  let filter = rawFilter || '';
33
24
  filter = filter.trim();
34
25
  filter = filter.replace(/\s+/, ' ');
@@ -36,41 +27,40 @@ function createFilterPattern(rawFilter) {
36
27
  filter.length === 0 ? filter = '.*?' : filter += '.*';
37
28
  return filter;
38
29
  }
39
- function calculateJsonSizeMb(data) {
30
+ export function calculateJsonSizeMb(data) {
40
31
  const number = JSON.stringify(data).length / 1024 / 1024;
41
32
  return Math.round(number * 100) / 100;
42
33
  }
43
- function __stringify(obj, pretty) {
34
+ export function __stringify(obj, pretty) {
44
35
  if (!obj)
45
36
  return '';
46
37
  if (typeof obj === 'string')
47
38
  return obj;
48
39
  if (Array.isArray(pretty))
49
- return `${(0, object_tools_1._keys)(obj).reduce((carry, key, idx) => {
50
- return carry + ` ${String(key)}: ${__stringify(obj[key], pretty.includes(key))}${idx !== (0, object_tools_1._keys)(obj).length - 1 && ',\n'}`;
40
+ return `${_keys(obj).reduce((carry, key, idx) => {
41
+ return carry + ` ${String(key)}: ${__stringify(obj[key], pretty.includes(key))}${idx !== _keys(obj).length - 1 && ',\n'}`;
51
42
  }, `{\n`)}\n}`;
52
43
  if (pretty)
53
44
  return JSON.stringify(obj, null, 2);
54
45
  return JSON.stringify(obj);
55
46
  }
56
- exports.EmptyObject = Object.freeze({});
57
- exports.EmptyArray = Object.freeze([]);
58
- exports.voidFunction = Object.freeze(async () => {
47
+ export const EmptyObject = Object.freeze({});
48
+ export const EmptyArray = Object.freeze([]);
49
+ export const voidFunction = Object.freeze(async () => {
59
50
  });
60
- exports.functionThatReturnsFalse = Object.freeze(() => false);
61
- exports.functionThatReturnsTrue = Object.freeze(() => true);
62
- const resolveContent = (content, ...param) => {
51
+ export const functionThatReturnsFalse = Object.freeze(() => false);
52
+ export const functionThatReturnsTrue = Object.freeze(() => true);
53
+ export const resolveContent = (content, ...param) => {
63
54
  return typeof content === 'function' ? content(...param) : content;
64
55
  };
65
- exports.resolveContent = resolveContent;
66
- exports.resolveFunctionOrValue = exports.resolveContent;
67
- function exists(item) {
56
+ export const resolveFunctionOrValue = resolveContent;
57
+ export function exists(item) {
68
58
  return item !== undefined && item !== null;
69
59
  }
70
- function freeze(item) {
60
+ export function freeze(item) {
71
61
  return Object.freeze(item);
72
62
  }
73
- const logicalXOR = (a, b) => {
63
+ export const logicalXOR = (a, b) => {
74
64
  return (a && !b) || (!a && b);
75
65
  };
76
- exports.logicalXOR = logicalXOR;
66
+ //# sourceMappingURL=tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.js","sourceRoot":"/Users/tacb0ss/dev/nu-art/beamz/_thunderstorm/ts-common/src/main/","sources":["utils/tools.ts"],"names":[],"mappings":"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"}
package/utils/types.d.ts CHANGED
@@ -1,9 +1,10 @@
1
- import { Default_UniqueKey } from '../db/types';
1
+ import { Default_UniqueKey } from '../db/types.js';
2
2
  export type Primitive = string | number | boolean;
3
3
  export type RecursiveObjectOfPrimitives = {
4
4
  [key: string]: Primitive | RecursiveObjectOfPrimitives | RecursiveArrayOfPrimitives | undefined;
5
5
  };
6
6
  export type RecursiveArrayOfPrimitives = (Primitive | RecursiveObjectOfPrimitives | RecursiveArrayOfPrimitives)[];
7
+ export type AnyPrimitive = Primitive | RecursiveObjectOfPrimitives | RecursiveArrayOfPrimitives;
7
8
  export type CustomOptional<T, K> = {
8
9
  [P in keyof T]?: K;
9
10
  };
@@ -108,10 +109,14 @@ export type DB_Object = DB_BaseObject & {
108
109
  _originDocId?: UniqueId;
109
110
  };
110
111
  export type UniqueId = string;
112
+ export type DBPointer = {
113
+ dbKey: string;
114
+ id: UniqueId;
115
+ };
111
116
  export type PreDB<T extends DB_Object, K extends keyof T = never> = PartialProperties<T, keyof DB_Object | K>;
112
117
  export type OmitDBObject<T extends DB_Object> = Omit<T, keyof DB_Object>;
113
118
  export type IndexKeys<T extends Object, Ks extends keyof T> = {
114
- [K in Ks]: T[K];
119
+ [K in Ks]?: T[K];
115
120
  };
116
121
  export type UniqueParam<Type extends DB_Object, Ks extends keyof PreDB<Type> = Default_UniqueKey> = UniqueId | IndexKeys<Type, Ks>;
117
122
  export type Draftable = {
@@ -121,6 +126,7 @@ export type Draftable = {
121
126
  * call function 'resolveContent(resolvableContentObject)' to receive the content which is T.
122
127
  */
123
128
  export type ResolvableContent<T, K extends any[] = any[]> = T | ((...param: K) => T);
129
+ export type ResolvedContent<T extends ResolvableContent<any, any>> = T extends ResolvableContent<infer R, any> ? R : never;
124
130
  export type Auditable = {
125
131
  _audit?: AuditBy;
126
132
  };
@@ -237,7 +243,7 @@ export type Exact<T> = {
237
243
  export type WithRequired<T, K extends keyof T> = T & {
238
244
  [P in K]-?: T[P];
239
245
  };
240
- export type AsyncVoidFunction = () => Promise<void>;
246
+ export type AsyncVoidFunction<T = void> = () => Promise<T>;
241
247
  declare const brand: unique symbol;
242
248
  export type Brand<T, Brand extends string> = T & {
243
249
  [brand]: Brand;