@leyyo/common 1.2.6 → 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 (282) hide show
  1. package/README.md +395 -3
  2. package/dist/class/index.d.ts +2 -0
  3. package/dist/{opt → class}/index.js +2 -1
  4. package/dist/class/index.js.map +1 -0
  5. package/dist/class/list.d.ts +13 -0
  6. package/dist/class/list.js +37 -0
  7. package/dist/class/list.js.map +1 -0
  8. package/dist/{log → class}/logger.instance.d.ts +10 -12
  9. package/dist/class/logger.instance.js +150 -0
  10. package/dist/class/logger.instance.js.map +1 -0
  11. package/dist/common/array.fn.d.ts +46 -0
  12. package/dist/common/array.fn.js +123 -0
  13. package/dist/common/array.fn.js.map +1 -0
  14. package/dist/common/deploy.fn.d.ts +18 -0
  15. package/dist/common/deploy.fn.js +73 -0
  16. package/dist/common/deploy.fn.js.map +1 -0
  17. package/dist/common/enum.fn.d.ts +63 -0
  18. package/dist/common/enum.fn.js +191 -0
  19. package/dist/common/enum.fn.js.map +1 -0
  20. package/dist/common/error.fn.d.ts +91 -0
  21. package/dist/common/error.fn.js +400 -0
  22. package/dist/common/error.fn.js.map +1 -0
  23. package/dist/common/event.fn.d.ts +45 -0
  24. package/dist/common/event.fn.js +160 -0
  25. package/dist/common/event.fn.js.map +1 -0
  26. package/dist/common/exporter.fn.d.ts +7 -0
  27. package/dist/common/exporter.fn.js +49 -0
  28. package/dist/common/exporter.fn.js.map +1 -0
  29. package/dist/common/fqn.fn.d.ts +27 -0
  30. package/dist/common/fqn.fn.js +104 -0
  31. package/dist/common/fqn.fn.js.map +1 -0
  32. package/dist/common/index.d.ts +14 -0
  33. package/dist/{hub → common}/index.js +14 -1
  34. package/dist/common/index.js.map +1 -0
  35. package/dist/common/lifecycle.fn.d.ts +24 -0
  36. package/dist/common/lifecycle.fn.js +135 -0
  37. package/dist/common/lifecycle.fn.js.map +1 -0
  38. package/dist/common/list.fn.d.ts +47 -0
  39. package/dist/common/list.fn.js +122 -0
  40. package/dist/common/list.fn.js.map +1 -0
  41. package/dist/common/loader.fn.d.ts +15 -0
  42. package/dist/common/loader.fn.js +38 -0
  43. package/dist/common/loader.fn.js.map +1 -0
  44. package/dist/common/log.fn.d.ts +21 -0
  45. package/dist/common/log.fn.js +321 -0
  46. package/dist/common/log.fn.js.map +1 -0
  47. package/dist/common/map.fn.d.ts +46 -0
  48. package/dist/common/map.fn.js +123 -0
  49. package/dist/common/map.fn.js.map +1 -0
  50. package/dist/common/opt.fn.d.ts +48 -0
  51. package/dist/common/opt.fn.js +137 -0
  52. package/dist/common/opt.fn.js.map +1 -0
  53. package/dist/common/set.fn.d.ts +46 -0
  54. package/dist/common/set.fn.js +123 -0
  55. package/dist/common/set.fn.js.map +1 -0
  56. package/dist/common/test.fn.d.ts +26 -0
  57. package/dist/common/test.fn.js +81 -0
  58. package/dist/common/test.fn.js.map +1 -0
  59. package/dist/const/index.d.ts +23 -0
  60. package/dist/const/index.js +28 -0
  61. package/dist/const/index.js.map +1 -0
  62. package/dist/enum/index.d.ts +1 -0
  63. package/dist/{deploy → enum}/index.js +1 -1
  64. package/dist/enum/index.js.map +1 -0
  65. package/dist/{log → enum}/log-level.js +2 -2
  66. package/dist/enum/log-level.js.map +1 -0
  67. package/dist/error/caused.error.d.ts +15 -0
  68. package/dist/error/caused.error.js +24 -0
  69. package/dist/error/caused.error.js.map +1 -0
  70. package/dist/error/developer.error.d.ts +24 -0
  71. package/dist/error/developer.error.js +69 -0
  72. package/dist/error/developer.error.js.map +1 -0
  73. package/dist/error/{items/http.error.d.ts → http.error.d.ts} +1 -1
  74. package/dist/error/http.error.js +31 -0
  75. package/dist/error/http.error.js.map +1 -0
  76. package/dist/error/index.d.ts +6 -3
  77. package/dist/error/index.js +6 -3
  78. package/dist/error/index.js.map +1 -1
  79. package/dist/error/{items/invalid-value.error.js → invalid-value.error.js} +6 -2
  80. package/dist/error/invalid-value.error.js.map +1 -0
  81. package/dist/error/leyyo.error.d.ts +87 -0
  82. package/dist/error/leyyo.error.js +259 -0
  83. package/dist/error/leyyo.error.js.map +1 -0
  84. package/dist/error/{items/multiple.error.d.ts → multiple.error.d.ts} +1 -1
  85. package/dist/error/{items/multiple.error.js → multiple.error.js} +5 -4
  86. package/dist/error/multiple.error.js.map +1 -0
  87. package/dist/{util → function}/delay.js +1 -0
  88. package/dist/function/delay.js.map +1 -0
  89. package/dist/function/empty.fn.d.ts +8 -0
  90. package/dist/{util → function}/empty.fn.js +3 -2
  91. package/dist/function/empty.fn.js.map +1 -0
  92. package/dist/function/error-obj.d.ts +8 -0
  93. package/dist/function/error-obj.js +25 -0
  94. package/dist/function/error-obj.js.map +1 -0
  95. package/dist/function/error-text.d.ts +7 -0
  96. package/dist/function/error-text.js +18 -0
  97. package/dist/function/error-text.js.map +1 -0
  98. package/dist/function/extended-type.d.ts +8 -0
  99. package/dist/function/extended-type.js +56 -0
  100. package/dist/function/extended-type.js.map +1 -0
  101. package/dist/{util → function}/index.d.ts +4 -4
  102. package/dist/{util → function}/index.js +4 -4
  103. package/dist/function/index.js.map +1 -0
  104. package/dist/{util → function}/is.d.ts +12 -13
  105. package/dist/function/is.js +89 -0
  106. package/dist/function/is.js.map +1 -0
  107. package/dist/{util → function}/jitter-interval.js +1 -0
  108. package/dist/function/jitter-interval.js.map +1 -0
  109. package/dist/{util → function}/one-or-more.d.ts +1 -1
  110. package/dist/{util → function}/one-or-more.js +1 -0
  111. package/dist/function/one-or-more.js.map +1 -0
  112. package/dist/{util → function}/secure-clone.d.ts +1 -1
  113. package/dist/function/secure-clone.js.map +1 -0
  114. package/dist/function/secure-json.js.map +1 -0
  115. package/dist/index.d.ts +7 -19
  116. package/dist/index.js +7 -21
  117. package/dist/index.js.map +1 -1
  118. package/dist/index.types.d.ts +510 -0
  119. package/dist/{shared/index.types.js → index.types.js} +1 -1
  120. package/dist/index.types.js.map +1 -0
  121. package/dist/loader.d.ts +2 -0
  122. package/dist/loader.js +98 -0
  123. package/dist/loader.js.map +1 -0
  124. package/package.json +5 -3
  125. package/dist/$$leyyo-loader.d.ts +0 -1
  126. package/dist/$$leyyo-loader.js +0 -40
  127. package/dist/$$leyyo-loader.js.map +0 -1
  128. package/dist/deploy/deploy.common.d.ts +0 -34
  129. package/dist/deploy/deploy.common.js +0 -125
  130. package/dist/deploy/deploy.common.js.map +0 -1
  131. package/dist/deploy/index.d.ts +0 -1
  132. package/dist/deploy/index.js.map +0 -1
  133. package/dist/deploy/index.types.d.ts +0 -29
  134. package/dist/deploy/index.types.js +0 -3
  135. package/dist/deploy/index.types.js.map +0 -1
  136. package/dist/error/error.common.d.ts +0 -34
  137. package/dist/error/error.common.js +0 -220
  138. package/dist/error/error.common.js.map +0 -1
  139. package/dist/error/index.const.d.ts +0 -4
  140. package/dist/error/index.const.js +0 -8
  141. package/dist/error/index.const.js.map +0 -1
  142. package/dist/error/index.types.d.ts +0 -109
  143. package/dist/error/index.types.js +0 -3
  144. package/dist/error/index.types.js.map +0 -1
  145. package/dist/error/items/caused.error.d.ts +0 -6
  146. package/dist/error/items/caused.error.js +0 -11
  147. package/dist/error/items/caused.error.js.map +0 -1
  148. package/dist/error/items/developer.error.d.ts +0 -4
  149. package/dist/error/items/developer.error.js +0 -11
  150. package/dist/error/items/developer.error.js.map +0 -1
  151. package/dist/error/items/http.error.js +0 -37
  152. package/dist/error/items/http.error.js.map +0 -1
  153. package/dist/error/items/index.d.ts +0 -6
  154. package/dist/error/items/index.js +0 -23
  155. package/dist/error/items/index.js.map +0 -1
  156. package/dist/error/items/invalid-value.error.js.map +0 -1
  157. package/dist/error/items/leyyo.error.d.ts +0 -60
  158. package/dist/error/items/leyyo.error.js +0 -144
  159. package/dist/error/items/leyyo.error.js.map +0 -1
  160. package/dist/error/items/multiple.error.js.map +0 -1
  161. package/dist/event/event.common.d.ts +0 -80
  162. package/dist/event/event.common.js +0 -308
  163. package/dist/event/event.common.js.map +0 -1
  164. package/dist/event/event.error.d.ts +0 -3
  165. package/dist/event/event.error.js +0 -9
  166. package/dist/event/event.error.js.map +0 -1
  167. package/dist/event/index.d.ts +0 -2
  168. package/dist/event/index.js +0 -19
  169. package/dist/event/index.js.map +0 -1
  170. package/dist/event/index.types.d.ts +0 -265
  171. package/dist/event/index.types.js +0 -3
  172. package/dist/event/index.types.js.map +0 -1
  173. package/dist/hub/hub.channel.d.ts +0 -27
  174. package/dist/hub/hub.channel.js +0 -83
  175. package/dist/hub/hub.channel.js.map +0 -1
  176. package/dist/hub/hub.common.d.ts +0 -27
  177. package/dist/hub/hub.common.js +0 -92
  178. package/dist/hub/hub.common.js.map +0 -1
  179. package/dist/hub/index.d.ts +0 -1
  180. package/dist/hub/index.js.map +0 -1
  181. package/dist/hub/index.types.d.ts +0 -105
  182. package/dist/hub/index.types.js +0 -3
  183. package/dist/hub/index.types.js.map +0 -1
  184. package/dist/leyyo/index.d.ts +0 -1
  185. package/dist/leyyo/index.js +0 -18
  186. package/dist/leyyo/index.js.map +0 -1
  187. package/dist/leyyo/index.types.d.ts +0 -21
  188. package/dist/leyyo/index.types.js +0 -3
  189. package/dist/leyyo/index.types.js.map +0 -1
  190. package/dist/leyyo/leyyo.d.ts +0 -25
  191. package/dist/leyyo/leyyo.js +0 -62
  192. package/dist/leyyo/leyyo.js.map +0 -1
  193. package/dist/log/index.d.ts +0 -4
  194. package/dist/log/index.js +0 -21
  195. package/dist/log/index.js.map +0 -1
  196. package/dist/log/index.types.d.ts +0 -47
  197. package/dist/log/index.types.js +0 -3
  198. package/dist/log/index.types.js.map +0 -1
  199. package/dist/log/log-level.js.map +0 -1
  200. package/dist/log/log.common.d.ts +0 -15
  201. package/dist/log/log.common.js +0 -135
  202. package/dist/log/log.common.js.map +0 -1
  203. package/dist/log/logger.error.d.ts +0 -3
  204. package/dist/log/logger.error.js +0 -9
  205. package/dist/log/logger.error.js.map +0 -1
  206. package/dist/log/logger.instance.js +0 -139
  207. package/dist/log/logger.instance.js.map +0 -1
  208. package/dist/name/index.d.ts +0 -2
  209. package/dist/name/index.js +0 -19
  210. package/dist/name/index.js.map +0 -1
  211. package/dist/name/index.types.d.ts +0 -21
  212. package/dist/name/index.types.js +0 -3
  213. package/dist/name/index.types.js.map +0 -1
  214. package/dist/name/name.common.d.ts +0 -16
  215. package/dist/name/name.common.js +0 -109
  216. package/dist/name/name.common.js.map +0 -1
  217. package/dist/name/name.error.d.ts +0 -3
  218. package/dist/name/name.error.js +0 -9
  219. package/dist/name/name.error.js.map +0 -1
  220. package/dist/opt/index.d.ts +0 -1
  221. package/dist/opt/index.js.map +0 -1
  222. package/dist/opt/index.types.d.ts +0 -33
  223. package/dist/opt/index.types.js +0 -3
  224. package/dist/opt/index.types.js.map +0 -1
  225. package/dist/opt/opt.common.d.ts +0 -15
  226. package/dist/opt/opt.common.js +0 -93
  227. package/dist/opt/opt.common.js.map +0 -1
  228. package/dist/repo/index.d.ts +0 -1
  229. package/dist/repo/index.js +0 -18
  230. package/dist/repo/index.js.map +0 -1
  231. package/dist/repo/index.types.d.ts +0 -104
  232. package/dist/repo/index.types.js +0 -3
  233. package/dist/repo/index.types.js.map +0 -1
  234. package/dist/repo/repo.common.d.ts +0 -41
  235. package/dist/repo/repo.common.js +0 -146
  236. package/dist/repo/repo.common.js.map +0 -1
  237. package/dist/server.d.ts +0 -1
  238. package/dist/server.js +0 -5
  239. package/dist/server.js.map +0 -1
  240. package/dist/shared/index.d.ts +0 -5
  241. package/dist/shared/index.enum.d.ts +0 -7
  242. package/dist/shared/index.enum.js +0 -3
  243. package/dist/shared/index.enum.js.map +0 -1
  244. package/dist/shared/index.fqn.d.ts +0 -3
  245. package/dist/shared/index.fqn.js +0 -3
  246. package/dist/shared/index.fqn.js.map +0 -1
  247. package/dist/shared/index.js +0 -22
  248. package/dist/shared/index.js.map +0 -1
  249. package/dist/shared/index.json.d.ts +0 -33
  250. package/dist/shared/index.json.js +0 -3
  251. package/dist/shared/index.json.js.map +0 -1
  252. package/dist/shared/index.loader.d.ts +0 -5
  253. package/dist/shared/index.loader.js +0 -3
  254. package/dist/shared/index.loader.js.map +0 -1
  255. package/dist/shared/index.types.d.ts +0 -168
  256. package/dist/shared/index.types.js.map +0 -1
  257. package/dist/util/$define-error.d.ts +0 -9
  258. package/dist/util/$define-error.js +0 -25
  259. package/dist/util/$define-error.js.map +0 -1
  260. package/dist/util/$enum-name.d.ts +0 -16
  261. package/dist/util/$enum-name.js +0 -18
  262. package/dist/util/$enum-name.js.map +0 -1
  263. package/dist/util/$loader.d.ts +0 -18
  264. package/dist/util/$loader.js +0 -40
  265. package/dist/util/$loader.js.map +0 -1
  266. package/dist/util/delay.js.map +0 -1
  267. package/dist/util/empty.fn.d.ts +0 -8
  268. package/dist/util/empty.fn.js.map +0 -1
  269. package/dist/util/index.js.map +0 -1
  270. package/dist/util/is.js +0 -68
  271. package/dist/util/is.js.map +0 -1
  272. package/dist/util/jitter-interval.js.map +0 -1
  273. package/dist/util/one-or-more.js.map +0 -1
  274. package/dist/util/secure-clone.js.map +0 -1
  275. package/dist/util/secure-json.js.map +0 -1
  276. /package/dist/{log → enum}/log-level.d.ts +0 -0
  277. /package/dist/error/{items/invalid-value.error.d.ts → invalid-value.error.d.ts} +0 -0
  278. /package/dist/{util → function}/delay.d.ts +0 -0
  279. /package/dist/{util → function}/jitter-interval.d.ts +0 -0
  280. /package/dist/{util → function}/secure-clone.js +0 -0
  281. /package/dist/{util → function}/secure-json.d.ts +0 -0
  282. /package/dist/{util → function}/secure-json.js +0 -0
