@zajno/common 1.6.2 → 2.0.0-beta.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 (509) hide show
  1. package/.eslintrc.js +1 -1
  2. package/README.md +6 -1
  3. package/coverage/clover.xml +342 -1064
  4. package/coverage/coverage-final.json +30 -44
  5. package/coverage/lcov-report/__tests__/helpers/expect.ts.html +94 -0
  6. package/coverage/lcov-report/__tests__/helpers/index.html +131 -0
  7. package/coverage/lcov-report/__tests__/helpers/main.ts.html +121 -0
  8. package/coverage/lcov-report/async/arrays.ts.html +199 -0
  9. package/coverage/lcov-report/async/index.html +36 -21
  10. package/coverage/lcov-report/async/timeout.ts.html +124 -22
  11. package/coverage/lcov-report/dates/calc.ts.html +301 -0
  12. package/coverage/lcov-report/dates/convert.ts.html +658 -0
  13. package/coverage/lcov-report/dates/datex.ts.html +211 -0
  14. package/coverage/lcov-report/dates/format.ts.html +403 -0
  15. package/coverage/lcov-report/dates/index.html +251 -0
  16. package/coverage/lcov-report/dates/index.ts.html +112 -0
  17. package/coverage/lcov-report/dates/parse.ts.html +157 -0
  18. package/coverage/lcov-report/dates/period.ts.html +154 -0
  19. package/coverage/lcov-report/dates/shift.ts.html +355 -0
  20. package/coverage/lcov-report/dates/types.ts.html +181 -0
  21. package/coverage/lcov-report/dates/yearDate.ts.html +193 -0
  22. package/coverage/lcov-report/fields/index.html +116 -0
  23. package/coverage/lcov-report/fields/update.ts.html +457 -0
  24. package/coverage/lcov-report/functions/disposer.ts.html +376 -0
  25. package/coverage/lcov-report/functions/index.html +116 -0
  26. package/coverage/lcov-report/functions/safeCall.ts.html +103 -0
  27. package/coverage/lcov-report/index.html +119 -74
  28. package/coverage/lcov-report/lazy/index.html +131 -0
  29. package/coverage/lcov-report/lazy/light.ts.html +172 -0
  30. package/coverage/lcov-report/lazy/promise.ts.html +241 -0
  31. package/coverage/lcov-report/lazy/singleton.ts.html +181 -0
  32. package/coverage/lcov-report/logger/batch.ts.html +112 -0
  33. package/coverage/lcov-report/logger/console.ts.html +241 -0
  34. package/coverage/lcov-report/logger/index.html +80 -20
  35. package/coverage/lcov-report/logger/index.ts.html +48 -48
  36. package/coverage/lcov-report/logger/named.ts.html +226 -0
  37. package/coverage/lcov-report/logger/proxy.ts.html +172 -0
  38. package/coverage/lcov-report/math/arrays.ts.html +907 -0
  39. package/coverage/lcov-report/math/calc.ts.html +292 -0
  40. package/coverage/lcov-report/math/distribution.ts.html +145 -0
  41. package/coverage/lcov-report/math/index.html +161 -0
  42. package/coverage/lcov-report/math/index.ts.html +166 -0
  43. package/coverage/lcov-report/observing/event.ts.html +358 -0
  44. package/coverage/lcov-report/observing/index.html +116 -0
  45. package/coverage/lcov-report/observing/transition.ts.html +634 -0
  46. package/coverage/lcov-report/src/__tests__/helpers/expect.ts.html +1 -1
  47. package/coverage/lcov-report/src/__tests__/helpers/index.html +1 -1
  48. package/coverage/lcov-report/src/__tests__/helpers/main.ts.html +1 -1
  49. package/coverage/lcov-report/src/async/arrays.ts.html +1 -1
  50. package/coverage/lcov-report/src/async/index.html +21 -36
  51. package/coverage/lcov-report/src/async/timeout.ts.html +59 -59
  52. package/coverage/lcov-report/src/cache.ts.html +97 -97
  53. package/coverage/lcov-report/src/dates/calc.ts.html +1 -1
  54. package/coverage/lcov-report/src/dates/convert.ts.html +1 -1
  55. package/coverage/lcov-report/src/dates/datex.ts.html +1 -1
  56. package/coverage/lcov-report/src/dates/format.ts.html +1 -1
  57. package/coverage/lcov-report/src/dates/index.html +1 -1
  58. package/coverage/lcov-report/src/dates/index.ts.html +1 -1
  59. package/coverage/lcov-report/src/dates/parse.ts.html +1 -1
  60. package/coverage/lcov-report/src/dates/period.ts.html +1 -1
  61. package/coverage/lcov-report/src/dates/shift.ts.html +1 -1
  62. package/coverage/lcov-report/src/dates/types.ts.html +1 -1
  63. package/coverage/lcov-report/src/dates/yearDate.ts.html +1 -1
  64. package/coverage/lcov-report/src/disposer.ts.html +1 -1
  65. package/coverage/lcov-report/src/enumHelper.ts.html +1 -1
  66. package/coverage/lcov-report/src/event.ts.html +1 -1
  67. package/coverage/lcov-report/src/fields/index.html +1 -1
  68. package/coverage/lcov-report/src/fields/update.ts.html +1 -1
  69. package/coverage/lcov-report/src/functions.ts.html +1 -1
  70. package/coverage/lcov-report/src/index.html +20 -155
  71. package/coverage/lcov-report/src/lazy/index.html +1 -1
  72. package/coverage/lcov-report/src/lazy/light.ts.html +1 -1
  73. package/coverage/lcov-report/src/lazy/observable.ts.html +1 -1
  74. package/coverage/lcov-report/src/lazy/promise.ts.html +1 -1
  75. package/coverage/lcov-report/src/lazy/singleton.ts.html +1 -1
  76. package/coverage/lcov-report/src/logger/batch.ts.html +1 -1
  77. package/coverage/lcov-report/src/logger/console.ts.html +1 -1
  78. package/coverage/lcov-report/src/logger/index.html +1 -1
  79. package/coverage/lcov-report/src/logger/index.ts.html +1 -1
  80. package/coverage/lcov-report/src/logger/named.ts.html +1 -1
  81. package/coverage/lcov-report/src/logger/proxy.ts.html +1 -1
  82. package/coverage/lcov-report/src/math/arrays.ts.html +316 -277
  83. package/coverage/lcov-report/src/math/calc.ts.html +1 -1
  84. package/coverage/lcov-report/src/math/distribution.ts.html +1 -1
  85. package/coverage/lcov-report/src/math/index.html +21 -66
  86. package/coverage/lcov-report/src/math/index.ts.html +1 -1
  87. package/coverage/lcov-report/src/observersMap.ts.html +1 -1
  88. package/coverage/lcov-report/src/observingCache.ts.html +1 -1
  89. package/coverage/lcov-report/src/queue/index.html +1 -1
  90. package/coverage/lcov-report/src/queue/parallel.ts.html +1 -1
  91. package/coverage/lcov-report/src/tempoCache.ts.html +1 -1
  92. package/coverage/lcov-report/src/transitionObserver.ts.html +1 -1
  93. package/coverage/lcov-report/src/types/comparator.ts.html +103 -0
  94. package/coverage/lcov-report/src/types/getter.ts.html +127 -0
  95. package/coverage/lcov-report/src/types/index.html +146 -0
  96. package/coverage/lcov-report/src/types/index.ts.html +112 -0
  97. package/coverage/lcov-report/src/validation/ValidationErrors.ts.html +1 -1
  98. package/coverage/lcov-report/src/validation/creditCard.ts.html +1 -1
  99. package/coverage/lcov-report/src/validation/helpers.ts.html +1 -1
  100. package/coverage/lcov-report/src/validation/index.html +1 -1
  101. package/coverage/lcov-report/src/validation/index.ts.html +1 -1
  102. package/coverage/lcov-report/src/validation/types.ts.html +1 -1
  103. package/coverage/lcov-report/src/validation/validators.ts.html +1 -1
  104. package/coverage/lcov-report/src/validation/wrappers.ts.html +1 -1
  105. package/coverage/lcov-report/src/viewModels/CommonModel.ts.html +1 -1
  106. package/coverage/lcov-report/src/viewModels/FlagModel.ts.html +1 -1
  107. package/coverage/lcov-report/src/viewModels/LoadingModel.ts.html +5 -2
  108. package/coverage/lcov-report/src/viewModels/MultiSelectModel.ts.html +1 -1
  109. package/coverage/lcov-report/src/viewModels/NumberModel.ts.html +1 -1
  110. package/coverage/lcov-report/src/viewModels/SelectModel.ts.html +1 -1
  111. package/coverage/lcov-report/src/viewModels/TextModel.ts.html +1 -1
  112. package/coverage/lcov-report/src/viewModels/Validatable.ts.html +1 -1
  113. package/coverage/lcov-report/src/viewModels/index.html +10 -130
  114. package/coverage/lcov-report/src/viewModels/wrappers.ts.html +1 -1
  115. package/coverage/lcov-report/structures/helpers/enum.ts.html +454 -0
  116. package/coverage/lcov-report/structures/helpers/index.html +116 -0
  117. package/coverage/lcov-report/structures/index.html +116 -0
  118. package/coverage/lcov-report/structures/promiseCache.ts.html +628 -0
  119. package/coverage/lcov-report/structures/queue/index.html +116 -0
  120. package/coverage/lcov-report/structures/queue/parallel.ts.html +511 -0
  121. package/coverage/lcov-report/structures/subscribersMap.ts.html +400 -0
  122. package/coverage/lcov-report/structures/subscribersPromiseCache.ts.html +562 -0
  123. package/coverage/lcov-report/structures/tempoCache.ts.html +139 -0
  124. package/coverage/lcov-report/types/comparator.ts.html +103 -0
  125. package/coverage/lcov-report/types/getter.ts.html +127 -0
  126. package/coverage/lcov-report/types/index.html +146 -0
  127. package/coverage/lcov-report/types/index.ts.html +112 -0
  128. package/coverage/lcov-report/validation/ValidationErrors.ts.html +163 -0
  129. package/coverage/lcov-report/validation/creditCard.ts.html +160 -0
  130. package/coverage/lcov-report/validation/helpers.ts.html +226 -0
  131. package/coverage/lcov-report/validation/index.html +107 -12
  132. package/coverage/lcov-report/validation/index.ts.html +13 -8
  133. package/coverage/lcov-report/validation/types.ts.html +139 -0
  134. package/coverage/lcov-report/validation/validators.ts.html +250 -0
  135. package/coverage/lcov-report/validation/wrappers.ts.html +163 -0
  136. package/coverage/lcov-report/viewModels/LoadingModel.ts.html +15 -7
  137. package/coverage/lcov-report/viewModels/index.html +19 -59
  138. package/coverage/lcov.info +745 -2263
  139. package/lib/fields/update.js +3 -3
  140. package/lib/fields/update.js.map +1 -1
  141. package/lib/{assert.d.ts → functions/assert.d.ts} +1 -1
  142. package/lib/functions/assert.d.ts.map +1 -0
  143. package/lib/{assert.js → functions/assert.js} +2 -2
  144. package/lib/functions/assert.js.map +1 -0
  145. package/lib/{disposer.d.ts → functions/disposer.d.ts} +0 -0
  146. package/lib/functions/disposer.d.ts.map +1 -0
  147. package/lib/{disposer.js → functions/disposer.js} +1 -1
  148. package/lib/functions/disposer.js.map +1 -0
  149. package/lib/functions/safeCall.d.ts +2 -0
  150. package/lib/functions/safeCall.d.ts.map +1 -0
  151. package/lib/{functions.js → functions/safeCall.js} +1 -1
  152. package/lib/functions/safeCall.js.map +1 -0
  153. package/lib/{throttle.d.ts → functions/throttle.d.ts} +0 -0
  154. package/lib/functions/throttle.d.ts.map +1 -0
  155. package/lib/{throttle.js → functions/throttle.js} +1 -1
  156. package/lib/functions/throttle.js.map +1 -0
  157. package/lib/lazy/light.d.ts +1 -1
  158. package/lib/lazy/light.d.ts.map +1 -1
  159. package/lib/lazy/promise.d.ts +1 -1
  160. package/lib/lazy/promise.d.ts.map +1 -1
  161. package/lib/lazy/singleton.d.ts +1 -1
  162. package/lib/lazy/singleton.d.ts.map +1 -1
  163. package/lib/math/arrays.d.ts +1 -0
  164. package/lib/math/arrays.d.ts.map +1 -1
  165. package/lib/math/arrays.js +13 -1
  166. package/lib/math/arrays.js.map +1 -1
  167. package/lib/{event.d.ts → observing/event.d.ts} +2 -3
  168. package/lib/observing/event.d.ts.map +1 -0
  169. package/lib/{event.js → observing/event.js} +2 -3
  170. package/lib/{event.js.map → observing/event.js.map} +1 -1
  171. package/lib/{throttledEvent.d.ts → observing/throttledEvent.d.ts} +0 -0
  172. package/lib/observing/throttledEvent.d.ts.map +1 -0
  173. package/lib/{throttledEvent.js → observing/throttledEvent.js} +1 -1
  174. package/lib/observing/throttledEvent.js.map +1 -0
  175. package/lib/{timer.d.ts → observing/timer.d.ts} +1 -1
  176. package/lib/observing/timer.d.ts.map +1 -0
  177. package/lib/{timer.js → observing/timer.js} +0 -0
  178. package/lib/observing/timer.js.map +1 -0
  179. package/lib/{services/storage → storage}/index.d.ts +1 -1
  180. package/lib/storage/index.d.ts.map +1 -0
  181. package/lib/{services/storage → storage}/index.js +0 -0
  182. package/lib/storage/index.js.map +1 -0
  183. package/lib/{services/storage → storage}/web/localStorage.d.ts +1 -1
  184. package/lib/storage/web/localStorage.d.ts.map +1 -0
  185. package/lib/{services/storage → storage}/web/localStorage.js +0 -0
  186. package/lib/storage/web/localStorage.js.map +1 -0
  187. package/lib/{services/storage → storage}/web/sessionStorage.d.ts +1 -1
  188. package/lib/storage/web/sessionStorage.d.ts.map +1 -0
  189. package/lib/{services/storage → storage}/web/sessionStorage.js +0 -0
  190. package/lib/storage/web/sessionStorage.js.map +1 -0
  191. package/lib/{services/storage → storage}/web/webStorage.d.ts +1 -1
  192. package/lib/storage/web/webStorage.d.ts.map +1 -0
  193. package/lib/{services/storage → storage}/web/webStorage.js +0 -0
  194. package/lib/storage/web/webStorage.js.map +1 -0
  195. package/lib/{enumHelper.d.ts → structures/helpers/enum.d.ts} +1 -1
  196. package/lib/structures/helpers/enum.d.ts.map +1 -0
  197. package/lib/{enumHelper.js → structures/helpers/enum.js} +1 -1
  198. package/lib/structures/helpers/enum.js.map +1 -0
  199. package/lib/{nameHelper.d.ts → structures/helpers/name.d.ts} +5 -5
  200. package/lib/structures/helpers/name.d.ts.map +1 -0
  201. package/lib/{nameHelper.js → structures/helpers/name.js} +7 -6
  202. package/lib/structures/helpers/name.js.map +1 -0
  203. package/lib/structures/linkedList.d.ts +39 -0
  204. package/lib/structures/linkedList.d.ts.map +1 -0
  205. package/lib/structures/linkedList.js +82 -0
  206. package/lib/structures/linkedList.js.map +1 -0
  207. package/lib/{pool.d.ts → structures/pool.d.ts} +1 -1
  208. package/lib/structures/pool.d.ts.map +1 -0
  209. package/lib/{pool.js → structures/pool.js} +2 -2
  210. package/lib/structures/pool.js.map +1 -0
  211. package/lib/{queue → structures/queue}/parallel.d.ts +3 -3
  212. package/lib/structures/queue/parallel.d.ts.map +1 -0
  213. package/lib/{queue → structures/queue}/parallel.js +2 -2
  214. package/lib/structures/queue/parallel.js.map +1 -0
  215. package/lib/{tempoCache.d.ts → structures/tempoCache.d.ts} +0 -0
  216. package/lib/structures/tempoCache.d.ts.map +1 -0
  217. package/lib/{tempoCache.js → structures/tempoCache.js} +0 -0
  218. package/lib/structures/tempoCache.js.map +1 -0
  219. package/lib/types/comparator.d.ts +5 -0
  220. package/lib/types/comparator.d.ts.map +1 -0
  221. package/lib/types/comparator.js +8 -0
  222. package/lib/types/comparator.js.map +1 -0
  223. package/lib/types/deep.d.ts +9 -0
  224. package/lib/types/deep.d.ts.map +1 -0
  225. package/lib/{deepPartial.js → types/deep.js} +1 -1
  226. package/lib/types/deep.js.map +1 -0
  227. package/lib/types/functions.d.ts +7 -0
  228. package/lib/types/functions.d.ts.map +1 -0
  229. package/lib/{services/localization/abstractions.js → types/functions.js} +1 -1
  230. package/lib/types/functions.js.map +1 -0
  231. package/lib/types/getter.d.ts +5 -0
  232. package/lib/types/getter.d.ts.map +1 -0
  233. package/lib/{types.js → types/getter.js} +2 -6
  234. package/lib/types/getter.js.map +1 -0
  235. package/lib/{ident.d.ts → types/ident.d.ts} +0 -0
  236. package/lib/types/ident.d.ts.map +1 -0
  237. package/lib/{ident.js → types/ident.js} +0 -0
  238. package/lib/types/ident.js.map +1 -0
  239. package/lib/types/index.d.ts +8 -0
  240. package/lib/types/index.d.ts.map +1 -0
  241. package/lib/types/index.js +7 -0
  242. package/lib/types/index.js.map +1 -0
  243. package/lib/validation/ValidationErrors.d.ts +1 -1
  244. package/lib/validation/ValidationErrors.d.ts.map +1 -1
  245. package/lib/validation/ValidationErrors.js +2 -2
  246. package/lib/validation/ValidationErrors.js.map +1 -1
  247. package/lib/{emails.d.ts → validation/emails.d.ts} +0 -0
  248. package/lib/validation/emails.d.ts.map +1 -0
  249. package/lib/{emails.js → validation/emails.js} +0 -0
  250. package/lib/validation/emails.js.map +1 -0
  251. package/lib/web/breakpoints/index.d.ts +3 -0
  252. package/lib/web/breakpoints/index.d.ts.map +1 -0
  253. package/lib/web/breakpoints/index.js +6 -0
  254. package/lib/web/breakpoints/index.js.map +1 -0
  255. package/lib/web/breakpoints/manager.d.ts +17 -0
  256. package/lib/web/breakpoints/manager.d.ts.map +1 -0
  257. package/lib/web/breakpoints/manager.js +56 -0
  258. package/lib/web/breakpoints/manager.js.map +1 -0
  259. package/lib/web/breakpoints/rem.d.ts +3 -0
  260. package/lib/web/breakpoints/rem.d.ts.map +1 -0
  261. package/lib/web/breakpoints/rem.js +22 -0
  262. package/lib/web/breakpoints/rem.js.map +1 -0
  263. package/lib/web/breakpoints/types.d.ts +22 -0
  264. package/lib/web/breakpoints/types.d.ts.map +1 -0
  265. package/lib/{viewModels → web/breakpoints}/types.js +0 -0
  266. package/lib/{viewModels → web/breakpoints}/types.js.map +1 -1
  267. package/package.json +16 -16
  268. package/src/.DS_Store +0 -0
  269. package/src/async/__tests__/timeout.test.ts +1 -1
  270. package/src/fields/update.ts +1 -1
  271. package/src/{assert.ts → functions/assert.ts} +2 -2
  272. package/src/{disposer.ts → functions/disposer.ts} +1 -1
  273. package/src/functions/safeCall.ts +6 -0
  274. package/src/{throttle.ts → functions/throttle.ts} +1 -1
  275. package/src/lazy/__tests__/lazy.test.ts +1 -48
  276. package/src/lazy/light.ts +1 -1
  277. package/src/lazy/promise.ts +1 -1
  278. package/src/lazy/singleton.ts +1 -1
  279. package/src/math/arrays.ts +13 -0
  280. package/src/{event.ts → observing/event.ts} +3 -4
  281. package/src/{throttledEvent.ts → observing/throttledEvent.ts} +1 -1
  282. package/src/{timer.ts → observing/timer.ts} +1 -1
  283. package/src/{services/storage → storage}/index.ts +1 -1
  284. package/src/{services/storage → storage}/web/localStorage.ts +1 -1
  285. package/src/{services/storage → storage}/web/sessionStorage.ts +1 -1
  286. package/src/{services/storage → storage}/web/webStorage.ts +1 -1
  287. package/src/{__tests__ → structures/__tests__}/enumHelper.test.ts +1 -1
  288. package/src/{__tests__ → structures/__tests__}/tempoCache.test.ts +1 -1
  289. package/src/{enumHelper.ts → structures/helpers/enum.ts} +0 -0
  290. package/src/{nameHelper.ts → structures/helpers/name.ts} +4 -4
  291. package/src/structures/linkedList.ts +129 -0
  292. package/src/{pool.ts → structures/pool.ts} +2 -2
  293. package/src/{queue → structures/queue}/__tests__/parallel.test.ts +2 -2
  294. package/src/{queue → structures/queue}/parallel.ts +2 -2
  295. package/src/{tempoCache.ts → structures/tempoCache.ts} +0 -0
  296. package/src/types/comparator.ts +6 -0
  297. package/src/types/deep.ts +18 -0
  298. package/src/types/functions.ts +8 -0
  299. package/src/types/getter.ts +14 -0
  300. package/src/{ident.ts → types/ident.ts} +0 -0
  301. package/src/types/index.ts +9 -0
  302. package/src/validation/ValidationErrors.ts +1 -1
  303. package/src/{emails.ts → validation/emails.ts} +0 -0
  304. package/src/web/breakpoints/index.ts +3 -0
  305. package/src/web/breakpoints/manager.ts +65 -0
  306. package/src/web/breakpoints/rem.ts +24 -0
  307. package/src/web/breakpoints/types.ts +26 -0
  308. package/tsconfig.build.json +10 -0
  309. package/tsconfig.json +0 -1
  310. package/yarn.lock +467 -370
  311. package/lib/assert.d.ts.map +0 -1
  312. package/lib/assert.js.map +0 -1
  313. package/lib/cache.d.ts +0 -36
  314. package/lib/cache.d.ts.map +0 -1
  315. package/lib/cache.js +0 -165
  316. package/lib/cache.js.map +0 -1
  317. package/lib/deepPartial.d.ts +0 -4
  318. package/lib/deepPartial.d.ts.map +0 -1
  319. package/lib/deepPartial.js.map +0 -1
  320. package/lib/disposer.d.ts.map +0 -1
  321. package/lib/disposer.js.map +0 -1
  322. package/lib/emails.d.ts.map +0 -1
  323. package/lib/emails.js.map +0 -1
  324. package/lib/enumHelper.d.ts.map +0 -1
  325. package/lib/enumHelper.js.map +0 -1
  326. package/lib/event.d.ts.map +0 -1
  327. package/lib/functions.d.ts +0 -9
  328. package/lib/functions.d.ts.map +0 -1
  329. package/lib/functions.js.map +0 -1
  330. package/lib/ident.d.ts.map +0 -1
  331. package/lib/ident.js.map +0 -1
  332. package/lib/lazy/index.d.ts +0 -10
  333. package/lib/lazy/index.d.ts.map +0 -1
  334. package/lib/lazy/index.js +0 -23
  335. package/lib/lazy/index.js.map +0 -1
  336. package/lib/lazy/observable.d.ts +0 -9
  337. package/lib/lazy/observable.d.ts.map +0 -1
  338. package/lib/lazy/observable.js +0 -31
  339. package/lib/lazy/observable.js.map +0 -1
  340. package/lib/lazy.light.d.ts +0 -2
  341. package/lib/lazy.light.d.ts.map +0 -1
  342. package/lib/lazy.light.js +0 -8
  343. package/lib/lazy.light.js.map +0 -1
  344. package/lib/nameHelper.d.ts.map +0 -1
  345. package/lib/nameHelper.js.map +0 -1
  346. package/lib/observersMap.d.ts +0 -22
  347. package/lib/observersMap.d.ts.map +0 -1
  348. package/lib/observersMap.js +0 -93
  349. package/lib/observersMap.js.map +0 -1
  350. package/lib/observingCache.d.ts +0 -32
  351. package/lib/observingCache.d.ts.map +0 -1
  352. package/lib/observingCache.js +0 -128
  353. package/lib/observingCache.js.map +0 -1
  354. package/lib/pool.d.ts.map +0 -1
  355. package/lib/pool.js.map +0 -1
  356. package/lib/queue/parallel.d.ts.map +0 -1
  357. package/lib/queue/parallel.js.map +0 -1
  358. package/lib/services/localization/LocalaziedValidationErrors.d.ts +0 -9
  359. package/lib/services/localization/LocalaziedValidationErrors.d.ts.map +0 -1
  360. package/lib/services/localization/LocalaziedValidationErrors.js +0 -27
  361. package/lib/services/localization/LocalaziedValidationErrors.js.map +0 -1
  362. package/lib/services/localization/LocalizationManager.d.ts +0 -18
  363. package/lib/services/localization/LocalizationManager.d.ts.map +0 -1
  364. package/lib/services/localization/LocalizationManager.js +0 -58
  365. package/lib/services/localization/LocalizationManager.js.map +0 -1
  366. package/lib/services/localization/abstractions.d.ts +0 -12
  367. package/lib/services/localization/abstractions.d.ts.map +0 -1
  368. package/lib/services/localization/abstractions.js.map +0 -1
  369. package/lib/services/localization/defaultShape.d.ts +0 -26
  370. package/lib/services/localization/defaultShape.d.ts.map +0 -1
  371. package/lib/services/localization/defaultShape.js +0 -28
  372. package/lib/services/localization/defaultShape.js.map +0 -1
  373. package/lib/services/localization/index.d.ts +0 -5
  374. package/lib/services/localization/index.d.ts.map +0 -1
  375. package/lib/services/localization/index.js +0 -10
  376. package/lib/services/localization/index.js.map +0 -1
  377. package/lib/services/storage/index.d.ts.map +0 -1
  378. package/lib/services/storage/index.js.map +0 -1
  379. package/lib/services/storage/web/localStorage.d.ts.map +0 -1
  380. package/lib/services/storage/web/localStorage.js.map +0 -1
  381. package/lib/services/storage/web/sessionStorage.d.ts.map +0 -1
  382. package/lib/services/storage/web/sessionStorage.js.map +0 -1
  383. package/lib/services/storage/web/webStorage.d.ts.map +0 -1
  384. package/lib/services/storage/web/webStorage.js.map +0 -1
  385. package/lib/tempoCache.d.ts.map +0 -1
  386. package/lib/tempoCache.js.map +0 -1
  387. package/lib/throttle.d.ts.map +0 -1
  388. package/lib/throttle.js.map +0 -1
  389. package/lib/throttledEvent.d.ts.map +0 -1
  390. package/lib/throttledEvent.js.map +0 -1
  391. package/lib/timeHelper.d.ts +0 -7
  392. package/lib/timeHelper.d.ts.map +0 -1
  393. package/lib/timeHelper.js +0 -37
  394. package/lib/timeHelper.js.map +0 -1
  395. package/lib/timer.d.ts.map +0 -1
  396. package/lib/timer.js.map +0 -1
  397. package/lib/transitionObserver.d.ts +0 -36
  398. package/lib/transitionObserver.d.ts.map +0 -1
  399. package/lib/transitionObserver.js +0 -153
  400. package/lib/transitionObserver.js.map +0 -1
  401. package/lib/types.d.ts +0 -17
  402. package/lib/types.d.ts.map +0 -1
  403. package/lib/types.js.map +0 -1
  404. package/lib/unsubscriber.d.ts +0 -2
  405. package/lib/unsubscriber.d.ts.map +0 -1
  406. package/lib/unsubscriber.js +0 -12
  407. package/lib/unsubscriber.js.map +0 -1
  408. package/lib/validation/ValidationErrorsLocalization.d.ts +0 -27
  409. package/lib/validation/ValidationErrorsLocalization.d.ts.map +0 -1
  410. package/lib/validation/ValidationErrorsLocalization.js +0 -26
  411. package/lib/validation/ValidationErrorsLocalization.js.map +0 -1
  412. package/lib/viewModels/CommonModel.d.ts +0 -13
  413. package/lib/viewModels/CommonModel.d.ts.map +0 -1
  414. package/lib/viewModels/CommonModel.js +0 -38
  415. package/lib/viewModels/CommonModel.js.map +0 -1
  416. package/lib/viewModels/FlagModel.d.ts +0 -22
  417. package/lib/viewModels/FlagModel.d.ts.map +0 -1
  418. package/lib/viewModels/FlagModel.js +0 -52
  419. package/lib/viewModels/FlagModel.js.map +0 -1
  420. package/lib/viewModels/InitializableModel.d.ts +0 -6
  421. package/lib/viewModels/InitializableModel.d.ts.map +0 -1
  422. package/lib/viewModels/InitializableModel.js +0 -23
  423. package/lib/viewModels/InitializableModel.js.map +0 -1
  424. package/lib/viewModels/LoadingModel.d.ts +0 -17
  425. package/lib/viewModels/LoadingModel.d.ts.map +0 -1
  426. package/lib/viewModels/LoadingModel.js +0 -42
  427. package/lib/viewModels/LoadingModel.js.map +0 -1
  428. package/lib/viewModels/MultiSelectModel.d.ts +0 -47
  429. package/lib/viewModels/MultiSelectModel.d.ts.map +0 -1
  430. package/lib/viewModels/MultiSelectModel.js +0 -144
  431. package/lib/viewModels/MultiSelectModel.js.map +0 -1
  432. package/lib/viewModels/NumberModel.d.ts +0 -19
  433. package/lib/viewModels/NumberModel.d.ts.map +0 -1
  434. package/lib/viewModels/NumberModel.js +0 -38
  435. package/lib/viewModels/NumberModel.js.map +0 -1
  436. package/lib/viewModels/PromptModal.d.ts +0 -31
  437. package/lib/viewModels/PromptModal.d.ts.map +0 -1
  438. package/lib/viewModels/PromptModal.js +0 -57
  439. package/lib/viewModels/PromptModal.js.map +0 -1
  440. package/lib/viewModels/SelectModel.d.ts +0 -35
  441. package/lib/viewModels/SelectModel.d.ts.map +0 -1
  442. package/lib/viewModels/SelectModel.js +0 -118
  443. package/lib/viewModels/SelectModel.js.map +0 -1
  444. package/lib/viewModels/TextModel.d.ts +0 -41
  445. package/lib/viewModels/TextModel.d.ts.map +0 -1
  446. package/lib/viewModels/TextModel.js +0 -98
  447. package/lib/viewModels/TextModel.js.map +0 -1
  448. package/lib/viewModels/Validatable.d.ts +0 -26
  449. package/lib/viewModels/Validatable.d.ts.map +0 -1
  450. package/lib/viewModels/Validatable.js +0 -81
  451. package/lib/viewModels/Validatable.js.map +0 -1
  452. package/lib/viewModels/ValueModel.d.ts +0 -12
  453. package/lib/viewModels/ValueModel.d.ts.map +0 -1
  454. package/lib/viewModels/ValueModel.js +0 -29
  455. package/lib/viewModels/ValueModel.js.map +0 -1
  456. package/lib/viewModels/ValuesCollector.d.ts +0 -26
  457. package/lib/viewModels/ValuesCollector.d.ts.map +0 -1
  458. package/lib/viewModels/ValuesCollector.js +0 -51
  459. package/lib/viewModels/ValuesCollector.js.map +0 -1
  460. package/lib/viewModels/index.d.ts +0 -12
  461. package/lib/viewModels/index.d.ts.map +0 -1
  462. package/lib/viewModels/index.js +0 -15
  463. package/lib/viewModels/index.js.map +0 -1
  464. package/lib/viewModels/types.d.ts +0 -19
  465. package/lib/viewModels/types.d.ts.map +0 -1
  466. package/lib/viewModels/wrappers.d.ts +0 -12
  467. package/lib/viewModels/wrappers.d.ts.map +0 -1
  468. package/lib/viewModels/wrappers.js +0 -43
  469. package/lib/viewModels/wrappers.js.map +0 -1
  470. package/src/__tests__/observingCache.test.ts +0 -127
  471. package/src/__tests__/transitionObserver.test.ts +0 -219
  472. package/src/cache.ts +0 -181
  473. package/src/deepPartial.ts +0 -4
  474. package/src/functions.ts +0 -14
  475. package/src/lazy/index.ts +0 -33
  476. package/src/lazy/observable.ts +0 -37
  477. package/src/lazy.light.ts +0 -8
  478. package/src/observersMap.ts +0 -105
  479. package/src/observingCache.ts +0 -160
  480. package/src/services/localization/LocalaziedValidationErrors.ts +0 -18
  481. package/src/services/localization/LocalizationManager.ts +0 -53
  482. package/src/services/localization/abstractions.ts +0 -16
  483. package/src/services/localization/defaultShape.ts +0 -26
  484. package/src/services/localization/index.ts +0 -6
  485. package/src/timeHelper.ts +0 -39
  486. package/src/transitionObserver.ts +0 -183
  487. package/src/types.ts +0 -30
  488. package/src/unsubscriber.ts +0 -14
  489. package/src/validation/ValidationErrorsLocalization.ts +0 -27
  490. package/src/viewModels/CommonModel.ts +0 -45
  491. package/src/viewModels/FlagModel.ts +0 -70
  492. package/src/viewModels/InitializableModel.ts +0 -17
  493. package/src/viewModels/LoadingModel.ts +0 -52
  494. package/src/viewModels/MultiSelectModel.ts +0 -178
  495. package/src/viewModels/NumberModel.ts +0 -50
  496. package/src/viewModels/PromptModal.ts +0 -65
  497. package/src/viewModels/SelectModel.ts +0 -152
  498. package/src/viewModels/TextModel.ts +0 -127
  499. package/src/viewModels/Validatable.ts +0 -102
  500. package/src/viewModels/ValueModel.ts +0 -34
  501. package/src/viewModels/ValuesCollector.ts +0 -81
  502. package/src/viewModels/__tests__/common.test.ts +0 -107
  503. package/src/viewModels/__tests__/multiSelect.test.ts +0 -138
  504. package/src/viewModels/__tests__/select.test.ts +0 -71
  505. package/src/viewModels/__tests__/wrappers.test.ts +0 -79
  506. package/src/viewModels/index.ts +0 -15
  507. package/src/viewModels/types.ts +0 -23
  508. package/src/viewModels/wrappers.ts +0 -49
  509. package/tsconfig.eslint.json +0 -9
