@leyyo/common 1.2.7 → 1.3.1

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 (289) hide show
  1. package/README.md +395 -3
  2. package/dist/class/index.d.ts +2 -0
  3. package/dist/{list → class}/index.js +1 -1
  4. package/dist/class/index.js.map +1 -0
  5. package/dist/{list → class}/list.d.ts +1 -1
  6. package/dist/class/list.js.map +1 -0
  7. package/dist/{log → class}/logger.instance.d.ts +10 -12
  8. package/dist/class/logger.instance.js +150 -0
  9. package/dist/class/logger.instance.js.map +1 -0
  10. package/dist/common/array.fn.d.ts +46 -0
  11. package/dist/common/array.fn.js +123 -0
  12. package/dist/common/array.fn.js.map +1 -0
  13. package/dist/common/deploy.fn.d.ts +18 -0
  14. package/dist/common/deploy.fn.js +73 -0
  15. package/dist/common/deploy.fn.js.map +1 -0
  16. package/dist/common/enum.fn.d.ts +63 -0
  17. package/dist/common/enum.fn.js +191 -0
  18. package/dist/common/enum.fn.js.map +1 -0
  19. package/dist/common/error.fn.d.ts +91 -0
  20. package/dist/common/error.fn.js +400 -0
  21. package/dist/common/error.fn.js.map +1 -0
  22. package/dist/common/event.fn.d.ts +45 -0
  23. package/dist/common/event.fn.js +160 -0
  24. package/dist/common/event.fn.js.map +1 -0
  25. package/dist/common/exporter.fn.d.ts +7 -0
  26. package/dist/common/exporter.fn.js +49 -0
  27. package/dist/common/exporter.fn.js.map +1 -0
  28. package/dist/common/fqn.fn.d.ts +27 -0
  29. package/dist/common/fqn.fn.js +104 -0
  30. package/dist/common/fqn.fn.js.map +1 -0
  31. package/dist/common/index.d.ts +14 -0
  32. package/dist/{hub → common}/index.js +14 -1
  33. package/dist/common/index.js.map +1 -0
  34. package/dist/common/lifecycle.fn.d.ts +24 -0
  35. package/dist/common/lifecycle.fn.js +135 -0
  36. package/dist/common/lifecycle.fn.js.map +1 -0
  37. package/dist/common/list.fn.d.ts +47 -0
  38. package/dist/common/list.fn.js +122 -0
  39. package/dist/common/list.fn.js.map +1 -0
  40. package/dist/common/loader.fn.d.ts +15 -0
  41. package/dist/common/loader.fn.js +38 -0
  42. package/dist/common/loader.fn.js.map +1 -0
  43. package/dist/common/log.fn.d.ts +21 -0
  44. package/dist/common/log.fn.js +321 -0
  45. package/dist/common/log.fn.js.map +1 -0
  46. package/dist/common/map.fn.d.ts +46 -0
  47. package/dist/common/map.fn.js +123 -0
  48. package/dist/common/map.fn.js.map +1 -0
  49. package/dist/common/opt.fn.d.ts +48 -0
  50. package/dist/common/opt.fn.js +137 -0
  51. package/dist/common/opt.fn.js.map +1 -0
  52. package/dist/common/set.fn.d.ts +46 -0
  53. package/dist/common/set.fn.js +123 -0
  54. package/dist/common/set.fn.js.map +1 -0
  55. package/dist/common/test.fn.d.ts +26 -0
  56. package/dist/common/test.fn.js +81 -0
  57. package/dist/common/test.fn.js.map +1 -0
  58. package/dist/const/index.d.ts +23 -0
  59. package/dist/const/index.js +28 -0
  60. package/dist/const/index.js.map +1 -0
  61. package/dist/enum/index.d.ts +1 -0
  62. package/dist/{deploy → enum}/index.js +1 -1
  63. package/dist/enum/index.js.map +1 -0
  64. package/dist/{log → enum}/log-level.js +2 -2
  65. package/dist/enum/log-level.js.map +1 -0
  66. package/dist/error/caused.error.d.ts +15 -0
  67. package/dist/error/caused.error.js +24 -0
  68. package/dist/error/caused.error.js.map +1 -0
  69. package/dist/error/developer.error.d.ts +24 -0
  70. package/dist/error/developer.error.js +69 -0
  71. package/dist/error/developer.error.js.map +1 -0
  72. package/dist/error/{items/http.error.d.ts → http.error.d.ts} +1 -1
  73. package/dist/error/http.error.js +31 -0
  74. package/dist/error/http.error.js.map +1 -0
  75. package/dist/error/index.d.ts +6 -3
  76. package/dist/error/index.js +6 -3
  77. package/dist/error/index.js.map +1 -1
  78. package/dist/error/{items/invalid-value.error.js → invalid-value.error.js} +6 -2
  79. package/dist/error/invalid-value.error.js.map +1 -0
  80. package/dist/error/leyyo.error.d.ts +87 -0
  81. package/dist/error/leyyo.error.js +259 -0
  82. package/dist/error/leyyo.error.js.map +1 -0
  83. package/dist/error/{items/multiple.error.d.ts → multiple.error.d.ts} +1 -1
  84. package/dist/error/{items/multiple.error.js → multiple.error.js} +5 -4
  85. package/dist/error/multiple.error.js.map +1 -0
  86. package/dist/{util → function}/delay.js +1 -0
  87. package/dist/function/delay.js.map +1 -0
  88. package/dist/function/empty.fn.d.ts +8 -0
  89. package/dist/{util → function}/empty.fn.js +3 -2
  90. package/dist/function/empty.fn.js.map +1 -0
  91. package/dist/function/error-obj.d.ts +8 -0
  92. package/dist/function/error-obj.js +25 -0
  93. package/dist/function/error-obj.js.map +1 -0
  94. package/dist/function/error-text.d.ts +7 -0
  95. package/dist/function/error-text.js +18 -0
  96. package/dist/function/error-text.js.map +1 -0
  97. package/dist/{util → function}/extended-type.d.ts +1 -1
  98. package/dist/{util → function}/extended-type.js +6 -5
  99. package/dist/function/extended-type.js.map +1 -0
  100. package/dist/{util → function}/index.d.ts +3 -4
  101. package/dist/{util → function}/index.js +3 -4
  102. package/dist/function/index.js.map +1 -0
  103. package/dist/{util → function}/is.d.ts +6 -14
  104. package/dist/{util → function}/is.js +24 -22
  105. package/dist/function/is.js.map +1 -0
  106. package/dist/{util → function}/jitter-interval.js +1 -0
  107. package/dist/function/jitter-interval.js.map +1 -0
  108. package/dist/{util → function}/one-or-more.d.ts +1 -1
  109. package/dist/{util → function}/one-or-more.js +1 -0
  110. package/dist/function/one-or-more.js.map +1 -0
  111. package/dist/{util → function}/secure-clone.d.ts +1 -1
  112. package/dist/function/secure-clone.js.map +1 -0
  113. package/dist/function/secure-json.js.map +1 -0
  114. package/dist/index.d.ts +7 -20
  115. package/dist/index.js +7 -22
  116. package/dist/index.js.map +1 -1
  117. package/dist/index.types.d.ts +510 -0
  118. package/dist/{shared/index.types.js → index.types.js} +1 -1
  119. package/dist/index.types.js.map +1 -0
  120. package/dist/loader.d.ts +2 -0
  121. package/dist/loader.js +98 -0
  122. package/dist/loader.js.map +1 -0
  123. package/package.json +5 -3
  124. package/dist/$$leyyo-loader.d.ts +0 -1
  125. package/dist/$$leyyo-loader.js +0 -40
  126. package/dist/$$leyyo-loader.js.map +0 -1
  127. package/dist/deploy/deploy.common.d.ts +0 -34
  128. package/dist/deploy/deploy.common.js +0 -125
  129. package/dist/deploy/deploy.common.js.map +0 -1
  130. package/dist/deploy/index.d.ts +0 -1
  131. package/dist/deploy/index.js.map +0 -1
  132. package/dist/deploy/index.types.d.ts +0 -29
  133. package/dist/deploy/index.types.js +0 -3
  134. package/dist/deploy/index.types.js.map +0 -1
  135. package/dist/error/error.common.d.ts +0 -34
  136. package/dist/error/error.common.js +0 -220
  137. package/dist/error/error.common.js.map +0 -1
  138. package/dist/error/index.const.d.ts +0 -4
  139. package/dist/error/index.const.js +0 -8
  140. package/dist/error/index.const.js.map +0 -1
  141. package/dist/error/index.types.d.ts +0 -109
  142. package/dist/error/index.types.js +0 -3
  143. package/dist/error/index.types.js.map +0 -1
  144. package/dist/error/items/caused.error.d.ts +0 -6
  145. package/dist/error/items/caused.error.js +0 -11
  146. package/dist/error/items/caused.error.js.map +0 -1
  147. package/dist/error/items/developer.error.d.ts +0 -4
  148. package/dist/error/items/developer.error.js +0 -11
  149. package/dist/error/items/developer.error.js.map +0 -1
  150. package/dist/error/items/http.error.js +0 -37
  151. package/dist/error/items/http.error.js.map +0 -1
  152. package/dist/error/items/index.d.ts +0 -6
  153. package/dist/error/items/index.js +0 -23
  154. package/dist/error/items/index.js.map +0 -1
  155. package/dist/error/items/invalid-value.error.js.map +0 -1
  156. package/dist/error/items/leyyo.error.d.ts +0 -60
  157. package/dist/error/items/leyyo.error.js +0 -144
  158. package/dist/error/items/leyyo.error.js.map +0 -1
  159. package/dist/error/items/multiple.error.js.map +0 -1
  160. package/dist/event/event.common.d.ts +0 -80
  161. package/dist/event/event.common.js +0 -308
  162. package/dist/event/event.common.js.map +0 -1
  163. package/dist/event/event.error.d.ts +0 -3
  164. package/dist/event/event.error.js +0 -9
  165. package/dist/event/event.error.js.map +0 -1
  166. package/dist/event/index.d.ts +0 -2
  167. package/dist/event/index.js +0 -19
  168. package/dist/event/index.js.map +0 -1
  169. package/dist/event/index.types.d.ts +0 -265
  170. package/dist/event/index.types.js +0 -3
  171. package/dist/event/index.types.js.map +0 -1
  172. package/dist/hub/hub.channel.d.ts +0 -27
  173. package/dist/hub/hub.channel.js +0 -83
  174. package/dist/hub/hub.channel.js.map +0 -1
  175. package/dist/hub/hub.common.d.ts +0 -27
  176. package/dist/hub/hub.common.js +0 -92
  177. package/dist/hub/hub.common.js.map +0 -1
  178. package/dist/hub/index.d.ts +0 -1
  179. package/dist/hub/index.js.map +0 -1
  180. package/dist/hub/index.types.d.ts +0 -105
  181. package/dist/hub/index.types.js +0 -3
  182. package/dist/hub/index.types.js.map +0 -1
  183. package/dist/leyyo/index.d.ts +0 -1
  184. package/dist/leyyo/index.js +0 -18
  185. package/dist/leyyo/index.js.map +0 -1
  186. package/dist/leyyo/index.types.d.ts +0 -21
  187. package/dist/leyyo/index.types.js +0 -3
  188. package/dist/leyyo/index.types.js.map +0 -1
  189. package/dist/leyyo/leyyo.d.ts +0 -25
  190. package/dist/leyyo/leyyo.js +0 -62
  191. package/dist/leyyo/leyyo.js.map +0 -1
  192. package/dist/list/index.d.ts +0 -2
  193. package/dist/list/index.js.map +0 -1
  194. package/dist/list/index.types.d.ts +0 -26
  195. package/dist/list/index.types.js +0 -3
  196. package/dist/list/index.types.js.map +0 -1
  197. package/dist/list/list.js.map +0 -1
  198. package/dist/log/index.d.ts +0 -4
  199. package/dist/log/index.js +0 -21
  200. package/dist/log/index.js.map +0 -1
  201. package/dist/log/index.types.d.ts +0 -47
  202. package/dist/log/index.types.js +0 -3
  203. package/dist/log/index.types.js.map +0 -1
  204. package/dist/log/log-level.js.map +0 -1
  205. package/dist/log/log.common.d.ts +0 -15
  206. package/dist/log/log.common.js +0 -135
  207. package/dist/log/log.common.js.map +0 -1
  208. package/dist/log/logger.error.d.ts +0 -3
  209. package/dist/log/logger.error.js +0 -9
  210. package/dist/log/logger.error.js.map +0 -1
  211. package/dist/log/logger.instance.js +0 -139
  212. package/dist/log/logger.instance.js.map +0 -1
  213. package/dist/name/index.d.ts +0 -2
  214. package/dist/name/index.js +0 -19
  215. package/dist/name/index.js.map +0 -1
  216. package/dist/name/index.types.d.ts +0 -21
  217. package/dist/name/index.types.js +0 -3
  218. package/dist/name/index.types.js.map +0 -1
  219. package/dist/name/name.common.d.ts +0 -16
  220. package/dist/name/name.common.js +0 -109
  221. package/dist/name/name.common.js.map +0 -1
  222. package/dist/name/name.error.d.ts +0 -3
  223. package/dist/name/name.error.js +0 -9
  224. package/dist/name/name.error.js.map +0 -1
  225. package/dist/opt/index.d.ts +0 -1
  226. package/dist/opt/index.js +0 -18
  227. package/dist/opt/index.js.map +0 -1
  228. package/dist/opt/index.types.d.ts +0 -33
  229. package/dist/opt/index.types.js +0 -3
  230. package/dist/opt/index.types.js.map +0 -1
  231. package/dist/opt/opt.common.d.ts +0 -15
  232. package/dist/opt/opt.common.js +0 -93
  233. package/dist/opt/opt.common.js.map +0 -1
  234. package/dist/repo/index.d.ts +0 -1
  235. package/dist/repo/index.js +0 -18
  236. package/dist/repo/index.js.map +0 -1
  237. package/dist/repo/index.types.d.ts +0 -104
  238. package/dist/repo/index.types.js +0 -3
  239. package/dist/repo/index.types.js.map +0 -1
  240. package/dist/repo/repo.common.d.ts +0 -41
  241. package/dist/repo/repo.common.js +0 -146
  242. package/dist/repo/repo.common.js.map +0 -1
  243. package/dist/server.d.ts +0 -1
  244. package/dist/server.js +0 -5
  245. package/dist/server.js.map +0 -1
  246. package/dist/shared/index.d.ts +0 -5
  247. package/dist/shared/index.enum.d.ts +0 -12
  248. package/dist/shared/index.enum.js +0 -3
  249. package/dist/shared/index.enum.js.map +0 -1
  250. package/dist/shared/index.fqn.d.ts +0 -3
  251. package/dist/shared/index.fqn.js +0 -3
  252. package/dist/shared/index.fqn.js.map +0 -1
  253. package/dist/shared/index.js +0 -22
  254. package/dist/shared/index.js.map +0 -1
  255. package/dist/shared/index.json.d.ts +0 -33
  256. package/dist/shared/index.json.js +0 -3
  257. package/dist/shared/index.json.js.map +0 -1
  258. package/dist/shared/index.loader.d.ts +0 -5
  259. package/dist/shared/index.loader.js +0 -3
  260. package/dist/shared/index.loader.js.map +0 -1
  261. package/dist/shared/index.types.d.ts +0 -168
  262. package/dist/shared/index.types.js.map +0 -1
  263. package/dist/util/$define-enum.d.ts +0 -18
  264. package/dist/util/$define-enum.js +0 -28
  265. package/dist/util/$define-enum.js.map +0 -1
  266. package/dist/util/$define-error.d.ts +0 -9
  267. package/dist/util/$define-error.js +0 -25
  268. package/dist/util/$define-error.js.map +0 -1
  269. package/dist/util/$loader.d.ts +0 -18
  270. package/dist/util/$loader.js +0 -40
  271. package/dist/util/$loader.js.map +0 -1
  272. package/dist/util/delay.js.map +0 -1
  273. package/dist/util/empty.fn.d.ts +0 -8
  274. package/dist/util/empty.fn.js.map +0 -1
  275. package/dist/util/extended-type.js.map +0 -1
  276. package/dist/util/index.js.map +0 -1
  277. package/dist/util/is.js.map +0 -1
  278. package/dist/util/jitter-interval.js.map +0 -1
  279. package/dist/util/one-or-more.js.map +0 -1
  280. package/dist/util/secure-clone.js.map +0 -1
  281. package/dist/util/secure-json.js.map +0 -1
  282. /package/dist/{list → class}/list.js +0 -0
  283. /package/dist/{log → enum}/log-level.d.ts +0 -0
  284. /package/dist/error/{items/invalid-value.error.d.ts → invalid-value.error.d.ts} +0 -0
  285. /package/dist/{util → function}/delay.d.ts +0 -0
  286. /package/dist/{util → function}/jitter-interval.d.ts +0 -0
  287. /package/dist/{util → function}/secure-clone.js +0 -0
  288. /package/dist/{util → function}/secure-json.d.ts +0 -0
  289. /package/dist/{util → function}/secure-json.js +0 -0
