@zajno/common 2.0.2 → 2.0.4

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 (559) hide show
  1. package/{lib/abstractions → abstractions}/controllers/IPluggableController.d.ts +0 -0
  2. package/{lib/abstractions → abstractions}/controllers/IPluggableController.d.ts.map +0 -0
  3. package/{lib/abstractions → abstractions}/controllers/IPluggableController.js +0 -0
  4. package/{lib/abstractions → abstractions}/controllers/IPluggableController.js.map +0 -0
  5. package/{lib/async → async}/arrays.d.ts +0 -0
  6. package/{lib/async → async}/arrays.d.ts.map +0 -0
  7. package/{lib/async → async}/arrays.extend.d.ts +0 -0
  8. package/{lib/async → async}/arrays.extend.d.ts.map +0 -0
  9. package/{lib/async → async}/arrays.extend.js +0 -0
  10. package/{lib/async → async}/arrays.extend.js.map +0 -0
  11. package/{lib/async → async}/arrays.js +0 -0
  12. package/{lib/async → async}/arrays.js.map +0 -0
  13. package/async/misc.d.ts +8 -0
  14. package/{lib/async → async}/misc.d.ts.map +1 -1
  15. package/async/misc.js +27 -0
  16. package/async/misc.js.map +1 -0
  17. package/{lib/async → async}/timeout.d.ts +0 -0
  18. package/{lib/async → async}/timeout.d.ts.map +0 -0
  19. package/{lib/async → async}/timeout.js +0 -0
  20. package/{lib/async → async}/timeout.js.map +0 -0
  21. package/{lib/controllers → controllers}/PluggableController.d.ts +0 -0
  22. package/{lib/controllers → controllers}/PluggableController.d.ts.map +0 -0
  23. package/{lib/controllers → controllers}/PluggableController.js +0 -0
  24. package/{lib/controllers → controllers}/PluggableController.js.map +0 -0
  25. package/{lib/dates → dates}/calc.d.ts +0 -0
  26. package/{lib/dates → dates}/calc.d.ts.map +0 -0
  27. package/{lib/dates → dates}/calc.js +0 -0
  28. package/{lib/dates → dates}/calc.js.map +0 -0
  29. package/{lib/dates → dates}/convert.d.ts +0 -0
  30. package/{lib/dates → dates}/convert.d.ts.map +0 -0
  31. package/{lib/dates → dates}/convert.js +0 -0
  32. package/{lib/dates → dates}/convert.js.map +0 -0
  33. package/{lib/dates → dates}/datex.d.ts +0 -0
  34. package/{lib/dates → dates}/datex.d.ts.map +0 -0
  35. package/{lib/dates → dates}/datex.js +0 -0
  36. package/{lib/dates → dates}/datex.js.map +0 -0
  37. package/{lib/dates → dates}/format.d.ts +0 -0
  38. package/{lib/dates → dates}/format.d.ts.map +0 -0
  39. package/{lib/dates → dates}/format.js +0 -0
  40. package/{lib/dates → dates}/format.js.map +0 -0
  41. package/{lib/dates → dates}/index.d.ts +0 -0
  42. package/{lib/dates → dates}/index.d.ts.map +0 -0
  43. package/{lib/dates → dates}/index.js +0 -0
  44. package/{lib/dates → dates}/index.js.map +0 -0
  45. package/{lib/dates → dates}/parse.d.ts +0 -0
  46. package/{lib/dates → dates}/parse.d.ts.map +0 -0
  47. package/{lib/dates → dates}/parse.js +0 -0
  48. package/{lib/dates → dates}/parse.js.map +0 -0
  49. package/{lib/dates → dates}/period.d.ts +0 -0
  50. package/{lib/dates → dates}/period.d.ts.map +0 -0
  51. package/{lib/dates → dates}/period.js +0 -0
  52. package/{lib/dates → dates}/period.js.map +0 -0
  53. package/{lib/dates → dates}/shift.d.ts +0 -0
  54. package/{lib/dates → dates}/shift.d.ts.map +0 -0
  55. package/{lib/dates → dates}/shift.js +0 -0
  56. package/{lib/dates → dates}/shift.js.map +0 -0
  57. package/{lib/dates → dates}/types.d.ts +0 -0
  58. package/{lib/dates → dates}/types.d.ts.map +0 -0
  59. package/{lib/dates → dates}/types.js +0 -0
  60. package/{lib/dates → dates}/types.js.map +0 -0
  61. package/{lib/dates → dates}/yearDate.d.ts +0 -0
  62. package/{lib/dates → dates}/yearDate.d.ts.map +0 -0
  63. package/{lib/dates → dates}/yearDate.js +0 -0
  64. package/{lib/dates → dates}/yearDate.js.map +0 -0
  65. package/{lib/fields → fields}/filter.d.ts +0 -0
  66. package/{lib/fields → fields}/filter.d.ts.map +0 -0
  67. package/{lib/fields → fields}/filter.js +0 -0
  68. package/{lib/fields → fields}/filter.js.map +0 -0
  69. package/{lib/fields → fields}/index.d.ts +0 -0
  70. package/{lib/fields → fields}/index.d.ts.map +0 -0
  71. package/{lib/fields → fields}/index.js +0 -0
  72. package/{lib/fields → fields}/index.js.map +0 -0
  73. package/{lib/fields → fields}/transfer.d.ts +0 -0
  74. package/{lib/fields → fields}/transfer.d.ts.map +0 -0
  75. package/{lib/fields → fields}/transfer.js +0 -0
  76. package/{lib/fields → fields}/transfer.js.map +0 -0
  77. package/{lib/fields → fields}/update.d.ts +0 -0
  78. package/{lib/fields → fields}/update.d.ts.map +0 -0
  79. package/{lib/fields → fields}/update.js +0 -0
  80. package/{lib/fields → fields}/update.js.map +0 -0
  81. package/{lib/functions → functions}/assert.d.ts +0 -0
  82. package/{lib/functions → functions}/assert.d.ts.map +0 -0
  83. package/{lib/functions → functions}/assert.js +0 -0
  84. package/{lib/functions → functions}/assert.js.map +0 -0
  85. package/{lib/functions → functions}/disposer.d.ts +0 -0
  86. package/{lib/functions → functions}/disposer.d.ts.map +0 -0
  87. package/{lib/functions → functions}/disposer.js +0 -0
  88. package/{lib/functions → functions}/disposer.js.map +0 -0
  89. package/{lib/functions → functions}/safeCall.d.ts +0 -0
  90. package/{lib/functions → functions}/safeCall.d.ts.map +0 -0
  91. package/{lib/functions → functions}/safeCall.js +0 -0
  92. package/{lib/functions → functions}/safeCall.js.map +0 -0
  93. package/{lib/functions → functions}/throttle.d.ts +0 -0
  94. package/{lib/functions → functions}/throttle.d.ts.map +0 -0
  95. package/{lib/functions → functions}/throttle.js +0 -0
  96. package/{lib/functions → functions}/throttle.js.map +0 -0
  97. package/{lib/lazy → lazy}/light.d.ts +0 -0
  98. package/{lib/lazy → lazy}/light.d.ts.map +0 -0
  99. package/{lib/lazy → lazy}/light.js +0 -0
  100. package/{lib/lazy → lazy}/light.js.map +0 -0
  101. package/{lib/lazy → lazy}/promise.d.ts +0 -0
  102. package/{lib/lazy → lazy}/promise.d.ts.map +0 -0
  103. package/{lib/lazy → lazy}/promise.js +0 -0
  104. package/{lib/lazy → lazy}/promise.js.map +0 -0
  105. package/{lib/lazy → lazy}/singleton.d.ts +0 -0
  106. package/{lib/lazy → lazy}/singleton.d.ts.map +0 -0
  107. package/{lib/lazy → lazy}/singleton.js +0 -0
  108. package/{lib/lazy → lazy}/singleton.js.map +0 -0
  109. package/{lib/logger → logger}/abstractions.d.ts +0 -0
  110. package/{lib/logger → logger}/abstractions.d.ts.map +0 -0
  111. package/{lib/logger → logger}/abstractions.js +0 -0
  112. package/{lib/logger → logger}/abstractions.js.map +0 -0
  113. package/{lib/logger → logger}/batch.d.ts +0 -0
  114. package/{lib/logger → logger}/batch.d.ts.map +0 -0
  115. package/{lib/logger → logger}/batch.js +0 -0
  116. package/{lib/logger → logger}/batch.js.map +0 -0
  117. package/{lib/logger → logger}/console.d.ts +0 -0
  118. package/{lib/logger → logger}/console.d.ts.map +0 -0
  119. package/{lib/logger → logger}/console.js +0 -0
  120. package/{lib/logger → logger}/console.js.map +0 -0
  121. package/{lib/logger → logger}/file.d.ts +0 -0
  122. package/{lib/logger → logger}/file.d.ts.map +0 -0
  123. package/{lib/logger → logger}/file.js +0 -0
  124. package/{lib/logger → logger}/file.js.map +0 -0
  125. package/{lib/logger → logger}/index.d.ts +0 -0
  126. package/{lib/logger → logger}/index.d.ts.map +1 -1
  127. package/{lib/logger → logger}/index.js +1 -1
  128. package/logger/index.js.map +1 -0
  129. package/{lib/logger → logger}/named.d.ts +0 -0
  130. package/{lib/logger → logger}/named.d.ts.map +0 -0
  131. package/{lib/logger → logger}/named.js +0 -0
  132. package/{lib/logger → logger}/named.js.map +0 -0
  133. package/{lib/logger → logger}/proxy.d.ts +0 -0
  134. package/{lib/logger → logger}/proxy.d.ts.map +0 -0
  135. package/{lib/logger → logger}/proxy.js +0 -0
  136. package/{lib/logger → logger}/proxy.js.map +0 -0
  137. package/{lib/math → math}/arrays.d.ts +0 -0
  138. package/{lib/math → math}/arrays.d.ts.map +0 -0
  139. package/{lib/math → math}/arrays.js +0 -0
  140. package/{lib/math → math}/arrays.js.map +0 -0
  141. package/{lib/math → math}/calc.d.ts +0 -0
  142. package/{lib/math → math}/calc.d.ts.map +0 -0
  143. package/{lib/math → math}/calc.js +0 -0
  144. package/{lib/math → math}/calc.js.map +0 -0
  145. package/{lib/math → math}/distribution.d.ts +0 -0
  146. package/{lib/math → math}/distribution.d.ts.map +0 -0
  147. package/{lib/math → math}/distribution.js +0 -0
  148. package/{lib/math → math}/distribution.js.map +0 -0
  149. package/{lib/math → math}/index.d.ts +0 -0
  150. package/{lib/math → math}/index.d.ts.map +0 -0
  151. package/{lib/math → math}/index.js +0 -0
  152. package/{lib/math → math}/index.js.map +0 -0
  153. package/{lib/models → models}/EntityWithStatus.d.ts +0 -0
  154. package/{lib/models → models}/EntityWithStatus.d.ts.map +0 -0
  155. package/{lib/models → models}/EntityWithStatus.js +0 -0
  156. package/{lib/models → models}/EntityWithStatus.js.map +0 -0
  157. package/{lib/models → models}/File.d.ts +0 -0
  158. package/{lib/models → models}/File.d.ts.map +0 -0
  159. package/{lib/models → models}/File.js +0 -0
  160. package/{lib/models → models}/File.js.map +0 -0
  161. package/models/Model.d.ts +12 -0
  162. package/models/Model.d.ts.map +1 -0
  163. package/models/Model.js +23 -0
  164. package/models/Model.js.map +1 -0
  165. package/{lib/observing → observing}/event.d.ts +0 -0
  166. package/{lib/observing → observing}/event.d.ts.map +0 -0
  167. package/{lib/observing → observing}/event.js +0 -0
  168. package/{lib/observing → observing}/event.js.map +0 -0
  169. package/{lib/observing → observing}/progressTracker.d.ts +0 -0
  170. package/{lib/observing → observing}/progressTracker.d.ts.map +0 -0
  171. package/{lib/observing → observing}/progressTracker.js +0 -0
  172. package/{lib/observing → observing}/progressTracker.js.map +0 -0
  173. package/{lib/observing → observing}/throttledEvent.d.ts +0 -0
  174. package/{lib/observing → observing}/throttledEvent.d.ts.map +0 -0
  175. package/{lib/observing → observing}/throttledEvent.js +0 -0
  176. package/{lib/observing → observing}/throttledEvent.js.map +0 -0
  177. package/{lib/observing → observing}/timer.d.ts +0 -0
  178. package/{lib/observing → observing}/timer.d.ts.map +0 -0
  179. package/{lib/observing → observing}/timer.js +0 -0
  180. package/{lib/observing → observing}/timer.js.map +0 -0
  181. package/package.json +8 -9
  182. package/{lib/storage → storage}/abstractions.d.ts +0 -0
  183. package/{lib/storage → storage}/abstractions.d.ts.map +0 -0
  184. package/{lib/storage → storage}/abstractions.js +0 -0
  185. package/{lib/storage → storage}/abstractions.js.map +0 -0
  186. package/{lib/storage → storage}/asyncWrapper.d.ts +0 -0
  187. package/{lib/storage → storage}/asyncWrapper.d.ts.map +0 -0
  188. package/{lib/storage → storage}/asyncWrapper.js +0 -0
  189. package/{lib/storage → storage}/asyncWrapper.js.map +0 -0
  190. package/{lib/storage → storage}/index.d.ts +0 -0
  191. package/{lib/storage → storage}/index.d.ts.map +0 -0
  192. package/{lib/storage → storage}/index.js +0 -0
  193. package/{lib/storage → storage}/index.js.map +0 -0
  194. package/{lib/storage → storage}/keyStorage.d.ts +0 -0
  195. package/{lib/storage → storage}/keyStorage.d.ts.map +0 -0
  196. package/{lib/storage → storage}/keyStorage.js +0 -0
  197. package/{lib/storage → storage}/keyStorage.js.map +0 -0
  198. package/{lib/structures → structures}/helpers/enum.d.ts +0 -0
  199. package/{lib/structures → structures}/helpers/enum.d.ts.map +0 -0
  200. package/{lib/structures → structures}/helpers/enum.js +0 -0
  201. package/{lib/structures → structures}/helpers/enum.js.map +0 -0
  202. package/{lib/structures → structures}/helpers/name.d.ts +0 -0
  203. package/{lib/structures → structures}/helpers/name.d.ts.map +0 -0
  204. package/{lib/structures → structures}/helpers/name.js +0 -0
  205. package/{lib/structures → structures}/helpers/name.js.map +0 -0
  206. package/{lib/structures → structures}/linkedList.d.ts +0 -0
  207. package/{lib/structures → structures}/linkedList.d.ts.map +0 -0
  208. package/{lib/structures → structures}/linkedList.js +0 -0
  209. package/{lib/structures → structures}/linkedList.js.map +0 -0
  210. package/{lib/structures → structures}/pool.d.ts +0 -0
  211. package/{lib/structures → structures}/pool.d.ts.map +0 -0
  212. package/{lib/structures → structures}/pool.js +0 -0
  213. package/{lib/structures → structures}/pool.js.map +0 -0
  214. package/{lib/structures → structures}/queue/parallel.d.ts +0 -0
  215. package/{lib/structures → structures}/queue/parallel.d.ts.map +0 -0
  216. package/{lib/structures → structures}/queue/parallel.js +0 -0
  217. package/{lib/structures → structures}/queue/parallel.js.map +0 -0
  218. package/{lib/structures → structures}/queue/tasks.d.ts +0 -0
  219. package/{lib/structures → structures}/queue/tasks.d.ts.map +0 -0
  220. package/{lib/structures → structures}/queue/tasks.js +0 -0
  221. package/{lib/structures → structures}/queue/tasks.js.map +0 -0
  222. package/{lib/structures → structures}/tempoCache.d.ts +0 -0
  223. package/{lib/structures → structures}/tempoCache.d.ts.map +0 -0
  224. package/{lib/structures → structures}/tempoCache.js +0 -0
  225. package/{lib/structures → structures}/tempoCache.js.map +0 -0
  226. package/{lib/types → types}/comparator.d.ts +0 -0
  227. package/{lib/types → types}/comparator.d.ts.map +0 -0
  228. package/{lib/types → types}/comparator.js +0 -0
  229. package/{lib/types → types}/comparator.js.map +0 -0
  230. package/{lib/types → types}/deep.d.ts +0 -0
  231. package/{lib/types → types}/deep.d.ts.map +0 -0
  232. package/{lib/types → types}/deep.js +0 -0
  233. package/{lib/types → types}/deep.js.map +0 -0
  234. package/{lib/types → types}/functions.d.ts +0 -0
  235. package/{lib/types → types}/functions.d.ts.map +0 -0
  236. package/{lib/types → types}/functions.js +0 -0
  237. package/{lib/types → types}/functions.js.map +0 -0
  238. package/{lib/types → types}/getter.d.ts +0 -0
  239. package/{lib/types → types}/getter.d.ts.map +0 -0
  240. package/{lib/types → types}/getter.js +0 -0
  241. package/{lib/types → types}/getter.js.map +0 -0
  242. package/{lib/types → types}/ident.d.ts +0 -0
  243. package/{lib/types → types}/ident.d.ts.map +0 -0
  244. package/{lib/types → types}/ident.js +0 -0
  245. package/{lib/types → types}/ident.js.map +0 -0
  246. package/{lib/types → types}/index.d.ts +3 -0
  247. package/{lib/types → types}/index.d.ts.map +1 -1
  248. package/{lib/types → types}/index.js +0 -0
  249. package/{lib/types → types}/index.js.map +0 -0
  250. package/types/models.d.ts +19 -0
  251. package/types/models.d.ts.map +1 -0
  252. package/types/models.js +3 -0
  253. package/types/models.js.map +1 -0
  254. package/{lib/validation → validation}/ValidationErrors.d.ts +0 -0
  255. package/{lib/validation → validation}/ValidationErrors.d.ts.map +0 -0
  256. package/{lib/validation → validation}/ValidationErrors.js +0 -0
  257. package/{lib/validation → validation}/ValidationErrors.js.map +0 -0
  258. package/{lib/validation → validation}/creditCard.d.ts +0 -0
  259. package/{lib/validation → validation}/creditCard.d.ts.map +0 -0
  260. package/{lib/validation → validation}/creditCard.js +0 -0
  261. package/{lib/validation → validation}/creditCard.js.map +0 -0
  262. package/{lib/validation → validation}/emails.d.ts +0 -0
  263. package/{lib/validation → validation}/emails.d.ts.map +0 -0
  264. package/{lib/validation → validation}/emails.js +0 -0
  265. package/{lib/validation → validation}/emails.js.map +0 -0
  266. package/{lib/validation → validation}/helpers.d.ts +0 -0
  267. package/{lib/validation → validation}/helpers.d.ts.map +0 -0
  268. package/{lib/validation → validation}/helpers.js +0 -0
  269. package/{lib/validation → validation}/helpers.js.map +0 -0
  270. package/{lib/validation → validation}/index.d.ts +0 -0
  271. package/{lib/validation → validation}/index.d.ts.map +0 -0
  272. package/{lib/validation → validation}/index.js +0 -0
  273. package/{lib/validation → validation}/index.js.map +0 -0
  274. package/{lib/validation → validation}/types.d.ts +0 -0
  275. package/{lib/validation → validation}/types.d.ts.map +0 -0
  276. package/{lib/validation → validation}/types.js +0 -0
  277. package/{lib/validation → validation}/types.js.map +0 -0
  278. package/{lib/validation → validation}/validators.d.ts +0 -0
  279. package/{lib/validation → validation}/validators.d.ts.map +0 -0
  280. package/{lib/validation → validation}/validators.js +0 -0
  281. package/{lib/validation → validation}/validators.js.map +0 -0
  282. package/{lib/validation → validation}/wrappers.d.ts +0 -0
  283. package/{lib/validation → validation}/wrappers.d.ts.map +0 -0
  284. package/{lib/validation → validation}/wrappers.js +0 -0
  285. package/{lib/validation → validation}/wrappers.js.map +0 -0
  286. package/.eslintignore +0 -5
  287. package/.eslintrc.js +0 -9
  288. package/.github/workflows/CI.yml +0 -48
  289. package/.gitignore +0 -13
  290. package/.nvmrc +0 -1
  291. package/coverage/clover.xml +0 -1280
  292. package/coverage/coverage-final.json +0 -43
  293. package/coverage/lcov-report/CommonModel.ts.html +0 -215
  294. package/coverage/lcov-report/FlagModel.ts.html +0 -290
  295. package/coverage/lcov-report/MultiSelectModel.ts.html +0 -614
  296. package/coverage/lcov-report/NumberModel.ts.html +0 -230
  297. package/coverage/lcov-report/SelectModel.ts.html +0 -503
  298. package/coverage/lcov-report/Validatable.ts.html +0 -386
  299. package/coverage/lcov-report/__tests__/helpers/expect.ts.html +0 -94
  300. package/coverage/lcov-report/__tests__/helpers/index.html +0 -131
  301. package/coverage/lcov-report/__tests__/helpers/main.ts.html +0 -121
  302. package/coverage/lcov-report/async/arrays.ts.html +0 -199
  303. package/coverage/lcov-report/async/index.html +0 -131
  304. package/coverage/lcov-report/async/timeout.ts.html +0 -337
  305. package/coverage/lcov-report/base.css +0 -224
  306. package/coverage/lcov-report/block-navigation.js +0 -87
  307. package/coverage/lcov-report/dates/calc.ts.html +0 -301
  308. package/coverage/lcov-report/dates/convert.ts.html +0 -658
  309. package/coverage/lcov-report/dates/datex.ts.html +0 -211
  310. package/coverage/lcov-report/dates/format.ts.html +0 -403
  311. package/coverage/lcov-report/dates/index.html +0 -251
  312. package/coverage/lcov-report/dates/index.ts.html +0 -112
  313. package/coverage/lcov-report/dates/parse.ts.html +0 -157
  314. package/coverage/lcov-report/dates/period.ts.html +0 -154
  315. package/coverage/lcov-report/dates/shift.ts.html +0 -355
  316. package/coverage/lcov-report/dates/types.ts.html +0 -181
  317. package/coverage/lcov-report/dates/yearDate.ts.html +0 -193
  318. package/coverage/lcov-report/disposer.ts.html +0 -376
  319. package/coverage/lcov-report/enumHelper.ts.html +0 -454
  320. package/coverage/lcov-report/favicon.png +0 -0
  321. package/coverage/lcov-report/fields/index.html +0 -116
  322. package/coverage/lcov-report/fields/update.ts.html +0 -457
  323. package/coverage/lcov-report/functions/disposer.ts.html +0 -376
  324. package/coverage/lcov-report/functions/index.html +0 -116
  325. package/coverage/lcov-report/functions/safeCall.ts.html +0 -103
  326. package/coverage/lcov-report/index.html +0 -311
  327. package/coverage/lcov-report/lazy/index.html +0 -131
  328. package/coverage/lcov-report/lazy/light.ts.html +0 -172
  329. package/coverage/lcov-report/lazy/promise.ts.html +0 -241
  330. package/coverage/lcov-report/lazy/singleton.ts.html +0 -181
  331. package/coverage/lcov-report/logger/batch.ts.html +0 -112
  332. package/coverage/lcov-report/logger/console.ts.html +0 -241
  333. package/coverage/lcov-report/logger/index.html +0 -176
  334. package/coverage/lcov-report/logger/index.ts.html +0 -298
  335. package/coverage/lcov-report/logger/named.ts.html +0 -226
  336. package/coverage/lcov-report/logger/proxy.ts.html +0 -172
  337. package/coverage/lcov-report/math/arrays.ts.html +0 -907
  338. package/coverage/lcov-report/math/calc.ts.html +0 -292
  339. package/coverage/lcov-report/math/distribution.ts.html +0 -145
  340. package/coverage/lcov-report/math/index.html +0 -161
  341. package/coverage/lcov-report/math/index.ts.html +0 -166
  342. package/coverage/lcov-report/observing/event.ts.html +0 -358
  343. package/coverage/lcov-report/observing/index.html +0 -116
  344. package/coverage/lcov-report/observing/transition.ts.html +0 -634
  345. package/coverage/lcov-report/parallel.ts.html +0 -550
  346. package/coverage/lcov-report/prettify.css +0 -1
  347. package/coverage/lcov-report/prettify.js +0 -2
  348. package/coverage/lcov-report/queue/index.html +0 -116
  349. package/coverage/lcov-report/queue/parallel.ts.html +0 -499
  350. package/coverage/lcov-report/queue/tasks.ts.html +0 -358
  351. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  352. package/coverage/lcov-report/sorter.js +0 -196
  353. package/coverage/lcov-report/src/__tests__/helpers/expect.ts.html +0 -94
  354. package/coverage/lcov-report/src/__tests__/helpers/index.html +0 -131
  355. package/coverage/lcov-report/src/__tests__/helpers/main.ts.html +0 -121
  356. package/coverage/lcov-report/src/async/arrays.ts.html +0 -199
  357. package/coverage/lcov-report/src/async/index.html +0 -131
  358. package/coverage/lcov-report/src/async/timeout.ts.html +0 -337
  359. package/coverage/lcov-report/src/cache.ts.html +0 -628
  360. package/coverage/lcov-report/src/dates/calc.ts.html +0 -301
  361. package/coverage/lcov-report/src/dates/convert.ts.html +0 -658
  362. package/coverage/lcov-report/src/dates/datex.ts.html +0 -211
  363. package/coverage/lcov-report/src/dates/format.ts.html +0 -403
  364. package/coverage/lcov-report/src/dates/index.html +0 -251
  365. package/coverage/lcov-report/src/dates/index.ts.html +0 -112
  366. package/coverage/lcov-report/src/dates/parse.ts.html +0 -157
  367. package/coverage/lcov-report/src/dates/period.ts.html +0 -154
  368. package/coverage/lcov-report/src/dates/shift.ts.html +0 -355
  369. package/coverage/lcov-report/src/dates/types.ts.html +0 -181
  370. package/coverage/lcov-report/src/dates/yearDate.ts.html +0 -193
  371. package/coverage/lcov-report/src/disposer.ts.html +0 -376
  372. package/coverage/lcov-report/src/enumHelper.ts.html +0 -454
  373. package/coverage/lcov-report/src/event.ts.html +0 -361
  374. package/coverage/lcov-report/src/fields/index.html +0 -116
  375. package/coverage/lcov-report/src/fields/update.ts.html +0 -457
  376. package/coverage/lcov-report/src/functions.ts.html +0 -127
  377. package/coverage/lcov-report/src/index.html +0 -251
  378. package/coverage/lcov-report/src/lazy/index.html +0 -161
  379. package/coverage/lcov-report/src/lazy/lazy.ts.html +0 -181
  380. package/coverage/lcov-report/src/lazy/light.ts.html +0 -172
  381. package/coverage/lcov-report/src/lazy/observable.ts.html +0 -196
  382. package/coverage/lcov-report/src/lazy/promise.ts.html +0 -241
  383. package/coverage/lcov-report/src/lazy/singleton.ts.html +0 -181
  384. package/coverage/lcov-report/src/lazy.light.ts.html +0 -172
  385. package/coverage/lcov-report/src/logger/batch.ts.html +0 -112
  386. package/coverage/lcov-report/src/logger/console.ts.html +0 -241
  387. package/coverage/lcov-report/src/logger/index.html +0 -176
  388. package/coverage/lcov-report/src/logger/index.ts.html +0 -298
  389. package/coverage/lcov-report/src/logger/named.ts.html +0 -226
  390. package/coverage/lcov-report/src/logger/proxy.ts.html +0 -172
  391. package/coverage/lcov-report/src/math/arrays.ts.html +0 -868
  392. package/coverage/lcov-report/src/math/calc.ts.html +0 -292
  393. package/coverage/lcov-report/src/math/distribution.ts.html +0 -145
  394. package/coverage/lcov-report/src/math/index.html +0 -161
  395. package/coverage/lcov-report/src/math/index.ts.html +0 -166
  396. package/coverage/lcov-report/src/observers.ts.html +0 -368
  397. package/coverage/lcov-report/src/observersMap.ts.html +0 -400
  398. package/coverage/lcov-report/src/observingCache.ts.html +0 -565
  399. package/coverage/lcov-report/src/queue/index.html +0 -131
  400. package/coverage/lcov-report/src/queue/parallel.ts.html +0 -511
  401. package/coverage/lcov-report/src/queue/tasks.ts.html +0 -358
  402. package/coverage/lcov-report/src/tempoCache.ts.html +0 -139
  403. package/coverage/lcov-report/src/transitionObserver.ts.html +0 -634
  404. package/coverage/lcov-report/src/types/comparator.ts.html +0 -103
  405. package/coverage/lcov-report/src/types/getter.ts.html +0 -127
  406. package/coverage/lcov-report/src/types/index.html +0 -146
  407. package/coverage/lcov-report/src/types/index.ts.html +0 -112
  408. package/coverage/lcov-report/src/types.ts.html +0 -175
  409. package/coverage/lcov-report/src/validation/ValidationErrors.ts.html +0 -163
  410. package/coverage/lcov-report/src/validation/creditCard.ts.html +0 -160
  411. package/coverage/lcov-report/src/validation/helpers.ts.html +0 -226
  412. package/coverage/lcov-report/src/validation/index.html +0 -206
  413. package/coverage/lcov-report/src/validation/index.ts.html +0 -112
  414. package/coverage/lcov-report/src/validation/types.ts.html +0 -139
  415. package/coverage/lcov-report/src/validation/validators.ts.html +0 -250
  416. package/coverage/lcov-report/src/validation/wrappers.ts.html +0 -163
  417. package/coverage/lcov-report/src/viewModels/CommonModel.ts.html +0 -220
  418. package/coverage/lcov-report/src/viewModels/FlagModel.ts.html +0 -295
  419. package/coverage/lcov-report/src/viewModels/LoadingModel.ts.html +0 -241
  420. package/coverage/lcov-report/src/viewModels/MultiSelectModel.ts.html +0 -619
  421. package/coverage/lcov-report/src/viewModels/NumberModel.ts.html +0 -235
  422. package/coverage/lcov-report/src/viewModels/SelectModel.ts.html +0 -541
  423. package/coverage/lcov-report/src/viewModels/TextModel.ts.html +0 -466
  424. package/coverage/lcov-report/src/viewModels/Validatable.ts.html +0 -391
  425. package/coverage/lcov-report/src/viewModels/index.html +0 -236
  426. package/coverage/lcov-report/src/viewModels/wrappers.ts.html +0 -232
  427. package/coverage/lcov-report/structures/helpers/enum.ts.html +0 -454
  428. package/coverage/lcov-report/structures/helpers/index.html +0 -116
  429. package/coverage/lcov-report/structures/index.html +0 -116
  430. package/coverage/lcov-report/structures/promiseCache.ts.html +0 -628
  431. package/coverage/lcov-report/structures/queue/index.html +0 -131
  432. package/coverage/lcov-report/structures/queue/parallel.ts.html +0 -511
  433. package/coverage/lcov-report/structures/queue/tasks.ts.html +0 -358
  434. package/coverage/lcov-report/structures/subscribersMap.ts.html +0 -400
  435. package/coverage/lcov-report/structures/subscribersPromiseCache.ts.html +0 -562
  436. package/coverage/lcov-report/structures/tempoCache.ts.html +0 -139
  437. package/coverage/lcov-report/tasks.ts.html +0 -355
  438. package/coverage/lcov-report/tempoCache.ts.html +0 -134
  439. package/coverage/lcov-report/timer.ts.html +0 -200
  440. package/coverage/lcov-report/types/comparator.ts.html +0 -103
  441. package/coverage/lcov-report/types/getter.ts.html +0 -127
  442. package/coverage/lcov-report/types/index.html +0 -146
  443. package/coverage/lcov-report/types/index.ts.html +0 -136
  444. package/coverage/lcov-report/update.ts.html +0 -374
  445. package/coverage/lcov-report/validation/ValidationErrors.ts.html +0 -163
  446. package/coverage/lcov-report/validation/creditCard.ts.html +0 -160
  447. package/coverage/lcov-report/validation/helpers.ts.html +0 -226
  448. package/coverage/lcov-report/validation/index.html +0 -206
  449. package/coverage/lcov-report/validation/index.ts.html +0 -112
  450. package/coverage/lcov-report/validation/types.ts.html +0 -139
  451. package/coverage/lcov-report/validation/validators.ts.html +0 -250
  452. package/coverage/lcov-report/validation/wrappers.ts.html +0 -163
  453. package/coverage/lcov-report/viewModels/CommonModel.ts.html +0 -215
  454. package/coverage/lcov-report/viewModels/FlagModel.ts.html +0 -290
  455. package/coverage/lcov-report/viewModels/LoadingModel.ts.html +0 -244
  456. package/coverage/lcov-report/viewModels/MultiSelectModel.ts.html +0 -614
  457. package/coverage/lcov-report/viewModels/NumberModel.ts.html +0 -230
  458. package/coverage/lcov-report/viewModels/SelectModel.ts.html +0 -536
  459. package/coverage/lcov-report/viewModels/TextModel.ts.html +0 -461
  460. package/coverage/lcov-report/viewModels/Validatable.ts.html +0 -386
  461. package/coverage/lcov-report/viewModels/index.html +0 -116
  462. package/coverage/lcov.info +0 -2765
  463. package/global-test-setup.js +0 -3
  464. package/jest.config.js +0 -10
  465. package/lib/async/misc.d.ts +0 -3
  466. package/lib/async/misc.js +0 -13
  467. package/lib/async/misc.js.map +0 -1
  468. package/lib/logger/index.js.map +0 -1
  469. package/src/.DS_Store +0 -0
  470. package/src/__tests__/helpers/expect.ts +0 -3
  471. package/src/__tests__/helpers/main.ts +0 -12
  472. package/src/abstractions/controllers/IPluggableController.ts +0 -7
  473. package/src/async/__tests__/timeout.test.ts +0 -74
  474. package/src/async/arrays.extend.ts +0 -17
  475. package/src/async/arrays.ts +0 -38
  476. package/src/async/misc.ts +0 -11
  477. package/src/async/timeout.ts +0 -84
  478. package/src/controllers/PluggableController.ts +0 -35
  479. package/src/dates/__tests__/dates.test.ts +0 -1314
  480. package/src/dates/calc.ts +0 -72
  481. package/src/dates/convert.ts +0 -191
  482. package/src/dates/datex.ts +0 -42
  483. package/src/dates/format.ts +0 -106
  484. package/src/dates/index.ts +0 -9
  485. package/src/dates/parse.ts +0 -24
  486. package/src/dates/period.ts +0 -23
  487. package/src/dates/shift.ts +0 -90
  488. package/src/dates/types.ts +0 -32
  489. package/src/dates/yearDate.ts +0 -36
  490. package/src/fields/__tests__/fields.update.test.ts +0 -73
  491. package/src/fields/filter.ts +0 -27
  492. package/src/fields/index.ts +0 -4
  493. package/src/fields/transfer.ts +0 -85
  494. package/src/fields/update.ts +0 -124
  495. package/src/functions/assert.ts +0 -19
  496. package/src/functions/disposer.ts +0 -97
  497. package/src/functions/safeCall.ts +0 -6
  498. package/src/functions/throttle.ts +0 -96
  499. package/src/lazy/__tests__/lazy.test.ts +0 -48
  500. package/src/lazy/light.ts +0 -29
  501. package/src/lazy/promise.ts +0 -52
  502. package/src/lazy/singleton.ts +0 -32
  503. package/src/logger/__tests__/logger.test.ts +0 -206
  504. package/src/logger/abstractions.ts +0 -13
  505. package/src/logger/batch.ts +0 -9
  506. package/src/logger/console.ts +0 -52
  507. package/src/logger/file.ts +0 -66
  508. package/src/logger/index.ts +0 -71
  509. package/src/logger/named.ts +0 -47
  510. package/src/logger/proxy.ts +0 -29
  511. package/src/math/__tests__/arrays.test.ts +0 -196
  512. package/src/math/__tests__/calc.test.ts +0 -67
  513. package/src/math/__tests__/distribution.test.ts +0 -25
  514. package/src/math/__tests__/index.test.ts +0 -20
  515. package/src/math/arrays.ts +0 -274
  516. package/src/math/calc.ts +0 -69
  517. package/src/math/distribution.ts +0 -20
  518. package/src/math/index.ts +0 -27
  519. package/src/models/EntityWithStatus.ts +0 -58
  520. package/src/models/File.ts +0 -14
  521. package/src/observing/event.ts +0 -91
  522. package/src/observing/progressTracker.ts +0 -90
  523. package/src/observing/throttledEvent.ts +0 -20
  524. package/src/observing/timer.ts +0 -40
  525. package/src/storage/abstractions.ts +0 -18
  526. package/src/storage/asyncWrapper.ts +0 -24
  527. package/src/storage/index.ts +0 -2
  528. package/src/storage/keyStorage.ts +0 -40
  529. package/src/structures/__tests__/enumHelper.test.ts +0 -85
  530. package/src/structures/__tests__/tempoCache.test.ts +0 -31
  531. package/src/structures/helpers/enum.ts +0 -123
  532. package/src/structures/helpers/name.ts +0 -58
  533. package/src/structures/linkedList.ts +0 -129
  534. package/src/structures/pool.ts +0 -47
  535. package/src/structures/queue/__tests__/parallel.test.ts +0 -58
  536. package/src/structures/queue/__tests__/tasks.test.ts +0 -87
  537. package/src/structures/queue/parallel.ts +0 -142
  538. package/src/structures/queue/tasks.ts +0 -91
  539. package/src/structures/tempoCache.ts +0 -18
  540. package/src/types/comparator.ts +0 -6
  541. package/src/types/deep.ts +0 -18
  542. package/src/types/functions.ts +0 -8
  543. package/src/types/getter.ts +0 -14
  544. package/src/types/ident.ts +0 -8
  545. package/src/types/index.ts +0 -17
  546. package/src/validation/ValidationErrors.ts +0 -26
  547. package/src/validation/__tests__/index.test.ts +0 -8
  548. package/src/validation/__tests__/validator.test.ts +0 -107
  549. package/src/validation/creditCard.ts +0 -25
  550. package/src/validation/emails.ts +0 -5
  551. package/src/validation/helpers.ts +0 -47
  552. package/src/validation/index.ts +0 -9
  553. package/src/validation/types.ts +0 -18
  554. package/src/validation/validators.ts +0 -55
  555. package/src/validation/wrappers.ts +0 -26
  556. package/tsconfig.build.json +0 -10
  557. package/tsconfig.json +0 -32
  558. package/yarn-error.log +0 -3709
  559. package/yarn.lock +0 -3446