@@ -1,219 +0,0 @@
1
- import { observable, runInAction } from 'mobx';
2
- import { TransitionObserver } from '../transitionObserver';
3
-
4
- function createStore<T>(value: T) {
5
- const s = observable.object({
6
- value: value,
7
-
8
- setValue(v: T) {
9
- runInAction(() => s.value = v);
10
- },
11
- });
12
- return s;
13
- }
14
-
15
- describe('TransitionObserver', () => {
16
-
17
- it('constructs', () => {
18
- const store = createStore(true);
19
-
20
- let err = null;
21
- try {
22
- const to1 = new TransitionObserver();
23
- to1.observe(() => store.value);
24
- to1.from('asd');
25
- to1.to({});
26
- to1.cb(() => { /* no-op */ });
27
- to1.fireOnce();
28
- } catch (_err) {
29
- err = _err;
30
- }
31
-
32
- expect(err).toBeNull();
33
- });
34
-
35
- it('tracks only correct transition – 2 way', () => {
36
- const store = createStore<boolean>(true);
37
-
38
- const cb = jest.fn();
39
-
40
- new TransitionObserver(() => store.value)
41
- .from(true)
42
- .to(false)
43
- .cb(cb)
44
- .fireOnce();
45
-
46
- store.setValue(null);
47
-
48
- expect(cb).not.toHaveBeenCalled();
49
-
50
- store.setValue(false);
51
-
52
- expect(cb).not.toHaveBeenCalled();
53
-
54
- store.setValue(true);
55
-
56
- expect(cb).not.toHaveBeenCalled();
57
-
58
- store.setValue(false);
59
-
60
- expect(cb).toHaveBeenCalledWith(false);
61
- });
62
-
63
- it('tracks only correct transition – from', () => {
64
- const store = createStore<boolean>(true);
65
-
66
- const cb = jest.fn();
67
-
68
- const to = new TransitionObserver(() => store.value)
69
- .from(true)
70
- .cb(cb);
71
-
72
- store.setValue(null);
73
-
74
- expect(cb).toHaveBeenCalledWith(null);
75
- cb.mockReset();
76
-
77
- store.setValue(false);
78
-
79
- expect(cb).not.toHaveBeenCalled();
80
- cb.mockReset();
81
-
82
- store.setValue(true);
83
-
84
- expect(cb).not.toHaveBeenCalled();
85
- cb.mockReset();
86
-
87
- store.setValue(false);
88
-
89
- expect(cb).toHaveBeenCalledWith(false);
90
- cb.mockReset();
91
-
92
- to.dispose();
93
- });
94
-
95
- it('tracks only correct transition – to', () => {
96
- const store = createStore<boolean>(true);
97
-
98
- const cb = jest.fn();
99
-
100
- const to = new TransitionObserver(() => store.value)
101
- .to(false)
102
- .cb(cb);
103
-
104
- store.setValue(null);
105
-
106
- expect(to.currentValue).toBeNull();
107
- expect(cb).not.toHaveBeenCalled();
108
- cb.mockReset();
109
-
110
- store.setValue(false);
111
-
112
- expect(to.currentValue).toBeFalsy();
113
- expect(cb).toHaveBeenCalledWith(false);
114
- cb.mockReset();
115
-
116
- store.setValue(true);
117
-
118
- expect(to.currentValue).toBeTruthy();
119
- expect(cb).not.toHaveBeenCalled();
120
- cb.mockReset();
121
-
122
- store.setValue(false);
123
-
124
- expect(cb).toHaveBeenCalledWith(false);
125
- cb.mockReset();
126
-
127
- to.dispose();
128
- });
129
-
130
- it('tracks only correct transition – <any>', () => {
131
- const store = createStore<boolean>(true);
132
-
133
- const cb = jest.fn();
134
- const cbE = jest.fn();
135
-
136
- const to = new TransitionObserver(() => store.value)
137
- .cb(cb);
138
-
139
- to.event.on(cbE);
140
-
141
- store.setValue(null);
142
-
143
- expect(cbE).toHaveBeenCalledWith(null);
144
- expect(cb).toHaveBeenCalledWith(null);
145
- cbE.mockReset();
146
- cb.mockReset();
147
-
148
- to.forceCheck();
149
-
150
- expect(cbE).toHaveBeenCalledWith(null);
151
- expect(cb).toHaveBeenCalledWith(null);
152
- cbE.mockReset();
153
- cb.mockReset();
154
-
155
- to.forceCall();
156
-
157
- expect(cb).toHaveBeenCalledWith(null);
158
- cb.mockReset();
159
-
160
- store.setValue(false);
161
-
162
- expect(cbE).toHaveBeenCalledWith(false);
163
- expect(cb).toHaveBeenCalledWith(false);
164
- cbE.mockReset();
165
- cb.mockReset();
166
-
167
- store.setValue(true);
168
-
169
- expect(cbE).toHaveBeenCalledWith(true);
170
- expect(cb).toHaveBeenCalledWith(true);
171
- cbE.mockReset();
172
- cb.mockReset();
173
-
174
- to.dispose();
175
- store.setValue(false);
176
-
177
- expect(cbE).not.toHaveBeenCalled();
178
- expect(cb).not.toHaveBeenCalled();
179
- });
180
-
181
- it('promises 2 times', async () => {
182
-
183
- const store = createStore<boolean>(true);
184
- const cb = jest.fn();
185
-
186
- const to = new TransitionObserver(() => store.value)
187
- .to(false)
188
- .cb(cb);
189
-
190
- for (let i = 1; i <= 2; ++i) {
191
- store.setValue(true);
192
-
193
- const p = to.getPromise();
194
-
195
- store.setValue(false);
196
-
197
- await expect(p).resolves.toBe(false);
198
- expect(cb).not.toHaveBeenCalled();
199
- cb.mockReset();
200
- }
201
- });
202
-
203
- it('promising – aborting', async () => {
204
-
205
- const store = createStore<boolean>(true);
206
- const cb = jest.fn();
207
-
208
- const to = new TransitionObserver(() => store.value)
209
- .to(false)
210
- .cb(cb);
211
-
212
- const p = to.getPromise();
213
-
214
- to.dispose();
215
-
216
- await expect(p).rejects.toThrow(/Aborted/);
217
- expect(cb).not.toHaveBeenCalled();
218
- });
219
- });
package/src/cache.ts DELETED
@@ -1,181 +0,0 @@
1
- import { observable, makeObservable, runInAction, action } from 'mobx';
2
- import { NumberModel } from './viewModels/NumberModel';
3
- import { createLogger, ILogger } from './logger';
4
-
5
- export type DeferredGetter<T> = {
6
- readonly current: T;
7
- readonly promise: Promise<T>;
8
- readonly busy: boolean;
9
- };
10
-
11
- export namespace DeferredGetter {
12
- const _resolvedPromise = Promise.resolve<undefined>(undefined);
13
- export const Empty = {
14
- get current(): undefined { return undefined; },
15
- get promise(): Promise<undefined> { return _resolvedPromise; },
16
- get busy() { return undefined; },
17
- isEmpty: true,
18
- } as DeferredGetter<null>;
19
- }
20
-
21
- export class PromiseCache<T, K = string> {
22
-
23
- @observable.shallow
24
- private readonly _itemsCache: Record<string, T> = { };
25
-
26
- @observable
27
- private readonly _itemsStatus: Record<string, boolean> = { };
28
-
29
- private readonly _fetchCache: Record<string, Promise<T>> = { };
30
-
31
- private _logger: ILogger = null;
32
- private _observeItems = false;
33
-
34
- private readonly _busyCount = new NumberModel(0);
35
-
36
- constructor(
37
- readonly fetcher: (id: K) => Promise<T>,
38
- readonly keyAdapter?: K extends string ? null : (k: K) => string,
39
- readonly keyParser?: K extends string ? null : (id: string) => K,
40
- observeItems = false,
41
- ) {
42
- makeObservable(this);
43
- this._observeItems = observeItems;
44
- }
45
-
46
- public get busyCount() { return this._busyCount.value; }
47
-
48
- useObserveItems(observeItems: boolean) {
49
- this._observeItems = observeItems;
50
- return this;
51
- }
52
-
53
- private _pk(k: K): string {
54
- if (k == null) {
55
- throw new Error('PromiseCache: null keys are not supported');
56
- }
57
-
58
- if (typeof k === 'string') {
59
- return k;
60
- }
61
-
62
- if (!this.keyAdapter) {
63
- throw new Error('Provide key adapter for non-string keys');
64
- }
65
-
66
- return this.keyAdapter(k);
67
- }
68
-
69
- useLogger(name?: string) {
70
- this._logger = createLogger(`[PromiseCache:${name || '?'}]`);
71
- return this;
72
- }
73
-
74
- getDeferred(key: K): DeferredGetter<T> {
75
- const self = this;
76
- return {
77
- get current() { return self.getCurrent(key); },
78
- get promise() { return self.get(key); },
79
- get busy() { return self.getIsBusy(key); },
80
- };
81
- }
82
-
83
- getIsBusy(id: K): boolean {
84
- const key = this._pk(id);
85
- return this._itemsStatus[key];
86
- }
87
-
88
- getCurrent(id: K, initiateFetch = true): T {
89
- const key = this._pk(id);
90
- const item = this._itemsCache[key];
91
- if (initiateFetch) {
92
- this.get(id);
93
- }
94
- this._logger?.log(key, 'getCurrent returns', item);
95
- return item;
96
- }
97
-
98
- get(id: K): Promise<T> {
99
- const key = this._pk(id);
100
- const item = this._itemsCache[key];
101
- if (item !== undefined) {
102
- this._logger?.log(key, 'item resolved to', item);
103
- return Promise.resolve(item);
104
- }
105
-
106
- let promise = this._fetchCache[key];
107
- if (promise) {
108
- this._logger?.log(key, 'item resolved to <promise>');
109
- return promise;
110
- }
111
-
112
- runInAction(() => this._itemsStatus[key] = true);
113
- promise = this._doFetchAsync(id, key);
114
-
115
- runInAction(() => this._fetchCache[key] = promise);
116
- return promise;
117
- }
118
-
119
- private _doFetchAsync = async (id: K, key: string) => {
120
- try {
121
- this._busyCount.increment();
122
- const res = await this.fetcher(id);
123
- if (this._fetchCache[key]) {
124
- this._logger?.log(key, 'item\'s <promise> resolved to', res);
125
- const result = res
126
- ? (this._observeItems ? observable.object(res) : res)
127
- : null;
128
- runInAction(() => this._itemsCache[key] = result);
129
- }
130
- return res;
131
- } finally {
132
- runInAction(() => {
133
- this._busyCount.decrement();
134
- delete this._fetchCache[key];
135
- this._itemsStatus[key] = false;
136
- });
137
- }
138
- };
139
-
140
- invalidate(id: K) {
141
- const key = this._pk(id);
142
- this._set(key, undefined, undefined, undefined);
143
- }
144
-
145
- updateValueDirectly(id: K, value: T) {
146
- const key = this._pk(id);
147
- this._set(key, value, undefined, undefined);
148
- }
149
-
150
- hasKey(id: K) {
151
- const key = this._pk(id);
152
- return this._itemsCache[key] !== undefined || this._itemsStatus[key] !== undefined;
153
- }
154
-
155
- keys() {
156
- return Object.keys(this._itemsCache);
157
- }
158
-
159
- keysParsed() {
160
- if (!this.keyParser) {
161
- return null;
162
- }
163
-
164
- return this.keys().map(this.keyParser);
165
- }
166
-
167
- @action
168
- private _set(key: string, item: T, promise: Promise<T>, busy: boolean) {
169
- _setX(key, this._fetchCache, promise);
170
- _setX(key, this._itemsStatus, busy);
171
- _setX(key, this._itemsCache, item);
172
- }
173
- }
174
-
175
- function _setX<T>(key: string, obj: Record<string, T>, val: T) {
176
- if (val === undefined) {
177
- delete obj[key];
178
- } else {
179
- obj[key] = val;
180
- }
181
- }
@@ -1,4 +0,0 @@
1
-
2
- export type DeepPartial<T> = {
3
- [P in keyof T]?: DeepPartial<T[P]>;
4
- };
package/src/functions.ts DELETED
@@ -1,14 +0,0 @@
1
-
2
- type PropertiesOf<T> = Exclude<{
3
- [K in keyof T]: T[K] extends Function ? never : K
4
- }[keyof T], undefined>;
5
-
6
- export type RemoveFunctionFields<T> = {
7
- readonly [P in PropertiesOf<T>]: T[P];
8
- };
9
-
10
- export function safeCall<T extends (...args: any) => any>(cb: T | undefined, ...args: Parameters<T>): ReturnType<T> | void {
11
- if (cb) {
12
- return cb.apply(null, args);
13
- }
14
- }
package/src/lazy/index.ts DELETED
@@ -1,33 +0,0 @@
1
-
2
- import { LazyObservable, LazyPromiseObservable } from './observable';
3
- import logger from '../logger';
4
-
5
- // Backward compatibility stuff ...
6
-
7
- class LazyObservableWarned<T> extends LazyObservable<T> {
8
-
9
- constructor(factory: () => T) {
10
- super(factory);
11
-
12
- logger.log('@zajno/common/lazy: you are using LazyObservable but imported just as Lazy. To avoid this warning import LazyObservable directly from lazy/observable or use non-observable version from lazy/singleton.');
13
- }
14
-
15
- }
16
-
17
- class LazyPromiseObservableWarned<T> extends LazyPromiseObservable<T> {
18
-
19
- constructor(factory: () => Promise<T>, initial?: T) {
20
- super(factory, initial);
21
-
22
- logger.log('@zajno/common/lazy: you are using LazyPromiseObservableWarned but imported just as LazyPromise. To avoid this warning import LazyPromiseObservable directly from lazy/observable or use non-observable version from lazy/promise.');
23
- }
24
-
25
- }
26
-
27
- export default LazyObservableWarned;
28
-
29
- // In future versions make these imports straight
30
- export {
31
- LazyObservableWarned as Lazy,
32
- LazyPromiseObservableWarned as LazyPromise,
33
- };
@@ -1,37 +0,0 @@
1
- import { Lazy } from './singleton';
2
- import { LazyPromise } from './promise';
3
- import { observable, makeObservable, action } from 'mobx';
4
-
5
- export class LazyObservable<T> extends Lazy<T> {
6
-
7
- constructor(factory: (() => T)) {
8
- super(factory);
9
-
10
- makeObservable<Lazy<T>, '_instance' | 'ensureInstance'>(this, {
11
- _instance: observable,
12
- reset: action,
13
- ensureInstance: action,
14
- });
15
- }
16
- }
17
-
18
- export class LazyPromiseObservable<T> extends LazyPromise<T> {
19
-
20
- constructor(
21
- factory: () => Promise<T>,
22
- initial?: T,
23
- ) {
24
- super(factory, initial);
25
-
26
- makeObservable<
27
- LazyPromise<T>,
28
- '_instance' | '_busy' | 'setInstance' | 'ensureInstanceLoading'
29
- >(this, {
30
- _instance: observable.ref,
31
- _busy: observable,
32
- setInstance: action,
33
- ensureInstanceLoading: action,
34
- reset: action,
35
- });
36
- }
37
- }
package/src/lazy.light.ts DELETED
@@ -1,8 +0,0 @@
1
-
2
- // DEPRECATED MODULE. Delete in future versions
3
-
4
- import logger from './logger';
5
-
6
- export * from './lazy/light';
7
-
8
- logger.warn('@zajno/common: importing module "lazy.light" is deprecated; please change your import to "lazy/light" module.');
@@ -1,105 +0,0 @@
1
- import { createLogger, ILogger } from './logger';
2
- import { combineDisposers, IDisposable } from './disposer';
3
- import { NumberModel } from './viewModels/NumberModel';
4
-
5
- type Unsub = () => void;
6
-
7
- export class ObserversMap implements IDisposable {
8
- /** Unsusbcrobers map: key => unsub fn */
9
- private readonly _map = new Map<string, () => void>();
10
- /** Timeouts map: key => timeout handle */
11
- private readonly _timeouts = new Map<string, any>();
12
-
13
- private readonly _logger: ILogger = null;
14
- private readonly _count = new NumberModel();
15
-
16
- constructor(readonly subscribe: null | ((key: string) => Promise<Unsub[]>), readonly name?: string) {
17
- this._logger = createLogger(`[Observers:${this.name || '?'}]`);
18
- }
19
-
20
- public get count() { return this._count.value; }
21
-
22
- public getIsObserving(key: string) {
23
- return this._map.has(key);
24
- }
25
-
26
- public getHasObserveTimeout(key: string) {
27
- return this.getIsObserving(key) && this._timeouts.has(key);
28
- }
29
-
30
- public async enable(key: string, enable: boolean, clearAfter: number = null, existingUnsubs: Unsub[] = null) {
31
- if (enable === this.getIsObserving(key)) {
32
- this.refreshTimeout(key, enable, clearAfter, true);
33
- return;
34
- }
35
-
36
- if (enable) {
37
- this._logger.log('Adding observer for key =', key, clearAfter ? `, clearAfter = ${clearAfter}` : '');
38
-
39
- // this marker will help to determine whether unsubscribe was requested while we were in process of subscribing
40
- let disabed = false;
41
- const marker = () => { disabed = true; };
42
-
43
- this._map.set(key, marker);
44
-
45
- if (!this.subscribe && !existingUnsubs) {
46
- throw new Error('Neither subscribe function nor existingUnsubs has been configured');
47
- }
48
-
49
- const unsubs = existingUnsubs || await this.subscribe(key);
50
- const result = combineDisposers(...unsubs);
51
-
52
- if (disabed) { // unsubscribe was requested
53
- result();
54
- } else {
55
- this._map.set(key, result);
56
- this._count.increment();
57
- this.refreshTimeout(key, true, clearAfter);
58
- }
59
- } else {
60
- this._logger.log('Removing observer for key =', key);
61
- this.refreshTimeout(key, false);
62
- const unsub = this._map.get(key);
63
- this._map.delete(key);
64
- unsub();
65
- this._count.decrement();
66
- }
67
- }
68
-
69
- private refreshTimeout(key: string, enable: boolean, timeout?: number, refresh = false) {
70
- const current = this._timeouts.get(key);
71
- if (current) {
72
- clearTimeout(current);
73
- this._timeouts.delete(key);
74
- }
75
-
76
- if (enable && refresh && current == null) {
77
- // DO NOT setup new timeout because it's not intended to clear subscribtion if it was previously enabled for long term
78
- return;
79
- }
80
-
81
- if (enable && timeout) {
82
- const t = setTimeout(() => this.enable(key, false), timeout);
83
- this._timeouts.set(key, t);
84
- }
85
- }
86
-
87
- public clear() {
88
- // Clear timeouts
89
- for (const t of this._timeouts.values()) {
90
- clearTimeout(t);
91
- }
92
- this._timeouts.clear();
93
-
94
- // Invoke unsubscribers
95
- for (const u of this._map.values()) {
96
- u();
97
- }
98
- this._map.clear();
99
- this._count.setValue(0);
100
- }
101
-
102
- public dispose() {
103
- this.clear();
104
- }
105
- }