@@ -0,0 +1,123 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.newRepoArray = newRepoArray;
4
+ exports.removeRepoArray = removeRepoArray;
5
+ exports.clearRepoArray = clearRepoArray;
6
+ exports.listRepoArrays = listRepoArrays;
7
+ exports.printRepoArrays = printRepoArrays;
8
+ const function_1 = require("../function");
9
+ const error_1 = require("../error");
10
+ const internal_1 = require("../internal");
11
+ // region properties
12
+ /**
13
+ * Internal items which stores collections
14
+ * */
15
+ const items = new Map();
16
+ /**
17
+ * Internal volatiles repo which could be cleared after lifecycle run
18
+ * */
19
+ const volatiles = new Set();
20
+ /**
21
+ * Identifier of file
22
+ * */
23
+ const where = `${internal_1.FQN}.ArrayFn`;
24
+ // endregion properties
25
+ // noinspection JSUnusedGlobalSymbols
26
+ /**
27
+ * Create new array
28
+ *
29
+ * @param {string} name - name of collection
30
+ * @param {boolean} volatile - if yes: it will be removed after lifecycle run
31
+ * @return {Array<any>}
32
+ * */
33
+ function newRepoArray(name, volatile) {
34
+ if (!(0, function_1.isText)(name)) {
35
+ throw new error_1.DeveloperError('Invalid new array name', 'newArray#01', where);
36
+ }
37
+ const item = [];
38
+ const code = Symbol.for(name.split('#').join(''));
39
+ items.set(code, item);
40
+ if (volatile) {
41
+ volatiles.add(code);
42
+ }
43
+ return item;
44
+ }
45
+ // noinspection JSUnusedGlobalSymbols
46
+ /**
47
+ * Remove array by given key
48
+ *
49
+ * @param {symbol} key - key of collection
50
+ * @return {number}
51
+ *
52
+ * Return possibilities:
53
+ * - `-2`: key is not valid symbol
54
+ * - `-1`: key does not exist
55
+ * - `>= 0`: length of removed items in collection
56
+ * */
57
+ function removeRepoArray(key) {
58
+ const cleared = clearRepoArray(key);
59
+ if (cleared >= 0) {
60
+ items.delete(key);
61
+ if (volatiles.has(key)) {
62
+ volatiles.delete(key);
63
+ }
64
+ }
65
+ return cleared;
66
+ }
67
+ /**
68
+ * Clear array by given key
69
+ *
70
+ * @param {symbol} key - key of collection
71
+ * @return {number}
72
+ *
73
+ * Return possibilities:
74
+ * - `-2`: key is not valid symbol
75
+ * - `-1`: key does not exist
76
+ * - `>= 0`: length of cleared items in collection
77
+ * */
78
+ function clearRepoArray(key) {
79
+ if (typeof key !== 'symbol') {
80
+ return -2;
81
+ }
82
+ if (!items.has(key)) {
83
+ return -1;
84
+ }
85
+ const item = items.get(key);
86
+ const length = item.length;
87
+ item.splice(0, length);
88
+ return length;
89
+ }
90
+ // noinspection JSUnusedGlobalSymbols
91
+ /**
92
+ * List all array keys
93
+ *
94
+ * @return {Array<symbol>}
95
+ * */
96
+ function listRepoArrays() {
97
+ return Array.from(items.keys());
98
+ }
99
+ // noinspection JSUnusedGlobalSymbols
100
+ /**
101
+ * Print all arrays
102
+ *
103
+ * @return {Record} - as {key: length of collection}
104
+ *
105
+ * Note: if stringified symbol is duplicated, add index postfix with `#` symbol
106
+ * */
107
+ function printRepoArrays() {
108
+ const result = {};
109
+ let index = 0;
110
+ for (const [sym, item] of items.entries()) {
111
+ const key = sym.description;
112
+ if (result[key] === undefined) {
113
+ result[key] = item.length;
114
+ index = 0;
115
+ }
116
+ else {
117
+ index++;
118
+ result[`${key}#${index}`] = item.length;
119
+ }
120
+ }
121
+ return result;
122
+ }
123
+ //# sourceMappingURL=array.fn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array.fn.js","sourceRoot":"","sources":["../../src/common/array.fn.ts"],"names":[],"mappings":";;AA6BA,oCAWC;AAcD,0CASC;AAaD,wCAWC;AAQD,wCAEC;AAUD,0CAeC;AA1HD,0CAAmC;AACnC,oCAAwC;AACxC,0CAAgC;AAEhC,oBAAoB;AACpB;;KAEK;AACL,MAAM,KAAK,GAAG,IAAI,GAAG,EAA0B,CAAC;AAEhD;;KAEK;AACL,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;AAEpC;;KAEK;AACL,MAAM,KAAK,GAAG,GAAG,cAAG,UAAU,CAAC;AAC/B,uBAAuB;AAEvB,qCAAqC;AACrC;;;;;;KAMK;AACL,SAAgB,YAAY,CAAI,IAAY,EAAE,QAAkB;IAC5D,IAAI,CAAC,IAAA,iBAAM,EAAC,IAAI,CAAC,EAAE,CAAC;QAChB,MAAM,IAAI,sBAAc,CAAC,wBAAwB,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;IAC7E,CAAC;IACD,MAAM,IAAI,GAAG,EAAc,CAAC;IAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAClD,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACtB,IAAI,QAAQ,EAAE,CAAC;QACX,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,qCAAqC;AACrC;;;;;;;;;;KAUK;AACL,SAAgB,eAAe,CAAC,GAAW;IACvC,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;QACf,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAClB,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;IACL,CAAC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC;AAED;;;;;;;;;;KAUK;AACL,SAAgB,cAAc,CAAC,GAAW;IACtC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC1B,OAAO,CAAC,CAAC,CAAC;IACd,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QAClB,OAAO,CAAC,CAAC,CAAC;IACd,CAAC;IACD,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC3B,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACvB,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,qCAAqC;AACrC;;;;KAIK;AACL,SAAgB,cAAc;IAC1B,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;AACpC,CAAC;AAED,qCAAqC;AACrC;;;;;;KAMK;AACL,SAAgB,eAAe;IAC3B,MAAM,MAAM,GAAG,EAA4B,CAAC;IAC5C,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;QACxC,MAAM,GAAG,GAAG,GAAG,CAAC,WAAW,CAAC;QAC5B,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;YAC1B,KAAK,GAAG,CAAC,CAAC;QACd,CAAC;aACI,CAAC;YACF,KAAK,EAAE,CAAC;YACR,MAAM,CAAC,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;QAC5C,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { Fnc } from "../index.types";
2
+ /**
3
+ * Wait deploy of a component
4
+ *
5
+ * @param {string} name - name of component
6
+ * @param {function} callback - callback for creator of component, if it completes it, this callback will be called
7
+ * */
8
+ export declare function waitDeploy(name: string, callback: Fnc): void;
9
+ /**
10
+ * Complete deploy of a component
11
+ * - It should be called by owner of component
12
+ *
13
+ *
14
+ *
15
+ * @param {string} name - name of component
16
+ * @param {...Array} values - They will be sent to callback of waiting component, {@link waitDeploy}
17
+ * */
18
+ export declare function completeDeploy(name: string, ...values: Array<unknown>): void;
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.waitDeploy = waitDeploy;
4
+ exports.completeDeploy = completeDeploy;
5
+ const function_1 = require("../function");
6
+ const error_1 = require("../error");
7
+ const internal_1 = require("../internal");
8
+ const map_fn_1 = require("./map.fn");
9
+ // region properties
10
+ const where = `${internal_1.FQN}.DeployFn`;
11
+ const waitingCallbacks = (0, map_fn_1.newRepoMap)(`${where}.waitingCallbacks`);
12
+ const alreadyDeployed = (0, map_fn_1.newRepoMap)(`${where}.alreadyDeployed`);
13
+ // endregion properties
14
+ // noinspection JSUnusedGlobalSymbols
15
+ /**
16
+ * Wait deploy of a component
17
+ *
18
+ * @param {string} name - name of component
19
+ * @param {function} callback - callback for creator of component, if it completes it, this callback will be called
20
+ * */
21
+ function waitDeploy(name, callback) {
22
+ if (!(0, function_1.isText)(name)) {
23
+ throw new error_1.DeveloperError('Invalid event name', 'onDeployed#01', where);
24
+ }
25
+ if (typeof callback !== 'function') {
26
+ throw new error_1.DeveloperError('Invalid event callback', 'onDeployed#02', where);
27
+ }
28
+ if (alreadyDeployed.has(name)) {
29
+ try {
30
+ callback(...alreadyDeployed.get(name));
31
+ }
32
+ catch (e) {
33
+ new error_1.DeveloperError('Raised callback run', 'onDeployed#03', where).log(e);
34
+ }
35
+ return;
36
+ }
37
+ if (!waitingCallbacks.has(name)) {
38
+ waitingCallbacks.set(name, []);
39
+ }
40
+ waitingCallbacks.get(name).push(callback);
41
+ }
42
+ // noinspection JSUnusedGlobalSymbols
43
+ /**
44
+ * Complete deploy of a component
45
+ * - It should be called by owner of component
46
+ *
47
+ *
48
+ *
49
+ * @param {string} name - name of component
50
+ * @param {...Array} values - They will be sent to callback of waiting component, {@link waitDeploy}
51
+ * */
52
+ function completeDeploy(name, ...values) {
53
+ if (!(0, function_1.isText)(name)) {
54
+ throw new error_1.DeveloperError('Invalid event name', 'onDeployed#04', where);
55
+ }
56
+ const isNew = !alreadyDeployed.has(name);
57
+ alreadyDeployed.set(name, values);
58
+ if (isNew) {
59
+ if (waitingCallbacks.has(name)) {
60
+ const callbacks = waitingCallbacks.get(name);
61
+ waitingCallbacks.delete(name);
62
+ callbacks.forEach(callback => {
63
+ try {
64
+ callback(...values);
65
+ }
66
+ catch (e) {
67
+ new error_1.DeveloperError('Raised callback run', 'onDeployed#05', where).log(e);
68
+ }
69
+ });
70
+ }
71
+ }
72
+ }
73
+ //# sourceMappingURL=deploy.fn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploy.fn.js","sourceRoot":"","sources":["../../src/common/deploy.fn.ts"],"names":[],"mappings":";;AAmBA,gCAoBC;AAYD,wCAoBC;AAtED,0CAAmC;AACnC,oCAAwC;AACxC,0CAAgC;AAChC,qCAAoC;AAEpC,oBAAoB;AACpB,MAAM,KAAK,GAAG,GAAG,cAAG,WAAW,CAAC;AAChC,MAAM,gBAAgB,GAAG,IAAA,mBAAU,EAAqB,GAAG,KAAK,mBAAmB,CAAC,CAAC;AACrF,MAAM,eAAe,GAAG,IAAA,mBAAU,EAAyB,GAAG,KAAK,kBAAkB,CAAC,CAAC;AACvF,uBAAuB;AAEvB,qCAAqC;AACrC;;;;;KAKK;AACL,SAAgB,UAAU,CAAC,IAAY,EAAE,QAAa;IAClD,IAAI,CAAC,IAAA,iBAAM,EAAC,IAAI,CAAC,EAAE,CAAC;QAChB,MAAM,IAAI,sBAAc,CAAC,oBAAoB,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;IAC3E,CAAC;IACD,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;QACjC,MAAM,IAAI,sBAAc,CAAC,wBAAwB,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;IAC/E,CAAC;IACD,IAAI,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,IAAI,CAAC;YACD,QAAQ,CAAC,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,IAAI,sBAAc,CAAC,qBAAqB,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC7E,CAAC;QACD,OAAO;IACX,CAAC;IAED,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACnC,CAAC;IACD,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC9C,CAAC;AACD,qCAAqC;AAErC;;;;;;;;KAQK;AACL,SAAgB,cAAc,CAAC,IAAY,EAAE,GAAG,MAAsB;IAClE,IAAI,CAAC,IAAA,iBAAM,EAAC,IAAI,CAAC,EAAE,CAAC;QAChB,MAAM,IAAI,sBAAc,CAAC,oBAAoB,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;IAC3E,CAAC;IACD,MAAM,KAAK,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACzC,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAElC,IAAI,KAAK,EAAE,CAAC;QACR,IAAI,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,MAAM,SAAS,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC7C,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC9B,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;gBACzB,IAAI,CAAC;oBACD,QAAQ,CAAC,GAAG,MAAM,CAAC,CAAC;gBACxB,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACT,IAAI,sBAAc,CAAC,qBAAqB,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC7E,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC;IACL,CAAC;AACL,CAAC"}
@@ -0,0 +1,63 @@
1
+ import { EnumData, EnumDefineEagerOpt, EnumDefineLazyOpt, EnumItem } from "../index.types";
2
+ /**
3
+ * Define an enumeration as eager (with data)
4
+ *
5
+ * Options:
6
+ * - classic enumeration as `enum name {...}`
7
+ * - literal enumeration as `[...]`
8
+ *
9
+ * @param {(EnumData)} data - map or literal readonly array
10
+ * @param {EnumDefineEagerOpt} opt - enum options
11
+ * */
12
+ export declare function defineEnum(data: EnumData, opt: EnumDefineEagerOpt): void;
13
+ /**
14
+ * Define an enumeration as lazy (with path)
15
+ *
16
+ * Options:
17
+ * - classic enumeration as `enum name {...}`
18
+ * - literal enumeration as `[...]`
19
+ *
20
+ * @param {EnumDefineLazyOpt} opt - enum options
21
+ * */
22
+ export declare function defineLazyEnum(opt: EnumDefineLazyOpt): void;
23
+ /**
24
+ * Check enum defined as lazy, by name
25
+ * Note:
26
+ * - Enum's mode will be shifted lazy to eager after loaded
27
+ *
28
+ * @param {string} name - enum name
29
+ * @return {boolean}
30
+ * */
31
+ export declare function isEnumLazy(name: string): boolean;
32
+ /**
33
+ * Check enum defined as eager, by name
34
+ *
35
+ * @param {string} name - enum name
36
+ * @return {boolean}
37
+ * */
38
+ export declare function isEnumEager(name: string): boolean;
39
+ /**
40
+ * Check enum defined or not, by name
41
+ *
42
+ * @param {string} name - enum name
43
+ * @return {boolean}
44
+ * */
45
+ export declare function isEnumDefined(name: string): boolean;
46
+ /**
47
+ * Get enum by name
48
+ * Note:
49
+ * - Enum may be lazy mode, so it has lazy paths without data
50
+ *
51
+ * @param {string} name - enum name
52
+ * @return {EnumItem}
53
+ * */
54
+ export declare function getEnum(name: string): EnumItem;
55
+ /**
56
+ * Load lazy enum by name
57
+ * Note:
58
+ * - Enum must be exported as `foretell`
59
+ *
60
+ * @param {string} name - name of enum
61
+ * @return {Promise<EnumItem>}
62
+ * */
63
+ export declare function getLazyEnum(name: string): Promise<EnumItem>;
@@ -0,0 +1,191 @@
1
+ "use strict";
2
+ // noinspection JSUnusedGlobalSymbols
3
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
4
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
5
+ return new (P || (P = Promise))(function (resolve, reject) {
6
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
7
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
8
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
9
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
10
+ });
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.defineEnum = defineEnum;
14
+ exports.defineLazyEnum = defineLazyEnum;
15
+ exports.isEnumLazy = isEnumLazy;
16
+ exports.isEnumEager = isEnumEager;
17
+ exports.isEnumDefined = isEnumDefined;
18
+ exports.getEnum = getEnum;
19
+ exports.getLazyEnum = getLazyEnum;
20
+ const function_1 = require("../function");
21
+ const const_1 = require("../const");
22
+ const internal_1 = require("../internal");
23
+ const map_fn_1 = require("./map.fn");
24
+ const set_fn_1 = require("./set.fn");
25
+ const error_1 = require("../error");
26
+ // region properties
27
+ const where = `${internal_1.FQN}.EnumFn`;
28
+ const items = (0, set_fn_1.newRepoSet)(`${where}.items`);
29
+ const names = (0, map_fn_1.newRepoMap)(`${where}.names`);
30
+ // endregion properties
31
+ /**
32
+ * Define an enumeration as eager (with data)
33
+ *
34
+ * Options:
35
+ * - classic enumeration as `enum name {...}`
36
+ * - literal enumeration as `[...]`
37
+ *
38
+ * @param {(EnumData)} data - map or literal readonly array
39
+ * @param {EnumDefineEagerOpt} opt - enum options
40
+ * */
41
+ function defineEnum(data, opt) {
42
+ if (!((0, function_1.isFilledObj)(data) || (0, function_1.isFilledArr)(data))) {
43
+ throw new error_1.DeveloperError('Invalid enum data', 'onDeployed#01', where);
44
+ }
45
+ if (!(0, function_1.isFilledObj)(opt)) {
46
+ throw new error_1.DeveloperError('Invalid enum options', 'onDeployed#01', where);
47
+ }
48
+ if (!(0, function_1.isText)(opt.name)) {
49
+ throw new error_1.DeveloperError('Invalid enum name', 'onDeployed#01', where);
50
+ }
51
+ if (isAlreadyDefined(opt.name, data)) {
52
+ return;
53
+ }
54
+ const type = Array.isArray(data) ? 'literal' : 'map';
55
+ items.add(data);
56
+ names.set(opt.name, Object.assign(Object.assign({}, opt), { mode: 'eager', type, data }));
57
+ data[const_1.LY_ENUM_NAME] = opt.name;
58
+ if ((0, function_1.isFilledObj)(opt.alt)) {
59
+ data[const_1.LY_ENUM_ALT] = opt.alt;
60
+ }
61
+ }
62
+ /**
63
+ * Check conflict case
64
+ *
65
+ * @param {string} name - enum name
66
+ * @param {EnumData} data - enum object or literals
67
+ * @return {boolean} - if yes: it was already defined
68
+ * */
69
+ function isAlreadyDefined(name, data) {
70
+ return data[const_1.LY_ENUM_NAME] && items.has(data) && names.has(name);
71
+ }
72
+ /**
73
+ * Define an enumeration as lazy (with path)
74
+ *
75
+ * Options:
76
+ * - classic enumeration as `enum name {...}`
77
+ * - literal enumeration as `[...]`
78
+ *
79
+ * @param {EnumDefineLazyOpt} opt - enum options
80
+ * */
81
+ function defineLazyEnum(opt) {
82
+ if (!(0, function_1.isFilledObj)(opt)) {
83
+ throw new error_1.DeveloperError('Invalid enum options', 'onDeployed#01', where);
84
+ }
85
+ if (!(opt.lazyData instanceof Promise)) {
86
+ throw new error_1.DeveloperError('Invalid enum load path', 'onDeployed#01', where);
87
+ }
88
+ names.set(opt.name, Object.assign(Object.assign({}, opt), { mode: 'lazy' }));
89
+ }
90
+ /**
91
+ * Check enum defined as lazy, by name
92
+ * Note:
93
+ * - Enum's mode will be shifted lazy to eager after loaded
94
+ *
95
+ * @param {string} name - enum name
96
+ * @return {boolean}
97
+ * */
98
+ function isEnumLazy(name) {
99
+ var _a;
100
+ return ((_a = getEnum(name)) === null || _a === void 0 ? void 0 : _a.mode) === 'lazy';
101
+ }
102
+ /**
103
+ * Check enum defined as eager, by name
104
+ *
105
+ * @param {string} name - enum name
106
+ * @return {boolean}
107
+ * */
108
+ function isEnumEager(name) {
109
+ var _a;
110
+ return ((_a = getEnum(name)) === null || _a === void 0 ? void 0 : _a.mode) === 'eager';
111
+ }
112
+ /**
113
+ * Check enum defined or not, by name
114
+ *
115
+ * @param {string} name - enum name
116
+ * @return {boolean}
117
+ * */
118
+ function isEnumDefined(name) {
119
+ return !!getEnum(name);
120
+ }
121
+ /**
122
+ * Get enum by name
123
+ * Note:
124
+ * - Enum may be lazy mode, so it has lazy paths without data
125
+ *
126
+ * @param {string} name - enum name
127
+ * @return {EnumItem}
128
+ * */
129
+ function getEnum(name) {
130
+ if (!(0, function_1.isText)(name)) {
131
+ return undefined;
132
+ }
133
+ if (!names.has(name)) {
134
+ return undefined;
135
+ }
136
+ return names.get(name);
137
+ }
138
+ /**
139
+ * Load lazy enum by name
140
+ * Note:
141
+ * - Enum must be exported as `foretell`
142
+ *
143
+ * @param {string} name - name of enum
144
+ * @return {Promise<EnumItem>}
145
+ * */
146
+ function getLazyEnum(name) {
147
+ return __awaiter(this, void 0, void 0, function* () {
148
+ if (!(0, function_1.isText)(name)) {
149
+ return undefined;
150
+ }
151
+ if (!names.has(name)) {
152
+ return undefined;
153
+ }
154
+ const item = names.get(name);
155
+ if (item.mode === 'eager') {
156
+ return item;
157
+ }
158
+ try {
159
+ item.data = yield item.lazyData;
160
+ if (item.data) {
161
+ if (isAlreadyDefined(name, item.data)) {
162
+ delete item.lazyData;
163
+ delete item.lazyAlt;
164
+ return item;
165
+ }
166
+ item.data[const_1.LY_ENUM_NAME] = name;
167
+ item.mode = 'eager';
168
+ item.type = Array.isArray(item.data) ? 'literal' : 'map';
169
+ }
170
+ }
171
+ catch (e) {
172
+ new error_1.DeveloperError('Raised callback run', 'optCheck#01', where).log(e);
173
+ }
174
+ if (item.data && item.lazyAlt) {
175
+ try {
176
+ item.alt = yield item.lazyAlt;
177
+ delete item.lazyAlt;
178
+ if (item.alt) {
179
+ item.data[const_1.LY_ENUM_ALT] = item.alt;
180
+ }
181
+ }
182
+ catch (e) {
183
+ new error_1.DeveloperError('Raised callback run', 'optCheck#01', where).log(e);
184
+ }
185
+ }
186
+ delete item.lazyData;
187
+ delete item.lazyAlt;
188
+ return item;
189
+ });
190
+ }
191
+ //# sourceMappingURL=enum.fn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enum.fn.js","sourceRoot":"","sources":["../../src/common/enum.fn.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,91 @@
1
+ import { ClassLike, ErrorDefineEagerOpt, ErrorDefineLazyOpt, ErrorItem, LeyyoErrorLike, LeyyoStackLike, Opt } from "../index.types";
2
+ /**
3
+ * Define an error
4
+ *
5
+ * @param {ClassLike} clazz - error class
6
+ * @param {ErrorDefineEagerOpt} options - options
7
+ * */
8
+ export declare function defineError(clazz: ClassLike, options: ErrorDefineEagerOpt): void;
9
+ /**
10
+ * Define an error as lazy (with path)
11
+ *
12
+ * @param {ErrorDefineLazyOpt} opt - error options
13
+ * */
14
+ export declare function defineLazyError(opt: ErrorDefineLazyOpt): void;
15
+ /**
16
+ * Check error defined as lazy, by name
17
+ * Note:
18
+ * - Error's mode will be shifted lazy to eager after loaded
19
+ *
20
+ * @param {string} name - error name
21
+ * @return {boolean}
22
+ * */
23
+ export declare function isErrorLazy(name: string): boolean;
24
+ /**
25
+ * Check error defined as eager, by name
26
+ *
27
+ * @param {string} name - error name
28
+ * @return {boolean}
29
+ * */
30
+ export declare function isErrorEager(name: string): boolean;
31
+ /**
32
+ * Check error defined or not, by name
33
+ *
34
+ * @param {string} name - error name
35
+ * @return {boolean}
36
+ * */
37
+ export declare function isErrorDefined(name: string): boolean;
38
+ /**
39
+ * Get error by name
40
+ * Note:
41
+ * - Enum may be lazy mode, so it has lazy paths without class
42
+ *
43
+ * @param {string} name - error name
44
+ * @return {EnumItem}
45
+ * */
46
+ export declare function getError(name: string): ErrorItem;
47
+ /**
48
+ * Load lazy error by name
49
+ * Note:
50
+ * - Error must be exported as `foretell`
51
+ *
52
+ * @param {string} name - name of error
53
+ * @return {Promise<EnumItem>}
54
+ * */
55
+ export declare function getLazyError(name: string): Promise<ErrorItem>;
56
+ /**
57
+ * It will be called when an error raised
58
+ * */
59
+ export declare function emitError(err: Error): void;
60
+ /**
61
+ * Build error stack
62
+ *
63
+ * @param {Error} source
64
+ * @param {boolean?} force
65
+ * */
66
+ export declare function errorStack(source: LeyyoStackLike, force?: boolean): void;
67
+ /**
68
+ * Transform error as a bare object without name and message
69
+ *
70
+ * @param {Error} err - error instance
71
+ * @param {Opt} existing - existing parameters
72
+ * @return {Opt?} - bare error object
73
+ * */
74
+ export declare function toErrorJsonBasic(err: Error, existing?: Opt): Opt;
75
+ /**
76
+ * Transform error as a bare object with name and message
77
+ *
78
+ * @param {Error} err - error instance
79
+ * @param {Opt} existing - existing parameters
80
+ * @return {Opt?} - bare error object
81
+ * */
82
+ export declare function toErrorJsonFull(err: Error, existing: Opt): Opt;
83
+ /**
84
+ * Cast a native error to given error class
85
+ *
86
+ * @param {function} clazz - new error class
87
+ * @param {Error} e - native error instance
88
+ * @param {Opt?} params - params for error
89
+ * @return {LeyyoErrorLike} - new error instance
90
+ * */
91
+ export declare function errorCast<E extends LeyyoErrorLike>(clazz: ClassLike, e: Error, params?: Opt): E;