@@ -1,73 +0,0 @@
1
- import { updateArray } from '../update';
2
-
3
- describe('fields/update', () => {
4
- it('empty input', () => {
5
- expect(updateArray(null, null)).toStrictEqual({ changed: 0, result: null });
6
- });
7
-
8
- it('updates primitives | numbers', () => {
9
- const target = [1, 5, 3];
10
- const source = [4, 3, 2];
11
-
12
- const results1 = updateArray(target, source, { clone: true });
13
- expect(results1.changed).toBe(4);
14
- expect(results1.result).toStrictEqual([2, 3, 4]);
15
-
16
- const results2 = updateArray(target, source, { sorter: null });
17
- expect(results2.changed).toBe(4);
18
- expect(results2.result).toStrictEqual([3, 4, 2]);
19
- });
20
-
21
- it('updates primitives | strings', () => {
22
- const target = ['a', 'b', 'c'];
23
- const source = ['b', 'c', 'd'];
24
-
25
- const results = updateArray(target, source);
26
-
27
- expect(results.changed).toBe(2);
28
- expect(results.result).toStrictEqual(source);
29
- });
30
-
31
- describe('updates objects', () => {
32
- it('no options', () => {
33
- const res = updateArray([
34
- { id: 1, v: 'a' },
35
- { id: 5, v: 'e' },
36
- { id: 3, v: 'c' },
37
- ], [
38
- { id: 2, v: 'b' },
39
- ]);
40
-
41
- expect(res.changed).toBe(4);
42
- expect(res.result).toStrictEqual([
43
- { id: 2, v: 'b' },
44
- ]);
45
- });
46
-
47
- // eslint-disable-next-line jest/expect-expect
48
- it('full options', () => {
49
- const res = updateArray([
50
- { id: 1, v: 'a' },
51
- { id: 5, v: 'e' },
52
- { id: 3, v: 'c' },
53
- ], [
54
- { id: 2, v: 'b' },
55
- { id: 1, v: '1K' },
56
- ], {
57
- clone: true,
58
- comparator: (v1, v2) => v1.id === v2.id,
59
- updater: (t, s) => {
60
- t.v = s.v + '_' + t.id;
61
- return t;
62
- },
63
- sorter: (v1, v2) => v1.id - v2.id,
64
- });
65
-
66
- expect(res.changed).toBe(3);
67
- expect(res.result).toStrictEqual([
68
- { id: 1, v: '1K_1' },
69
- { id: 2, v: 'b' },
70
- ]);
71
- });
72
- });
73
- });
@@ -1,27 +0,0 @@
1
-
2
- export type FieldFilter<T> = (value: T[keyof T]) => boolean;
3
-
4
- export function filterFields<T>(source: Partial<T>, ...fields: ((keyof T) | { key: keyof T, filter: FieldFilter<T>})[]): Partial<T> {
5
- const res: Partial<T> = { };
6
-
7
- fields.forEach(k => {
8
- if (typeof k === 'object') {
9
- const v = source[k.key];
10
- if (k.filter(v)) {
11
- res[k.key] = v;
12
- }
13
- } else {
14
- const v = source[k];
15
- if (v) {
16
- res[k] = v;
17
- }
18
- }
19
- });
20
-
21
- return res;
22
- }
23
-
24
- export namespace filterFields {
25
- export function Truethy<T>(): FieldFilter<T> { return (v) => !!v; }
26
- export function NotNull<T>(): FieldFilter<T> { return v => v != null; }
27
- }
@@ -1,4 +0,0 @@
1
-
2
- export * from './filter';
3
- export * from './update';
4
- export * from './transfer';
@@ -1,85 +0,0 @@
1
-
2
- export function transferFields<T>(
3
- source: T,
4
- predicate: (f: keyof T, v: T[keyof T]) => boolean,
5
- destination: Partial<T>,
6
- ...fields: (keyof T)[]
7
- ): number {
8
- let count = 0;
9
- fields.forEach(f => {
10
- const v = source[f];
11
- if (!predicate || predicate(f, v)) {
12
- destination[f] = v;
13
- ++count;
14
- }
15
- });
16
-
17
- return count;
18
- }
19
-
20
- export namespace transferFields {
21
- export function truthy<T>(
22
- source: T,
23
- destination: Partial<T>,
24
- ...fields: (keyof T)[]
25
- ): number {
26
- return transferFields(source, (f, v) => !!v, destination, ...fields);
27
- }
28
-
29
- export function notNull<T>(
30
- source: T,
31
- destination: Partial<T>,
32
- ...fields: (keyof T)[]
33
- ): number {
34
- return transferFields(source, (f, v) => v != null, destination, ...fields);
35
- }
36
-
37
- export function defined<T>(
38
- source: T,
39
- destination: Partial<T>,
40
- ...fields: (keyof T)[]
41
- ): number {
42
- return transferFields(source, (f, v) => v !== undefined, destination, ...fields);
43
- }
44
-
45
- export function changed<T>(
46
- source: T,
47
- compare: T,
48
- destination: Partial<T>,
49
- ...fields: (keyof T)[]
50
- ): number {
51
- return transferFields(
52
- source,
53
- (f, v) => v !== undefined && source[f] !== compare[f],
54
- destination,
55
- ...fields
56
- );
57
- }
58
- }
59
-
60
- export function hasChangedFields<T>(left: T, right: T, ...fields: (keyof T)[]) {
61
- return fields.some(f => left[f] !== right[f]);
62
- }
63
-
64
- type ExtractChangedFieldsResult<T> = {
65
- transferred: number;
66
- result: Partial<T>;
67
- };
68
-
69
- export function extractChangedFields<T>(
70
- source: Partial<T>,
71
- image: T,
72
- ...fields: (keyof T)[]
73
- ): ExtractChangedFieldsResult<T> {
74
- const res: Partial<T> = {};
75
- const count = transferFields<Partial<T>>(
76
- source,
77
- (f, v) => v !== undefined && v !== image[f],
78
- res,
79
- ...fields
80
- );
81
- return {
82
- transferred: count,
83
- result: res,
84
- };
85
- }
@@ -1,124 +0,0 @@
1
- import { safeCall } from '../functions/safeCall';
2
- import { Comparator } from '../types';
3
-
4
- export namespace Fields {
5
- export type Getter<T> = (obj: Partial<T>) => T[keyof T];
6
- export type Setter<T> = (obj: Partial<T>, val: T[keyof T]) => void;
7
- export type Comparer<T> = (source: Partial<T>, target: Partial<T>) => boolean;
8
- export type Updater<T> = (target: T, source: T) => T;
9
- }
10
-
11
-
12
- export function updateField<T>(target: T, source: Partial<T>, diff: Partial<T>, key: keyof T, hasChanged: null | Fields.Comparer<T> = null): boolean {
13
- return updateFieldExtended(target, source, diff, t => t[key], (t, v) => t[key] = v, hasChanged);
14
- }
15
-
16
- export function updateFieldExtended<T>(
17
- target: T,
18
- source: Partial<T>,
19
- diff: Partial<T>,
20
- get: Fields.Getter<T>,
21
- set: Fields.Setter<T>,
22
- hasChanged: null | Fields.Comparer<T> = null,
23
- ): boolean {
24
-
25
- hasChanged = hasChanged || ((v1: T, v2: T) => (get(v1) !== get(v2)));
26
-
27
- let changed = true;
28
-
29
- if (get(source) !== undefined && hasChanged(source, target)) {
30
- changed = true;
31
- set(diff, get(target));
32
- set(target, get(source));
33
- }
34
-
35
- return changed;
36
-
37
- }
38
-
39
- const DefaultComparator: Comparator<any> = (v1, v2) => v1 === v2;
40
- const DefaultUpdater: Fields.Updater<any> = (v1, v2) => Object.assign(v1, v2);
41
-
42
- export type UpdateArrayOptions<T> = {
43
- additive?: boolean,
44
- unshift?: boolean,
45
- clone?: boolean,
46
- comparator?: Comparator<T>,
47
- updater?: Fields.Updater<T>,
48
- sorter?: Comparator<T, number> | null | undefined,
49
- hooks?: UpdateArrayHooks<T>,
50
- };
51
-
52
- export type UpdateArrayHooks<T> = {
53
- onAdded?: (item: T, index?: number) => void,
54
- onDeleted?: (item: T, index?: number) => void,
55
- onUpdated?: (previous: T, next: T, index?: number) => void,
56
- };
57
-
58
- export function updateArray<T>(
59
- target: T[] | null,
60
- source: T[] | null,
61
- options?: UpdateArrayOptions<T>,
62
- ): { changed: number, result: T[] } {
63
- if (!source) {
64
- return { changed: 0, result: target };
65
- }
66
-
67
- let changed = 0;
68
- const result = Array.isArray(target)
69
- ? (options?.clone ? target.slice() : target)
70
- : [];
71
-
72
- const comparator = options?.comparator || DefaultComparator;
73
- const updater = options?.updater || DefaultUpdater;
74
- const onDeleted = options?.hooks?.onDeleted;
75
- const onUpdate = options?.hooks?.onUpdated;
76
- const onAdded = options?.hooks?.onAdded;
77
-
78
- // remove all missing elements
79
- if (!options?.additive) {
80
- for (let i = 0; i < result.length; ++i) {
81
- if (source.find(item => comparator(item, result[i])) == null) {
82
- // DELETE
83
- const removed = result.splice(i, 1);
84
- safeCall(onDeleted, removed[0], i);
85
-
86
- ++changed;
87
- --i;
88
- }
89
- }
90
- }
91
-
92
- const unshift = options?.unshift || false;
93
-
94
- // add all new elements and update existing
95
- source.forEach(item => {
96
- const existingIndex = result.findIndex(i => comparator(item, i));
97
- const existingItem = result[existingIndex];
98
- if (existingIndex < 0) {
99
- if (unshift) {
100
- result.unshift(item);
101
- } else {
102
- result.push(item);
103
- }
104
- safeCall(onAdded, item, unshift ? 0 : result.length - 1);
105
- ++changed;
106
- } else if (typeof existingItem === 'object') {
107
- const before = onUpdate != null ? { ...existingItem } : undefined;
108
- result[existingIndex] = updater(existingItem, item);
109
- if (onUpdate != null) {
110
- onUpdate(before!, result[existingIndex], existingIndex);
111
- }
112
- }
113
- });
114
-
115
- const sorter = options?.sorter;
116
- if (sorter !== null) {
117
- result.sort(sorter || undefined);
118
- }
119
-
120
- return {
121
- result,
122
- changed,
123
- };
124
- }
@@ -1,19 +0,0 @@
1
- import { Getter } from '../types';
2
- import logger from '../logger';
3
-
4
- export function assert(condition: boolean, error: Getter<string | Error>, objectToLog?: Getter<any>): asserts condition {
5
- if (condition) {
6
- return;
7
- }
8
-
9
- const e = Getter.getValue(error);
10
- if (objectToLog) {
11
- logger.error('Assertion failed:', e, Getter.getValue(objectToLog));
12
- }
13
-
14
- if (typeof e === 'string') {
15
- throw new Error(e);
16
- }
17
-
18
- throw e;
19
- }
@@ -1,97 +0,0 @@
1
- import logger from '../logger';
2
-
3
- export interface IDisposable {
4
- dispose(): void;
5
- }
6
-
7
- export interface DisposeFunction {
8
- (): void;
9
- }
10
-
11
- export class Disposer {
12
-
13
- private readonly _disposers: DisposeFunction[] = [];
14
- private readonly _map = new Map<string, DisposeFunction>();
15
-
16
- private _loggerName: string = null;
17
-
18
- constructor(loggerName: string = null) {
19
- this._loggerName = loggerName;
20
- }
21
-
22
- public setLoggerName(loggerName: string) {
23
- this._loggerName = loggerName;
24
- return this;
25
- }
26
-
27
- public add(d: DisposeFunction | IDisposable, id?: string) {
28
- if (!d) {
29
- return;
30
- }
31
-
32
- const dd: DisposeFunction = typeof d !== 'function'
33
- ? (() => d.dispose ? d.dispose() : null)
34
- : d;
35
-
36
- this._disposers.push(dd);
37
-
38
- if (id) {
39
- // dispose previous identified disposer
40
- if (this._map.has(id)) {
41
- this.execute(id);
42
- }
43
-
44
- this._map.set(id, dd);
45
- }
46
- }
47
-
48
- public execute(id: string) {
49
- const d = this._map.get(id);
50
- if (!d) {
51
- return;
52
- }
53
-
54
- this._map.delete(id);
55
- const i = this._disposers.indexOf(d);
56
- if (i >= 0) {
57
- this._disposers.splice(i, 1);
58
- }
59
-
60
- d();
61
- }
62
-
63
- public dispose(log = false) {
64
- if (log) {
65
- logger.log(
66
- `[Disposer:${this._loggerName || '<unknown>'}] Disposing ${this._disposers.length} items including named ones:`,
67
- Array.from(this._map.entries()).map(e => e[0]),
68
- );
69
- }
70
-
71
- const copy = this._disposers.slice().reverse();
72
- this._disposers.length = 0;
73
- this._map.clear();
74
-
75
- // this should separate side effects
76
- copy.forEach(d => d());
77
- }
78
- }
79
-
80
- export function combineDisposers(...items: DisposeFunction[]): DisposeFunction {
81
- return () => items.forEach(i => i());
82
- }
83
-
84
- export class Disposable implements IDisposable {
85
-
86
- protected readonly disposer: Disposer;
87
- protected _isDisposed = false;
88
-
89
- constructor(loggerName: string = null) {
90
- this.disposer = new Disposer(loggerName);
91
- }
92
-
93
- public dispose = () => {
94
- this._isDisposed = true;
95
- this.disposer.dispose();
96
- };
97
- }
@@ -1,6 +0,0 @@
1
-
2
- export function safeCall<T extends (...args: any) => any>(cb: T | undefined, ...args: Parameters<T>): ReturnType<T> | void {
3
- if (cb) {
4
- return cb.apply(null, args);
5
- }
6
- }
@@ -1,96 +0,0 @@
1
- import logger from '../logger';
2
-
3
- export class ThrottleAction<T = any> {
4
-
5
- private _timeoutRef: any = null;
6
- private _postponedCb: () => (T | Promise<T>) = null;
7
- private _locked = false;
8
-
9
- private _resolvers: (() => void)[] = [];
10
-
11
- constructor(public timeout = 1000) {}
12
-
13
- clear() {
14
- clearTimeout(this._timeoutRef);
15
- this._timeoutRef = null;
16
- this._postponedCb = null;
17
- }
18
-
19
- tryRun(cb: () => T | Promise<T>, restartTimeout = false) {
20
- if (!this._timeoutRef) {
21
- this._postponedCb = cb;
22
- this._timeoutRef = setTimeout(this.forceRun, this.timeout);
23
- // logger.log('THROTTLE setTimeout', this.timeout);
24
- } else if (restartTimeout) {
25
- this.clear();
26
- this.tryRun(cb);
27
- }
28
- }
29
-
30
- forceRun = async () => {
31
- const cb = this._postponedCb;
32
- this.clear();
33
-
34
- if (this._locked) {
35
- logger.warn('THROTTLE LOCKED');
36
- } else if (cb) {
37
- try {
38
- this._locked = true;
39
- return await cb();
40
- } finally {
41
- this._locked = false;
42
-
43
- const resolvers = this._resolvers.slice();
44
- this._resolvers.length = 0;
45
- // logger.log('getPromise: resolving', resolvers.length);
46
- resolvers.forEach(r => r());
47
- }
48
- }
49
- };
50
-
51
- getPromise() {
52
- if (!this._locked && !this._timeoutRef) {
53
- // logger.log('getPromise: nothing to wait for');
54
- return Promise.resolve();
55
- }
56
-
57
- return new Promise<void>(resolve => {
58
- // logger.log('getPromise: adding resolver');
59
- this._resolvers.push(resolve);
60
- });
61
- }
62
- }
63
-
64
- export class ThrottleProcessor<TSubject> {
65
-
66
- private readonly _queue: TSubject[] = [];
67
- private readonly _action: ThrottleAction = null;
68
-
69
- constructor(readonly process: (objs: TSubject[]) => Promise<any>, timeout = 1000) {
70
- if (!process) {
71
- throw new Error('Arg0 expected: process');
72
- }
73
-
74
- this._action = new ThrottleAction(timeout);
75
- }
76
-
77
- push(data: TSubject) {
78
- this._queue.push(data);
79
-
80
- this._action.tryRun(this._process, true);
81
- }
82
-
83
- private _process = async () => {
84
- if (!this._queue.length) {
85
- return;
86
- }
87
-
88
- const objs = this._queue.slice();
89
- this._queue.length = 0;
90
- await this.process(objs);
91
- };
92
-
93
- clear() {
94
- this._action.clear();
95
- }
96
- }
@@ -1,48 +0,0 @@
1
- import { Lazy } from '../singleton';
2
- import { LazyPromise } from '../promise';
3
- import { setTimeoutAsync } from '../../async/timeout';
4
-
5
- import '../../__tests__/helpers/expect';
6
-
7
- describe('Lazy', () => {
8
- it('simple', () => {
9
- const VAL = 'abc';
10
- const l = new Lazy(() => VAL);
11
-
12
- expect(l.hasValue).toBeFalse();
13
- expect(l.value).toBe(VAL);
14
- expect(l.hasValue).toBeTrue();
15
-
16
- l.reset();
17
- expect(l.hasValue).toBeFalse();
18
-
19
- l.prewarm();
20
-
21
- expect(l.hasValue).toBeTrue();
22
- expect(l.value).toBe(VAL);
23
- });
24
- });
25
-
26
- describe('LazyPromise', () => {
27
-
28
- it('simple', async () => {
29
- const VAL = 'abc';
30
- const l = new LazyPromise(() => setTimeoutAsync(100).then(() => VAL));
31
-
32
- expect(l.hasValue).toBeFalse();
33
- expect(l.busy).toBeFalse();
34
-
35
- expect(l.value).toBeUndefined();
36
- expect(l.busy).toBeTrue();
37
-
38
- await expect(l.promise).resolves.not.toThrow();
39
-
40
- expect(l.hasValue).toBeTrue();
41
- expect(l.busy).toBeFalse();
42
- expect(l.value).toBe(VAL);
43
-
44
- l.dispose();
45
- expect(l.hasValue).toBeFalse();
46
- });
47
-
48
- });
package/src/lazy/light.ts DELETED
@@ -1,29 +0,0 @@
1
- import type { IDisposable } from '../functions/disposer';
2
-
3
- export type LazyLight<T> = IDisposable & {
4
- readonly value: T;
5
- readonly hasValue: boolean;
6
-
7
- reset(): void;
8
- };
9
-
10
- export function createLazy<T>(factory: () => T) {
11
- const _factory = factory;
12
- let _instance: T = undefined;
13
-
14
- const res: LazyLight<T> = {
15
- get value() {
16
- if (_instance === undefined) {
17
- _instance = _factory();
18
- }
19
- return _instance;
20
- },
21
- get hasValue() { return _instance !== undefined; },
22
- reset: () => {
23
- _instance = undefined;
24
- },
25
- dispose: () => res.reset(),
26
- };
27
-
28
- return res;
29
- }
@@ -1,52 +0,0 @@
1
- import type { IDisposable } from '../functions/disposer';
2
-
3
- export class LazyPromise<T> implements IDisposable {
4
-
5
- private _instance: T = undefined;
6
- private _busy: boolean = null;
7
-
8
- private _promise: Promise<T> = null;
9
-
10
- constructor(
11
- private readonly _factory: () => Promise<T>,
12
- private readonly initial: T = undefined,
13
- ) {
14
- this._instance = initial;
15
- }
16
-
17
- get busy() { return this._busy || false; }
18
- get hasValue() { return this._busy === false; }
19
-
20
- get promise() {
21
- this.ensureInstanceLoading();
22
- return this._promise;
23
- }
24
-
25
- get value() {
26
- this.ensureInstanceLoading();
27
- return this._instance;
28
- }
29
-
30
- protected ensureInstanceLoading() {
31
- if (this._busy === null) {
32
- this._busy = true;
33
- this._promise = this._factory();
34
- this._promise.then(this.setInstance);
35
- }
36
- }
37
-
38
- private setInstance = (res: T) => {
39
- this._busy = false;
40
- this._instance = res || null;
41
-
42
- // keep this._promise to allow to re-use it outside
43
- };
44
-
45
- reset() {
46
- this._busy = null;
47
- this._instance = this.initial;
48
- this._promise = null;
49
- }
50
-
51
- dispose = () => this.reset();
52
- }
@@ -1,32 +0,0 @@
1
- import type { IDisposable } from '../functions/disposer';
2
-
3
- export class Lazy<T> implements IDisposable {
4
-
5
- protected _instance: T = null;
6
-
7
- constructor(protected readonly _factory: (() => T)) { }
8
-
9
- get hasValue() { return this._instance !== null; }
10
-
11
- get value() {
12
- this.ensureInstance();
13
- return this._instance;
14
- }
15
-
16
- private ensureInstance() {
17
- if (this._instance === null) {
18
- this._instance = this._factory();
19
- }
20
- }
21
-
22
- prewarm() {
23
- this.ensureInstance();
24
- return this;
25
- }
26
-
27
- reset() {
28
- this._instance = null;
29
- }
30
-
31
- dispose() { this.reset(); }
32
- }