@leyyo/common 1.2.7 → 1.3.2

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 +42 -0
  44. package/dist/common/log.fn.js +333 -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,333 @@
1
+ "use strict";
2
+ // noinspection JSUnusedGlobalSymbols
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.newLogger = newLogger;
5
+ exports.setLogFormatter = setLogFormatter;
6
+ exports.setLogDeploymentStylerLog = setLogDeploymentStylerLog;
7
+ exports.setLogLocalStylerLog = setLogLocalStylerLog;
8
+ exports.emitLog = emitLog;
9
+ const event_fn_1 = require("./event.fn");
10
+ const error_1 = require("../error");
11
+ const internal_1 = require("../internal");
12
+ const test_fn_1 = require("./test.fn");
13
+ const function_1 = require("../function");
14
+ const const_1 = require("../const");
15
+ const error_fn_1 = require("./error.fn");
16
+ const class_1 = require("../class");
17
+ // region properties
18
+ const where = `${internal_1.FQN}.LogFn`;
19
+ let logFormatter;
20
+ let logDeploymentStyler;
21
+ let logLocalStyler;
22
+ let logStyler;
23
+ const emptyWhere = ''.padStart(20);
24
+ let contextFinder;
25
+ // endregion properties
26
+ /**
27
+ * Local console colors
28
+ *
29
+ * @type {LocalColorLike}
30
+ * */
31
+ const localColor = {
32
+ bold: '\x1b[1m',
33
+ normal: '\x1b[21m',
34
+ end: '\x1b[0m',
35
+ param: '\x1b[90m',
36
+ levels: {
37
+ fatal: [true, '\x1b[31m', '\x1b[91m'], // bold red
38
+ error: [false, '\x1b[31m', '\x1b[91m'], // red
39
+ warn: [false, '\x1b[35m', '\x1b[95m'], // magenta
40
+ info: [false, '\x1b[32m', '\x1b[92m'], // green
41
+ debug: [false, '\x1b[33m', '\x1b[93m'], // yellow
42
+ trace: [false, '\x1b[36m', '\x1b[96m'], // yellow
43
+ }
44
+ };
45
+ /**
46
+ * Create new logger with any option
47
+ *
48
+ * @param {unknown} value - class info
49
+ * @return {Logger} - logger instance
50
+ * */
51
+ function newLogger(value) {
52
+ return new class_1.LoggerInstance(value);
53
+ }
54
+ // region setters
55
+ // noinspection JSUnusedGlobalSymbols
56
+ /**
57
+ * Set formatter
58
+ *
59
+ * @param {function} fn - lambda for formatter
60
+ * */
61
+ function setLogFormatter(fn) {
62
+ if (typeof fn !== 'function') {
63
+ throw new error_1.DeveloperError('Invalid log formatter', (0, test_fn_1.testCase)(internal_1.FQN, 161), where);
64
+ }
65
+ logFormatter = fn;
66
+ }
67
+ // noinspection JSUnusedGlobalSymbols
68
+ /**
69
+ * Set deployment styler
70
+ *
71
+ * @param {function} fn - lambda for styler
72
+ * */
73
+ function setLogDeploymentStylerLog(fn) {
74
+ if (typeof fn !== 'function') {
75
+ throw new error_1.DeveloperError('Invalid log styler', (0, test_fn_1.testCase)(internal_1.FQN, 162), where);
76
+ }
77
+ logDeploymentStyler = fn;
78
+ if (process.env['NODE_ENV'] !== 'local') {
79
+ logStyler = logDeploymentStyler;
80
+ }
81
+ }
82
+ // noinspection JSUnusedGlobalSymbols
83
+ /**
84
+ * Set local style
85
+ *
86
+ * @param {function} fn - lambda for styler
87
+ * */
88
+ function setLogLocalStylerLog(fn) {
89
+ if (typeof fn !== 'function') {
90
+ throw new error_1.DeveloperError('Invalid log local styler', (0, test_fn_1.testCase)(internal_1.FQN, 162), where);
91
+ }
92
+ logLocalStyler = fn;
93
+ if (process.env['NODE_ENV'] === 'local') {
94
+ logStyler = logLocalStyler;
95
+ }
96
+ }
97
+ // endregion setters
98
+ // region local-functions
99
+ /**
100
+ * Build short style of logger name
101
+ *
102
+ * @param {string} where - original logger name
103
+ * @param {string} - short style
104
+ * */
105
+ function shortenWhere(where) {
106
+ if (!where) {
107
+ return undefined;
108
+ }
109
+ if (!where.includes('.')) {
110
+ return where;
111
+ }
112
+ const parts = where.split('.');
113
+ where = parts.pop();
114
+ if (parts.length > 0) {
115
+ where = parts.map(w => w.slice(0, 1)).join('.') + '.' + where;
116
+ }
117
+ return where;
118
+ }
119
+ /**
120
+ * Log consumer
121
+ *
122
+ * @param {LogItem} item
123
+ * */
124
+ function consumeLog(item) {
125
+ if (!(0, function_1.isObj)(item)) {
126
+ return;
127
+ }
128
+ item.where = shortenWhere(item.where);
129
+ try {
130
+ logFormatter(item);
131
+ }
132
+ catch (e) {
133
+ }
134
+ let message;
135
+ try {
136
+ message = logStyler(item);
137
+ }
138
+ catch (e) {
139
+ }
140
+ if (typeof message !== 'string') {
141
+ message = `${item === null || item === void 0 ? void 0 : item.now} - ${typeof item.message === 'string' ? item.message : (0, function_1.secureJson)(item.message)}`;
142
+ if (item.params) {
143
+ message += ` ~^~ ${(0, function_1.secureJson)(item.params)}`;
144
+ }
145
+ }
146
+ console[item.level](message);
147
+ }
148
+ // endregion local-functions
149
+ // region defaults
150
+ /**
151
+ * Default log formatter
152
+ *
153
+ * @param {LogItem} item
154
+ * */
155
+ logFormatter = (item) => {
156
+ var _a, _b;
157
+ if (item === null || item === void 0 ? void 0 : item.ctx) {
158
+ const ctx = item.ctx;
159
+ item.ctx = {
160
+ tid: ctx === null || ctx === void 0 ? void 0 : ctx.id,
161
+ cid: ((_a = ctx === null || ctx === void 0 ? void 0 : ctx.req) === null || _a === void 0 ? void 0 : _a.headers) ? (_b = ctx === null || ctx === void 0 ? void 0 : ctx.req) === null || _b === void 0 ? void 0 : _b.headers["correlation-id"] : undefined,
162
+ };
163
+ }
164
+ item.paramStr = item.params ? (0, function_1.secureJson)(item.params) : undefined;
165
+ delete item.params;
166
+ if (item.paramStr && ['{}', '[]'].includes(item.paramStr)) {
167
+ delete item.paramStr;
168
+ }
169
+ };
170
+ /**
171
+ * Default log deployment styler (on server)
172
+ *
173
+ * @param {LogItem} item
174
+ * @return {string}
175
+ * */
176
+ logDeploymentStyler = (item) => {
177
+ let message = item.now;
178
+ if (item === null || item === void 0 ? void 0 : item.ctx) {
179
+ if (item.ctx['pid']) {
180
+ message += ` [p:${item.ctx['pid']}]`;
181
+ }
182
+ else {
183
+ message += ` [p:]`;
184
+ }
185
+ if (item.ctx['tid']) {
186
+ message += ` [t:${item.ctx['tid']}]`;
187
+ }
188
+ else {
189
+ message += ` [t:]`;
190
+ }
191
+ if (item.ctx['cid']) {
192
+ message += ` [c:${item.ctx['cid']}]`;
193
+ }
194
+ else {
195
+ message += ` [c:]`;
196
+ }
197
+ }
198
+ if (item.where) {
199
+ message += ` [w:${item.where}]`;
200
+ }
201
+ else {
202
+ message += ` [w:]`;
203
+ }
204
+ message += ' ' + item.message;
205
+ return message + (item.paramStr ? ' ~^~ ' + item.paramStr : '');
206
+ };
207
+ /**
208
+ * Default log locale styler (on local computer)
209
+ *
210
+ * @param {LogItem} item
211
+ * @return {string}
212
+ * */
213
+ logLocalStyler = (item) => {
214
+ var _a;
215
+ const { bold, end, param } = localColor;
216
+ const [isBold, regular, light] = (_a = localColor.levels[item.level]) !== null && _a !== void 0 ? _a : localColor.levels.debug;
217
+ let message = item.now.substring(10, 11) + ` ${param}[p:${process.pid}]${end}`;
218
+ if (item === null || item === void 0 ? void 0 : item.ctx) {
219
+ if (item.ctx['tid']) {
220
+ message += ` ${regular}[t:${item.ctx['tid']}]`;
221
+ }
222
+ else {
223
+ message += ` ${param}[t:]`;
224
+ }
225
+ if (item.ctx['cid']) {
226
+ message += ` ${light}[c:${item.ctx['cid']}]`;
227
+ }
228
+ else {
229
+ message += ` ${param}[c:]`;
230
+ }
231
+ }
232
+ if (item.where) {
233
+ message += ` ${regular}[${item.where}]`;
234
+ }
235
+ else {
236
+ message += ` ${param}[${emptyWhere}]`;
237
+ }
238
+ message += ` ${isBold ? bold : ''}${light}${item.message}${end}`;
239
+ return message + (item.paramStr ? ` ~^~ ${param}${item.paramStr}${end}` : '');
240
+ };
241
+ /**
242
+ * Set current styler by environment
243
+ * */
244
+ if (process.env['NODE_ENV'] === 'local') {
245
+ logStyler = logLocalStyler;
246
+ }
247
+ else {
248
+ logStyler = logDeploymentStyler;
249
+ }
250
+ // endregion defaults
251
+ function emitLog(level, where, message, params) {
252
+ var _a;
253
+ const item = {
254
+ level,
255
+ where,
256
+ now: new Date().toISOString(),
257
+ message: undefined,
258
+ params: undefined,
259
+ };
260
+ if (message instanceof Error) {
261
+ const err = message;
262
+ try {
263
+ if (err[const_1.LY_LOG_ALREADY]) {
264
+ return;
265
+ }
266
+ err[const_1.LY_LOG_ALREADY] = true;
267
+ }
268
+ catch (e) {
269
+ }
270
+ item.message = (0, function_1.errorText)(message);
271
+ item.params = (0, error_fn_1.toErrorJsonBasic)(message, params);
272
+ }
273
+ else {
274
+ if (typeof message !== 'string') {
275
+ if ((0, function_1.isEmpty)(message)) {
276
+ message = '??';
277
+ }
278
+ else {
279
+ if (typeof message === 'object') {
280
+ try {
281
+ if (message[const_1.LY_LOG_ALREADY]) {
282
+ return;
283
+ }
284
+ message[const_1.LY_LOG_ALREADY] = true;
285
+ }
286
+ catch (e) {
287
+ }
288
+ }
289
+ message = (0, function_1.secureJson)(message);
290
+ }
291
+ }
292
+ item.message = message;
293
+ item.params = (0, function_1.isFilledObj)(params) ? params : {};
294
+ }
295
+ if (!item.where && (params === null || params === void 0 ? void 0 : params.where)) {
296
+ try {
297
+ if (typeof params.where === 'string') {
298
+ item.where = params.where;
299
+ delete params.where;
300
+ }
301
+ else if (params.where instanceof Set) {
302
+ const whereList = Array.from(params.where.values());
303
+ item.where = whereList[0];
304
+ params.where.delete(item.where);
305
+ }
306
+ }
307
+ catch (e) {
308
+ }
309
+ }
310
+ if (contextFinder) {
311
+ try {
312
+ item.ctx = contextFinder((_a = item.params) === null || _a === void 0 ? void 0 : _a.req);
313
+ }
314
+ catch (e) {
315
+ }
316
+ }
317
+ (0, event_fn_1.emitEvent)('log', item);
318
+ }
319
+ // region binding
320
+ (0, event_fn_1.listenEvent)('context:finder', (v) => {
321
+ if (typeof v === 'function') {
322
+ contextFinder = v;
323
+ }
324
+ else {
325
+ new error_1.DeveloperError('Invalid context finder lambda', (0, test_fn_1.testCase)(internal_1.FQN, '150'), where).log();
326
+ }
327
+ });
328
+ // bind to event emitter
329
+ (0, event_fn_1.listenEvent)('log', consumeLog);
330
+ // bind to developer error
331
+ error_1.DeveloperError.boundLog(consumeLog);
332
+ // endregion binding
333
+ //# sourceMappingURL=log.fn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log.fn.js","sourceRoot":"","sources":["../../src/common/log.fn.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Create new map
3
+ *
4
+ * @param {string} name - name of collection
5
+ * @param {boolean} volatile - if yes: it will be removed after lifecycle run
6
+ * @return {Map<any, any>}
7
+ * */
8
+ export declare function newRepoMap<K, V>(name: string, volatile?: boolean): Map<K, V>;
9
+ /**
10
+ * Remove map by given key
11
+ *
12
+ * @param {symbol} key - key of collection
13
+ * @return {number}
14
+ *
15
+ * Return possibilities:
16
+ * - `-2`: key is not valid symbol
17
+ * - `-1`: key does not exist
18
+ * - `>= 0`: length of removed items in collection
19
+ * */
20
+ export declare function removeRepoMap(key: symbol): number;
21
+ /**
22
+ * Clear map by given key
23
+ *
24
+ * @param {symbol} key - key of collection
25
+ * @return {number}
26
+ *
27
+ * Return possibilities:
28
+ * - `-2`: key is not valid symbol
29
+ * - `-1`: key does not exist
30
+ * - `>= 0`: length of cleared items in collection
31
+ * */
32
+ export declare function clearRepoMap(key: symbol): number;
33
+ /**
34
+ * List all map keys
35
+ *
36
+ * @return {Array<symbol>}
37
+ * */
38
+ export declare function listRepoMaps(): Array<symbol>;
39
+ /**
40
+ * Print all maps
41
+ *
42
+ * @return {Record} - as {key: length of collection}
43
+ *
44
+ * Note: if stringified symbol is duplicated, add index postfix with `#` symbol
45
+ * */
46
+ export declare function printMaps(): Record<string, number>;
@@ -0,0 +1,123 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.newRepoMap = newRepoMap;
4
+ exports.removeRepoMap = removeRepoMap;
5
+ exports.clearRepoMap = clearRepoMap;
6
+ exports.listRepoMaps = listRepoMaps;
7
+ exports.printMaps = printMaps;
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}.MapFn`;
24
+ // endregion properties
25
+ // noinspection JSUnusedGlobalSymbols
26
+ /**
27
+ * Create new map
28
+ *
29
+ * @param {string} name - name of collection
30
+ * @param {boolean} volatile - if yes: it will be removed after lifecycle run
31
+ * @return {Map<any, any>}
32
+ * */
33
+ function newRepoMap(name, volatile) {
34
+ if (!(0, function_1.isText)(name)) {
35
+ throw new error_1.DeveloperError('Invalid new map name', 'newMap#01', where);
36
+ }
37
+ const item = new Map();
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 map 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 removeRepoMap(key) {
58
+ const cleared = clearRepoMap(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 map 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 clearRepoMap(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.size;
87
+ item.clear();
88
+ return length;
89
+ }
90
+ // noinspection JSUnusedGlobalSymbols
91
+ /**
92
+ * List all map keys
93
+ *
94
+ * @return {Array<symbol>}
95
+ * */
96
+ function listRepoMaps() {
97
+ return Array.from(items.keys());
98
+ }
99
+ // noinspection JSUnusedGlobalSymbols
100
+ /**
101
+ * Print all maps
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 printMaps() {
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.size;
114
+ index = 0;
115
+ }
116
+ else {
117
+ index++;
118
+ result[`${key}#${index}`] = item.size;
119
+ }
120
+ }
121
+ return result;
122
+ }
123
+ //# sourceMappingURL=map.fn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"map.fn.js","sourceRoot":"","sources":["../../src/common/map.fn.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ import { KeyValue, Opt, OptFn } from "../index.types";
2
+ /**
3
+ * It's used to easy arrow function usage for lazy evaluation of options
4
+ *
5
+ * @param {Opt} options - options
6
+ * @return {Opt} - options
7
+ * */
8
+ export declare function optFn<O extends Opt = Opt>(options: O | Opt): O;
9
+ /**
10
+ * Check option, if it's invalid, create empty options
11
+ *
12
+ * @param {(Opt|OptFn)} options - options or options callback
13
+ * @return {Opt} - checked options
14
+ * */
15
+ export declare function optCheck<O extends Opt = Opt>(options: O | OptFn<O> | Opt): O;
16
+ /**
17
+ * Clone existing option
18
+ *
19
+ * @param {Opt} options - source options
20
+ * @return {Opt} - cloned options
21
+ * */
22
+ export declare function optClone<O extends Opt = Opt>(options: O | Opt): O;
23
+ /**
24
+ * Merge two options
25
+ *
26
+ * @param {Opt} options - source options
27
+ * @param {Opt} appended - appended options
28
+ * @return {Opt} - merged options
29
+ * */
30
+ export declare function optAppend<O extends Opt = Opt>(options: O | Opt, appended: O | Opt): O;
31
+ /**
32
+ * Add key=value into options
33
+ *
34
+ * @param {Opt} options - source options
35
+ * @param {string} key - key
36
+ * @param {any} value - value
37
+ * @return {Opt} - added options
38
+ * */
39
+ export declare function optAdd<O extends Opt = Opt>(options: O | OptFn<O> | Opt, key: keyof O | string, value: unknown): O;
40
+ /**
41
+ * Add field into options
42
+ * Note: field could not be multiple in option
43
+ *
44
+ * @param {Opt} options - source options
45
+ * @param {KeyValue} field - value
46
+ * @return {Opt} - added options
47
+ * */
48
+ export declare function optField<O extends Opt = Opt>(options: O | OptFn<O> | Opt, field: KeyValue): O;