@@ -0,0 +1,400 @@
1
+ "use strict";
2
+ // noinspection JSUnusedGlobalSymbols
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
36
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
37
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
38
+ return new (P || (P = Promise))(function (resolve, reject) {
39
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
40
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
41
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
42
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
43
+ });
44
+ };
45
+ Object.defineProperty(exports, "__esModule", { value: true });
46
+ exports.defineError = defineError;
47
+ exports.defineLazyError = defineLazyError;
48
+ exports.isErrorLazy = isErrorLazy;
49
+ exports.isErrorEager = isErrorEager;
50
+ exports.isErrorDefined = isErrorDefined;
51
+ exports.getError = getError;
52
+ exports.getLazyError = getLazyError;
53
+ exports.emitError = emitError;
54
+ exports.errorStack = errorStack;
55
+ exports.toErrorJsonBasic = toErrorJsonBasic;
56
+ exports.toErrorJsonFull = toErrorJsonFull;
57
+ exports.errorCast = errorCast;
58
+ const function_1 = require("../function");
59
+ const const_1 = require("../const");
60
+ const internal_1 = require("../internal");
61
+ const event_fn_1 = require("./event.fn");
62
+ const error_1 = require("../error");
63
+ const set_fn_1 = require("./set.fn");
64
+ const map_fn_1 = require("./map.fn");
65
+ const stackTraceParser = __importStar(require("stacktrace-parser"));
66
+ // region properties
67
+ const where = `${internal_1.FQN}.ErrorFn`;
68
+ const _items = (0, set_fn_1.newRepoSet)(`${where}.items`);
69
+ const _names = (0, map_fn_1.newRepoMap)(`${where}.names`);
70
+ const _knownPackages = (0, map_fn_1.newRepoMap)(`${where}.knownPackages`);
71
+ // endregion properties
72
+ // noinspection JSUnusedGlobalSymbols
73
+ /**
74
+ * Define an error
75
+ *
76
+ * @param {ClassLike} clazz - error class
77
+ * @param {ErrorDefineEagerOpt} options - options
78
+ * */
79
+ function defineError(clazz, options) {
80
+ if (!(0, function_1.isClass)(clazz)) {
81
+ throw new error_1.DeveloperError('Invalid error class', 'defineError#01', where);
82
+ }
83
+ if (!(0, function_1.isFilledObj)(options)) {
84
+ throw new error_1.DeveloperError('Invalid error options', 'defineError#02', where);
85
+ }
86
+ _items.add(clazz);
87
+ _names.set(clazz.name, Object.assign(Object.assign({}, options), { name: clazz.name, mode: 'eager', clazz }));
88
+ if ((0, function_1.isText)(options.message)) {
89
+ clazz[const_1.LY_ERROR_DEFAULT_MESSAGE] = options.message;
90
+ }
91
+ if (!(0, function_1.isEmpty)(options.emit)) {
92
+ clazz[const_1.LY_ERROR_EMIT] = options.emit;
93
+ }
94
+ if (!(0, function_1.isEmpty)(options.i18n)) {
95
+ clazz[const_1.LY_ERROR_DECORATE_I18N] = options.i18n;
96
+ }
97
+ }
98
+ /**
99
+ * Check conflict case
100
+ *
101
+ * @param {string} name - error name
102
+ * @param {EnumData} clazz - error class
103
+ * @return {boolean} - if yes: it was already defined
104
+ * */
105
+ function isAlreadyDefined(name, clazz) {
106
+ return _items.has(clazz) && _names.has(name);
107
+ }
108
+ /**
109
+ * Define an error as lazy (with path)
110
+ *
111
+ * @param {ErrorDefineLazyOpt} opt - error options
112
+ * */
113
+ function defineLazyError(opt) {
114
+ if (!(0, function_1.isFilledObj)(opt)) {
115
+ throw new error_1.DeveloperError('Invalid error options', 'onDeployed#01', where);
116
+ }
117
+ if (!(opt.lazyClass instanceof Promise)) {
118
+ throw new error_1.DeveloperError('Invalid error class path', 'onDeployed#01', where);
119
+ }
120
+ _names.set(opt.name, Object.assign(Object.assign({}, opt), { mode: 'lazy' }));
121
+ }
122
+ /**
123
+ * Check error defined as lazy, by name
124
+ * Note:
125
+ * - Error's mode will be shifted lazy to eager after loaded
126
+ *
127
+ * @param {string} name - error name
128
+ * @return {boolean}
129
+ * */
130
+ function isErrorLazy(name) {
131
+ var _a;
132
+ return ((_a = getError(name)) === null || _a === void 0 ? void 0 : _a.mode) === 'lazy';
133
+ }
134
+ /**
135
+ * Check error defined as eager, by name
136
+ *
137
+ * @param {string} name - error name
138
+ * @return {boolean}
139
+ * */
140
+ function isErrorEager(name) {
141
+ var _a;
142
+ return ((_a = getError(name)) === null || _a === void 0 ? void 0 : _a.mode) === 'eager';
143
+ }
144
+ /**
145
+ * Check error defined or not, by name
146
+ *
147
+ * @param {string} name - error name
148
+ * @return {boolean}
149
+ * */
150
+ function isErrorDefined(name) {
151
+ return !!getError(name);
152
+ }
153
+ /**
154
+ * Get error by name
155
+ * Note:
156
+ * - Enum may be lazy mode, so it has lazy paths without class
157
+ *
158
+ * @param {string} name - error name
159
+ * @return {EnumItem}
160
+ * */
161
+ function getError(name) {
162
+ if (!(0, function_1.isText)(name)) {
163
+ return undefined;
164
+ }
165
+ if (!_names.has(name)) {
166
+ return undefined;
167
+ }
168
+ return _names.get(name);
169
+ }
170
+ /**
171
+ * Load lazy error by name
172
+ * Note:
173
+ * - Error must be exported as `foretell`
174
+ *
175
+ * @param {string} name - name of error
176
+ * @return {Promise<EnumItem>}
177
+ * */
178
+ function getLazyError(name) {
179
+ return __awaiter(this, void 0, void 0, function* () {
180
+ if (!(0, function_1.isText)(name)) {
181
+ return undefined;
182
+ }
183
+ if (!_names.has(name)) {
184
+ return undefined;
185
+ }
186
+ const item = _names.get(name);
187
+ if (item.mode === 'eager') {
188
+ return item;
189
+ }
190
+ try {
191
+ item.clazz = yield item.lazyClass;
192
+ if ((0, function_1.isClass)(item.clazz)) {
193
+ if (isAlreadyDefined(name, item.clazz)) {
194
+ delete item.lazyClass;
195
+ return item;
196
+ }
197
+ item.mode = 'eager';
198
+ }
199
+ }
200
+ catch (e) {
201
+ new error_1.DeveloperError('Raised callback run', 'optCheck#01', where).log(e);
202
+ }
203
+ delete item.lazyClass;
204
+ return item;
205
+ });
206
+ }
207
+ /**
208
+ * It will be called when an error raised
209
+ * */
210
+ function emitError(err) {
211
+ if (!(err instanceof Error)) {
212
+ return;
213
+ }
214
+ // already emitted
215
+ if (err[const_1.LY_ERROR_EMITTED]) {
216
+ return;
217
+ }
218
+ const clazz = err.constructor;
219
+ // error does not support to emit
220
+ if (!clazz[const_1.LY_ERROR_EMIT]) {
221
+ return;
222
+ }
223
+ // prevent duplicated emits
224
+ err[const_1.LY_ERROR_EMITTED] = true;
225
+ (0, event_fn_1.emitEvent)('error:emit', err);
226
+ }
227
+ /**
228
+ * Build error stack
229
+ *
230
+ * @param {Error} source
231
+ * @param {boolean?} force
232
+ * */
233
+ function errorStack(source, force) {
234
+ var _a;
235
+ if (!force && Array.isArray(source.stackTrace)) {
236
+ return;
237
+ }
238
+ source.stackTrace = [];
239
+ try {
240
+ let causedBy;
241
+ const leyyoError = source;
242
+ if (leyyoError.causedBy) {
243
+ if (Array.isArray(leyyoError.causedBy) && leyyoError.causedBy.length > 0) {
244
+ causedBy = leyyoError.causedBy[0];
245
+ }
246
+ else if (leyyoError.causedBy instanceof Error) {
247
+ causedBy = leyyoError.causedBy;
248
+ }
249
+ }
250
+ const original = (_a = causedBy === null || causedBy === void 0 ? void 0 : causedBy.stack) !== null && _a !== void 0 ? _a : source.stack;
251
+ if (original) {
252
+ const frames = stackTraceParser.parse(original);
253
+ if (Array.isArray(frames)) {
254
+ frames.forEach(frame => {
255
+ var _a, _b;
256
+ if (['<unknown>', 'Object.<anonymous>'].includes(frame.methodName)) {
257
+ frame.methodName = undefined;
258
+ }
259
+ if (frame.file) {
260
+ if (frame.file.startsWith('node:')) {
261
+ frame.file = `@ ` + frame.file.substring(5);
262
+ }
263
+ else {
264
+ for (const [pck, short] of _knownPackages.entries()) {
265
+ const index = frame.file.indexOf(pck);
266
+ if (index >= 0) {
267
+ let part = frame.file.substring(index + pck.length);
268
+ if (part.startsWith('/')) {
269
+ part = part.substring(1);
270
+ }
271
+ if (part.startsWith('dist/')) {
272
+ part = part.substring(5);
273
+ }
274
+ frame.file = `#${short} ` + part;
275
+ break;
276
+ }
277
+ }
278
+ }
279
+ if (frame.file.endsWith('.js') || frame.file.endsWith('.ts')) {
280
+ frame.file.substring(0, frame.file.length - 3);
281
+ }
282
+ }
283
+ const line = {};
284
+ if (frame.file) {
285
+ line.file = frame.file;
286
+ }
287
+ if (frame.methodName) {
288
+ line.method = frame.methodName;
289
+ }
290
+ if (frame.lineNumber !== undefined && frame.column !== undefined) {
291
+ line.pos = `${(_a = frame.lineNumber) !== null && _a !== void 0 ? _a : ''}:${(_b = frame.column) !== null && _b !== void 0 ? _b : ''}`;
292
+ }
293
+ source.stackTrace.push(line);
294
+ });
295
+ }
296
+ }
297
+ }
298
+ catch (e) {
299
+ // none
300
+ }
301
+ }
302
+ /**
303
+ * Transform error as a bare object without name and message
304
+ *
305
+ * @param {Error} err - error instance
306
+ * @param {Opt} existing - existing parameters
307
+ * @return {Opt?} - bare error object
308
+ * */
309
+ function toErrorJsonBasic(err, existing) {
310
+ return _toErrorJson(err, existing, true, new WeakSet());
311
+ }
312
+ /**
313
+ * Transform error as a bare object with name and message
314
+ *
315
+ * @param {Error} err - error instance
316
+ * @param {Opt} existing - existing parameters
317
+ * @return {Opt?} - bare error object
318
+ * */
319
+ function toErrorJsonFull(err, existing) {
320
+ return _toErrorJson(err, existing, false, new WeakSet());
321
+ }
322
+ /**
323
+ * Transform error as a bare object
324
+ *
325
+ * @param {Error} err - error instance
326
+ * @param {Opt} existing - existing parameters
327
+ * @param {boolean} ignoreNameMessage - ignore name & message?
328
+ * @param {WeakSet} weakSet - weak set to prevent duplicates
329
+ * @return {Opt?} - bare error object
330
+ * */
331
+ function _toErrorJson(err, existing, ignoreNameMessage, weakSet) {
332
+ if (!(err instanceof Error)) {
333
+ return undefined;
334
+ }
335
+ if (weakSet.has(err)) {
336
+ return undefined;
337
+ }
338
+ weakSet.add(err);
339
+ let result = (0, function_1.isObj)(existing) ? existing : {};
340
+ const leyyoError = err;
341
+ if ((0, function_1.isFilledObj)(leyyoError.params)) {
342
+ result = Object.assign(Object.assign({}, result), leyyoError.params);
343
+ }
344
+ for (const [k, v] of Object.entries(err)) {
345
+ if (typeof k !== 'string' || ['undefined', 'symbol', 'function'].includes(typeof v) || v === null) {
346
+ continue;
347
+ }
348
+ switch (k) {
349
+ case 'name':
350
+ case 'message':
351
+ if (!ignoreNameMessage) {
352
+ result[k] = v;
353
+ }
354
+ break;
355
+ case 'stack':
356
+ case 'params':
357
+ break;
358
+ case 'causedBy':
359
+ if (v instanceof Error) {
360
+ const causedBy = _toErrorJson(v, {}, false, weakSet);
361
+ if (causedBy) {
362
+ result[k] = v;
363
+ }
364
+ }
365
+ else if ((0, function_1.isFilledArr)(v)) {
366
+ const errors = v;
367
+ const causedErrors = [];
368
+ errors.forEach(e => {
369
+ const causedError = _toErrorJson(e, {}, false, weakSet);
370
+ if (causedError) {
371
+ causedErrors.push(causedError);
372
+ }
373
+ });
374
+ if (causedErrors.length > 0) {
375
+ result[k] = causedErrors;
376
+ }
377
+ }
378
+ break;
379
+ default:
380
+ result[k] = v;
381
+ break;
382
+ }
383
+ }
384
+ }
385
+ /**
386
+ * Cast a native error to given error class
387
+ *
388
+ * @param {function} clazz - new error class
389
+ * @param {Error} e - native error instance
390
+ * @param {Opt?} params - params for error
391
+ * @return {LeyyoErrorLike} - new error instance
392
+ * */
393
+ function errorCast(clazz, e, params) {
394
+ const err = new clazz(e.message, params);
395
+ err.$copyProperties(e);
396
+ err.causedBy = e;
397
+ return err;
398
+ }
399
+ error_1.DeveloperError.stackBuilder(errorStack);
400
+ //# sourceMappingURL=error.fn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.fn.js","sourceRoot":"","sources":["../../src/common/error.fn.ts"],"names":[],"mappings":";AAAA,qCAAqC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCrC,kCAoBC;AAmBD,0CAQC;AAUD,kCAEC;AAQD,oCAEC;AAQD,wCAEC;AAUD,4BAQC;AAUD,oCAyBC;AAKD,8BAkBC;AAQD,gCAiEC;AASD,4CAEC;AASD,0CAEC;AA0ED,8BAKC;AAhWD,0CAAsF;AACtF,oCAA2G;AAC3G,0CAAgC;AAChC,yCAAqC;AACrC,oCAAwC;AACxC,qCAAoC;AACpC,qCAAoC;AACpC,oEAAsD;AAEtD,oBAAoB;AACpB,MAAM,KAAK,GAAG,GAAG,cAAG,UAAU,CAAC;AAC/B,MAAM,MAAM,GAAG,IAAA,mBAAU,EAAY,GAAG,KAAK,QAAQ,CAAC,CAAC;AACvD,MAAM,MAAM,GAAG,IAAA,mBAAU,EAAoB,GAAG,KAAK,QAAQ,CAAC,CAAC;AAC/D,MAAM,cAAc,GAAG,IAAA,mBAAU,EAAiB,GAAG,KAAK,gBAAgB,CAAC,CAAC;AAC5E,uBAAuB;AAEvB,qCAAqC;AACrC;;;;;KAKK;AACL,SAAgB,WAAW,CAAC,KAAgB,EAAE,OAA4B;IACtE,IAAI,CAAC,IAAA,kBAAO,EAAC,KAAK,CAAC,EAAE,CAAC;QAClB,MAAM,IAAI,sBAAc,CAAC,qBAAqB,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC;IAC7E,CAAC;IACD,IAAI,CAAC,IAAA,sBAAW,EAAC,OAAO,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,sBAAc,CAAC,uBAAuB,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC;IAC/E,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAClB,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,kCAAM,OAAO,KAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,IAAE,CAAC;IAE7E,IAAI,IAAA,iBAAM,EAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1B,KAAK,CAAC,gCAAwB,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IACtD,CAAC;IACD,IAAI,CAAC,IAAA,kBAAO,EAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,KAAK,CAAC,qBAAa,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IACxC,CAAC;IACD,IAAI,CAAC,IAAA,kBAAO,EAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,KAAK,CAAC,8BAAsB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IACjD,CAAC;AACL,CAAC;AAGD;;;;;;KAMK;AACL,SAAS,gBAAgB,CAAC,IAAY,EAAE,KAAgB;IACpD,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACjD,CAAC;AAED;;;;KAIK;AACL,SAAgB,eAAe,CAAC,GAAuB;IACnD,IAAI,CAAC,IAAA,sBAAW,EAAC,GAAG,CAAC,EAAE,CAAC;QACpB,MAAM,IAAI,sBAAc,CAAC,uBAAuB,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;IAC9E,CAAC;IACD,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,YAAY,OAAO,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,sBAAc,CAAC,0BAA0B,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;IACjF,CAAC;IACD,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,kCAAM,GAAG,KAAE,IAAI,EAAE,MAAM,IAAE,CAAC;AACjD,CAAC;AAED;;;;;;;KAOK;AACL,SAAgB,WAAW,CAAC,IAAY;;IACpC,OAAO,CAAA,MAAA,QAAQ,CAAC,IAAI,CAAC,0CAAE,IAAI,MAAK,MAAM,CAAC;AAC3C,CAAC;AAED;;;;;KAKK;AACL,SAAgB,YAAY,CAAC,IAAY;;IACrC,OAAO,CAAA,MAAA,QAAQ,CAAC,IAAI,CAAC,0CAAE,IAAI,MAAK,OAAO,CAAC;AAC5C,CAAC;AAED;;;;;KAKK;AACL,SAAgB,cAAc,CAAC,IAAY;IACvC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED;;;;;;;KAOK;AACL,SAAgB,QAAQ,CAAC,IAAY;IACjC,IAAI,CAAC,IAAA,iBAAM,EAAC,IAAI,CAAC,EAAE,CAAC;QAChB,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACpB,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED;;;;;;;KAOK;AACL,SAAsB,YAAY,CAAC,IAAY;;QAC3C,IAAI,CAAC,IAAA,iBAAM,EAAC,IAAI,CAAC,EAAE,CAAC;YAChB,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACpB,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,IAAI,CAAC;YACD,IAAI,CAAC,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC;YAClC,IAAI,IAAA,kBAAO,EAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtB,IAAI,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;oBACrC,OAAO,IAAI,CAAC,SAAS,CAAC;oBACtB,OAAO,IAAI,CAAC;gBAChB,CAAC;gBACD,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;YACxB,CAAC;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,IAAI,sBAAc,CAAC,qBAAqB,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC3E,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC;QACtB,OAAO,IAAI,CAAC;IAChB,CAAC;CAAA;AAED;;KAEK;AACL,SAAgB,SAAS,CAAC,GAAU;IAChC,IAAI,CAAC,CAAC,GAAG,YAAY,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO;IACX,CAAC;IACD,kBAAkB;IAClB,IAAI,GAAG,CAAC,wBAAgB,CAAC,EAAE,CAAC;QACxB,OAAO;IACX,CAAC;IACD,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,CAAC;IAE9B,iCAAiC;IACjC,IAAI,CAAC,KAAK,CAAC,qBAAa,CAAC,EAAE,CAAC;QACxB,OAAO;IACX,CAAC;IAED,2BAA2B;IAC3B,GAAG,CAAC,wBAAgB,CAAC,GAAG,IAAI,CAAC;IAC7B,IAAA,oBAAS,EAAC,YAAY,EAAE,GAAG,CAAC,CAAC;AACjC,CAAC;AAED;;;;;KAKK;AACL,SAAgB,UAAU,CAAC,MAAsB,EAAE,KAAe;;IAC9D,IAAK,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9C,OAAO;IACX,CAAC;IACD,MAAM,CAAC,UAAU,GAAG,EAAE,CAAC;IACvB,IAAI,CAAC;QACD,IAAI,QAAe,CAAC;QACpB,MAAM,UAAU,GAAG,MAAwB,CAAC;QAC5C,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;YACtB,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvE,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACtC,CAAC;iBACI,IAAI,UAAU,CAAC,QAAQ,YAAY,KAAK,EAAE,CAAC;gBAC5C,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;YACnC,CAAC;QACL,CAAC;QACD,MAAM,QAAQ,GAAG,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,KAAK,mCAAI,MAAM,CAAC,KAAK,CAAC;QACjD,IAAI,QAAQ,EAAE,CAAC;YACX,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAChD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;;oBACnB,IAAI,CAAC,WAAW,EAAE,oBAAoB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;wBACjE,KAAK,CAAC,UAAU,GAAG,SAAS,CAAC;oBACjC,CAAC;oBACD,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;wBACb,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;4BACjC,KAAK,CAAC,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;wBAChD,CAAC;6BACI,CAAC;4BACF,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC;gCAClD,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gCACtC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;oCACb,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;oCACpD,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;wCACvB,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;oCAC7B,CAAC;oCACD,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;wCAC3B,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;oCAC7B,CAAC;oCACD,KAAK,CAAC,IAAI,GAAG,IAAI,KAAK,GAAG,GAAG,IAAI,CAAC;oCACjC,MAAM;gCACV,CAAC;4BACL,CAAC;wBACL,CAAC;wBACD,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;4BAC3D,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;wBACnD,CAAC;oBACL,CAAC;oBACD,MAAM,IAAI,GAAG,EAAoB,CAAC;oBAClC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;wBACb,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;oBAC3B,CAAC;oBACD,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;wBACnB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC;oBACnC,CAAC;oBACD,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;wBAC/D,IAAI,CAAC,GAAG,GAAG,GAAG,MAAA,KAAK,CAAC,UAAU,mCAAI,EAAE,IAAI,MAAA,KAAK,CAAC,MAAM,mCAAI,EAAE,EAAE,CAAC;oBACjE,CAAC;oBACD,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACjC,CAAC,CAAC,CAAC;YACP,CAAC;QACL,CAAC;IACL,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,OAAO;IACX,CAAC;AACL,CAAC;AAED;;;;;;KAMK;AACL,SAAgB,gBAAgB,CAAC,GAAU,EAAE,QAAc;IACvD,OAAO,YAAY,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,OAAO,EAAS,CAAC,CAAC;AACnE,CAAC;AAED;;;;;;KAMK;AACL,SAAgB,eAAe,CAAC,GAAU,EAAE,QAAa;IACrD,OAAO,YAAY,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,OAAO,EAAS,CAAC,CAAC;AACpE,CAAC;AAED;;;;;;;;KAQK;AACL,SAAS,YAAY,CAAC,GAAU,EAAE,QAAa,EAAE,iBAA0B,EAAE,OAAuB;IAChG,IAAI,CAAC,CAAC,GAAG,YAAY,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QACnB,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACjB,IAAI,MAAM,GAAG,IAAA,gBAAK,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7C,MAAM,UAAU,GAAG,GAAqB,CAAC;IACzC,IAAI,IAAA,sBAAW,EAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACjC,MAAM,mCAAO,MAAM,GAAK,UAAU,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;IACD,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;YAChG,SAAS;QACb,CAAC;QACD,QAAQ,CAAC,EAAE,CAAC;YACR,KAAK,MAAM,CAAC;YACZ,KAAK,SAAS;gBACV,IAAI,CAAC,iBAAiB,EAAE,CAAC;oBACrB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBAClB,CAAC;gBACD,MAAM;YACV,KAAK,OAAO,CAAC;YACb,KAAK,QAAQ;gBACT,MAAM;YACV,KAAK,UAAU;gBACX,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC;oBACrB,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;oBACrD,IAAI,QAAQ,EAAE,CAAC;wBACX,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBAClB,CAAC;gBACL,CAAC;qBACI,IAAI,IAAA,sBAAW,EAAC,CAAC,CAAC,EAAE,CAAC;oBACtB,MAAM,MAAM,GAAG,CAAiB,CAAC;oBACjC,MAAM,YAAY,GAAG,EAAgB,CAAC;oBACtC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wBACf,MAAM,WAAW,GAAG,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;wBACxD,IAAI,WAAW,EAAE,CAAC;4BACd,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;wBACnC,CAAC;oBACL,CAAC,CAAC,CAAC;oBACH,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC1B,MAAM,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC;oBAC7B,CAAC;gBACL,CAAC;gBACD,MAAM;YACV;gBACI,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACd,MAAM;QACd,CAAC;IACL,CAAC;AACL,CAAC;AAED;;;;;;;KAOK;AACL,SAAgB,SAAS,CAA2B,KAAgB,EAAE,CAAQ,EAAE,MAAY;IACxF,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,CAAM,CAAC;IAC7C,GAAmC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACxD,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC;IACjB,OAAO,GAAG,CAAC;AACf,CAAC;AAED,sBAAc,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC"}
@@ -0,0 +1,45 @@
1
+ import { EventType, Fnc } from "../index.types";
2
+ /**
3
+ * Emit (fire) an event
4
+ *
5
+ * @param {string} name - event name
6
+ * @param {...Array} values - They will be used for callback of listener
7
+ * @return {boolean} - message is emitted correctly
8
+ *
9
+ * Note:
10
+ * - If there is not any listener for this event yet, events will be collected
11
+ * */
12
+ export declare function emitEvent<T extends string = string>(name: EventType | T, ...values: Array<unknown>): boolean;
13
+ /**
14
+ * Listen an event
15
+ *
16
+ * @param {string} name - event name
17
+ * @param {function} callback - callback for emitted event
18
+ *
19
+ * Note:
20
+ * - If there are previous emitted events, it will listen them immediately (lazy event driven)
21
+ * */
22
+ export declare function listenEvent<T extends string = string>(name: EventType | T, callback: Fnc): void;
23
+ /**
24
+ * Deactivate an event
25
+ *
26
+ * Means:
27
+ * - If there is no any listener then;
28
+ * - - emitted messages will be ignored
29
+ * - - collected message will be cleared
30
+ *
31
+ * @param {string} name - event name
32
+ * @return {boolean} - if it is previously activated (default) then true
33
+ * */
34
+ export declare function deactivateEvent(name: string): boolean;
35
+ /**
36
+ * Activate an event
37
+ *
38
+ * Means:
39
+ * - If there is no any listener then;
40
+ * - - emitted messages will be collected till listener comes in
41
+ *
42
+ * @param {string} name - event name
43
+ * @return {boolean} - if it is previously deactivated then true
44
+ * */
45
+ export declare function activateEvent(name: string): boolean;
@@ -0,0 +1,160 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.emitEvent = emitEvent;
7
+ exports.listenEvent = listenEvent;
8
+ exports.deactivateEvent = deactivateEvent;
9
+ exports.activateEvent = activateEvent;
10
+ const node_events_1 = __importDefault(require("node:events"));
11
+ const function_1 = require("../function");
12
+ const error_1 = require("../error");
13
+ const internal_1 = require("../internal");
14
+ const class_1 = require("../class");
15
+ const set_fn_1 = require("./set.fn");
16
+ const map_fn_1 = require("./map.fn");
17
+ // region properties
18
+ const where = `${internal_1.FQN}.EventFn`;
19
+ const emitter = new node_events_1.default();
20
+ const listenedEvents = (0, map_fn_1.newRepoMap)(`${where}.listened`);
21
+ const waitingEvents = (0, map_fn_1.newRepoMap)(`${where}.waiting`);
22
+ const removedEvents = (0, map_fn_1.newRepoMap)(`${where}.removed`); // stored, emitted
23
+ const deactivatedEvents = (0, set_fn_1.newRepoSet)(`${where}.deactivated`);
24
+ // endregion properties
25
+ /**
26
+ * Emit (fire) an event
27
+ *
28
+ * @param {string} name - event name
29
+ * @param {...Array} values - They will be used for callback of listener
30
+ * @return {boolean} - message is emitted correctly
31
+ *
32
+ * Note:
33
+ * - If there is not any listener for this event yet, events will be collected
34
+ * */
35
+ function emitEvent(name, ...values) {
36
+ if (typeof name !== 'string') {
37
+ return false;
38
+ }
39
+ if (!emitter.emit(name, ...values)) {
40
+ // It is deactivated, no collect it anymore
41
+ if (deactivatedEvents.has(name)) {
42
+ return true;
43
+ }
44
+ let item = waitingEvents.get(name);
45
+ if (!item) {
46
+ item = [];
47
+ waitingEvents.set(name, item);
48
+ }
49
+ else if (item.length > 10000) {
50
+ let parts = removedEvents.get(name);
51
+ if (parts === undefined) {
52
+ parts = [item.length, item.length + 1];
53
+ class_1.defLogger.warn(`Removed message. name: ${name}, times: ${parts[1]}`, { where, eventName: name });
54
+ item.shift();
55
+ removedEvents.set(name, parts);
56
+ }
57
+ else if (parts[0] >= 10000) {
58
+ // there are too many events, and there is no any listener, close it
59
+ if (parts[1] > 50000) {
60
+ deactivateEvent(name);
61
+ return false;
62
+ }
63
+ // clear half of it
64
+ parts[0] = 5000;
65
+ item.splice(0, 5000);
66
+ parts[1]++; // increment emitted
67
+ class_1.defLogger.warn(`Removed all messages. name: ${name}, times: ${parts[1]}`, { where, eventName: name });
68
+ }
69
+ else {
70
+ parts[1]++; // increment emitted
71
+ item.shift();
72
+ }
73
+ }
74
+ item.push(values);
75
+ return true;
76
+ }
77
+ return true;
78
+ }
79
+ /**
80
+ * Listen an event
81
+ *
82
+ * @param {string} name - event name
83
+ * @param {function} callback - callback for emitted event
84
+ *
85
+ * Note:
86
+ * - If there are previous emitted events, it will listen them immediately (lazy event driven)
87
+ * */
88
+ function listenEvent(name, callback) {
89
+ if (!(0, function_1.isText)(name)) {
90
+ throw new error_1.DeveloperError('Invalid event name', 'listenEvent#01', where);
91
+ }
92
+ if (typeof callback !== 'function') {
93
+ throw new error_1.DeveloperError('Invalid event callback', 'listenEvent#02', where);
94
+ }
95
+ const exists = listenedEvents.has(name);
96
+ if (exists) {
97
+ emitter.removeAllListeners(name);
98
+ }
99
+ emitter.on(name, callback);
100
+ // if there is a listener, event will be activated automatically
101
+ activateEvent(name);
102
+ listenedEvents.set(name, callback);
103
+ if (!exists) {
104
+ if (waitingEvents.has(name)) {
105
+ waitingEvents.get(name).forEach(values => {
106
+ emitter.emit(name, ...values);
107
+ });
108
+ waitingEvents.delete(name);
109
+ }
110
+ }
111
+ }
112
+ /**
113
+ * Deactivate an event
114
+ *
115
+ * Means:
116
+ * - If there is no any listener then;
117
+ * - - emitted messages will be ignored
118
+ * - - collected message will be cleared
119
+ *
120
+ * @param {string} name - event name
121
+ * @return {boolean} - if it is previously activated (default) then true
122
+ * */
123
+ function deactivateEvent(name) {
124
+ if (!(0, function_1.isText)(name)) {
125
+ throw new error_1.DeveloperError('Invalid event name', 'listenEvent#01', where);
126
+ }
127
+ if (waitingEvents.has(name)) {
128
+ class_1.defLogger.warn(`Deactivated and cleared all messages. name: ${name}`, { where, eventName: name });
129
+ waitingEvents.delete(name);
130
+ }
131
+ if (removedEvents.has(name)) {
132
+ removedEvents.delete(name);
133
+ }
134
+ if (!deactivatedEvents.has(name)) {
135
+ return false;
136
+ }
137
+ deactivatedEvents.add(name);
138
+ return true;
139
+ }
140
+ /**
141
+ * Activate an event
142
+ *
143
+ * Means:
144
+ * - If there is no any listener then;
145
+ * - - emitted messages will be collected till listener comes in
146
+ *
147
+ * @param {string} name - event name
148
+ * @return {boolean} - if it is previously deactivated then true
149
+ * */
150
+ function activateEvent(name) {
151
+ if (!(0, function_1.isText)(name)) {
152
+ throw new error_1.DeveloperError('Invalid event name', 'listenEvent#01', where);
153
+ }
154
+ if (deactivatedEvents.has(name)) {
155
+ deactivatedEvents.delete(name);
156
+ return true;
157
+ }
158
+ return false;
159
+ }
160
+ //# sourceMappingURL=event.fn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.fn.js","sourceRoot":"","sources":["../../src/common/event.fn.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { ExporterData } from "../index.types";
2
+ /**
3
+ * Run exporter
4
+ *
5
+ * @return {Promise<ExporterData>}
6
+ * */
7
+ export declare function runExporter(): Promise<ExporterData>;
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.runExporter = runExporter;
13
+ const lifecycle_fn_1 = require("./lifecycle.fn");
14
+ // noinspection JSUnusedGlobalSymbols
15
+ /**
16
+ * Run exporter
17
+ *
18
+ * @return {Promise<ExporterData>}
19
+ * */
20
+ function runExporter() {
21
+ return __awaiter(this, void 0, void 0, function* () {
22
+ const data = {};
23
+ const depot = {
24
+ add(name, value) {
25
+ append(data, name, value, 0);
26
+ }
27
+ };
28
+ yield (0, lifecycle_fn_1.runLifecycleStage)('print', depot);
29
+ return data;
30
+ });
31
+ }
32
+ /**
33
+ * Append to exporter with preventing overridden keys
34
+ *
35
+ * @param {ExporterData} data
36
+ * @param {string} name
37
+ * @param {ExporterValue} value
38
+ * @param {number} duplicated
39
+ * */
40
+ const append = (data, name, value, duplicated) => {
41
+ const postfix = (duplicated === 0) ? '' : '#' + duplicated;
42
+ if (data[name + postfix] !== undefined) {
43
+ data[name + postfix] = value;
44
+ }
45
+ else {
46
+ append(data, name, value, duplicated + 1);
47
+ }
48
+ };
49
+ //# sourceMappingURL=exporter.fn.js.map