@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,1314 +0,0 @@
1
- import * as DateHelpers from '..';
2
- import { Granularity } from '..';
3
-
4
- describe('Date Helpers', () => {
5
- test('startOf', () => {
6
- const day = new Date('2019-08-21T09:08:33.697Z');
7
-
8
- expect(new Date().getTimezoneOffset()).toBe(0);
9
-
10
- expect(DateHelpers.startOf(day, 'minute')).toStrictEqual(new Date('2019-08-21T09:08:00.000Z'));
11
-
12
- expect(DateHelpers.startOf(day, 'hour')).toStrictEqual(new Date('2019-08-21T09:00:00.000Z'));
13
-
14
- expect(DateHelpers.startOf(day, 'day')).toStrictEqual(new Date('2019-08-21T00:00:00.000Z'));
15
-
16
- expect(DateHelpers.startOf(day, 'week')).toStrictEqual(new Date('2019-08-19T00:00:00.000Z'));
17
-
18
- expect(DateHelpers.startOf(day, 'month')).toStrictEqual(new Date('2019-08-01T00:00:00.000Z'));
19
-
20
- expect(DateHelpers.startOf(day, 'year')).toStrictEqual(new Date('2019-01-01T00:00:00.000Z'));
21
- });
22
-
23
- test('endOf', () => {
24
- const day = new Date('2019-08-21T09:08:33.697Z');
25
-
26
- expect(DateHelpers.endOf(day, 'minute')).toStrictEqual(new Date('2019-08-21T09:08:59.999Z'));
27
-
28
- expect(DateHelpers.endOf(day, 'hour')).toStrictEqual(new Date('2019-08-21T09:59:59.999Z'));
29
-
30
- expect(DateHelpers.endOf(day, 'day')).toStrictEqual(new Date('2019-08-21T23:59:59.999Z'));
31
-
32
- expect(DateHelpers.endOf(day, 'week')).toStrictEqual(new Date('2019-08-25T23:59:59.999Z'));
33
-
34
- expect(DateHelpers.endOf(day, 'month')).toStrictEqual(new Date('2019-08-31T23:59:59.999Z'));
35
-
36
- expect(DateHelpers.endOf(day, 'year')).toStrictEqual(new Date('2019-12-31T23:59:59.999Z'));
37
- });
38
-
39
- test('add', () => {
40
- const now = new Date('2020-11-09T15:22:08.959Z');
41
-
42
- expect(DateHelpers.add(now, 1, 'day')).toStrictEqual(new Date('2020-11-10T15:22:08.959Z'));
43
- expect(DateHelpers.add(now, -1, 'day')).toStrictEqual(new Date('2020-11-08T15:22:08.959Z'));
44
-
45
- });
46
-
47
- test('Format.toDistance', () => {
48
- const from = new Date('2020-11-09T15:22:08.959Z');
49
-
50
- expect(DateHelpers.Format.toDistance(from, undefined)).toMatch(/weeks ago/);
51
- expect(DateHelpers.Format.toDistance(from, null)).toMatch(/weeks ago/);
52
-
53
- expect(DateHelpers.Format.toDistance(DateHelpers.add(from, 5, 'hour'), from)).toBe('Today');
54
- expect(DateHelpers.Format.toDistance(DateHelpers.add(from, 16, 'hour'), from)).toBe('Tomorrow');
55
- expect(DateHelpers.Format.toDistance(DateHelpers.add(from, 1, 'day'), from)).toBe('Tomorrow');
56
- expect(DateHelpers.Format.toDistance(DateHelpers.add(from, 2, 'day'), from)).toBe('In 2 days');
57
- expect(DateHelpers.Format.toDistance(DateHelpers.add(from, 6, 'day'), from)).toBe('In 6 days');
58
- expect(DateHelpers.Format.toDistance(DateHelpers.add(from, 7, 'day'), from)).toBe('In a week');
59
- expect(DateHelpers.Format.toDistance(DateHelpers.add(from, 8, 'day'), from)).toBe('In a week');
60
- expect(DateHelpers.Format.toDistance(DateHelpers.add(from, 13, 'day'), from)).toBe('In a week');
61
- expect(DateHelpers.Format.toDistance(DateHelpers.add(from, 2, 'week'), from)).toBe('In 2 weeks');
62
-
63
- expect(DateHelpers.Format.toDistance(DateHelpers.add(from, -5, 'hour'), from)).toBe('Today');
64
- expect(DateHelpers.Format.toDistance(DateHelpers.add(from, -16, 'hour'), from)).toBe('Yesterday');
65
- expect(DateHelpers.Format.toDistance(DateHelpers.add(from, -1, 'day'), from)).toBe('Yesterday');
66
- expect(DateHelpers.Format.toDistance(DateHelpers.add(from, -2, 'day'), from)).toBe('2 days ago');
67
- expect(DateHelpers.Format.toDistance(DateHelpers.add(from, -6, 'day'), from)).toBe('6 days ago');
68
- expect(DateHelpers.Format.toDistance(DateHelpers.add(from, -7, 'day'), from)).toBe('Week ago');
69
- expect(DateHelpers.Format.toDistance(DateHelpers.add(from, -8, 'day'), from)).toBe('Week ago');
70
- expect(DateHelpers.Format.toDistance(DateHelpers.add(from, -13, 'day'), from)).toBe('Week ago');
71
- expect(DateHelpers.Format.toDistance(DateHelpers.add(from, -2, 'week'), from)).toBe('2 weeks ago');
72
-
73
- });
74
-
75
- test('getDiscreteDiff', () => {
76
- const d1 = new Date('2020-11-30T13:26:15.893Z');
77
-
78
- expect(DateHelpers.getDiscreteDiff(d1, d1, 'day', false, false)).toBe(0);
79
-
80
- expect(DateHelpers.getDiscreteDiff(
81
- d1,
82
- new Date('2021-11-30T13:26:15.893Z'),
83
- 'day', true, false)
84
- ).toBe(365);
85
-
86
- expect(DateHelpers.getDiscreteDiff(
87
- d1,
88
- new Date('2020-12-01T13:26:15.893Z'),
89
- 'day')
90
- ).toBe(1);
91
-
92
- expect(DateHelpers.getDiscreteDiff(
93
- d1,
94
- new Date('2020-11-29T13:26:15.893Z'),
95
- 'day')
96
- ).toBe(1);
97
-
98
- expect(DateHelpers.getDiscreteDiff(
99
- d1,
100
- new Date('2020-11-29T13:26:15.893Z'),
101
- 'day', false, false)
102
- ).toStrictEqual(-1);
103
-
104
- expect(DateHelpers.getDiscreteDiff(
105
- new Date('2020-11-30T00:00:00.001Z'),
106
- new Date('2020-11-29T23:59:59.999Z'),
107
- 'day', false, false)
108
- ).toStrictEqual(-1);
109
-
110
- expect(DateHelpers.getDiscreteDiff(
111
- d1,
112
- new Date('2021-11-29T13:26:15.893Z'),
113
- 'year')
114
- ).toBe(1);
115
-
116
- expect(DateHelpers.getDiscreteDiff(
117
- d1,
118
- new Date('2021-11-29T13:26:15.893Z'),
119
- 'year', true)
120
- ).toBe(1);
121
-
122
- expect(DateHelpers.getDiscreteDiff(
123
- d1,
124
- new Date('2021-12-01T13:26:15.893Z'),
125
- 'month')
126
- ).toBe(1);
127
-
128
- expect(DateHelpers.getDiscreteDiff(
129
- d1,
130
- new Date('2021-12-01T13:26:15.893Z'),
131
- 'month', true)
132
- ).toBe(1);
133
-
134
- expect(() => DateHelpers.getDiscreteDiff(
135
- undefined,
136
- new Date('2021-12-01T13:26:15.893Z'),
137
- 'year')
138
- ).toThrow();
139
- });
140
-
141
- test('intersects', () => {
142
-
143
- expect(DateHelpers.intersects(
144
- new Date('2020-11-30T13:26:15.892Z'),
145
- new Date('2020-11-30T13:26:15.892Z'),
146
- new Date('2020-11-30T13:26:15.893Z'),
147
- new Date('2020-11-30T13:26:15.893Z'),
148
- 'millisecond',
149
- )).toBeFalsy();
150
-
151
- expect(DateHelpers.intersects(
152
- new Date('2020-11-30T13:26:15.892Z'),
153
- new Date('2020-11-30T13:26:15.892Z'),
154
- new Date('2020-11-30T13:26:15.893Z'),
155
- new Date('2020-11-30T13:26:15.893Z'),
156
- 'second',
157
- )).toBeTruthy();
158
-
159
- expect(DateHelpers.intersects(
160
- new Date('2020-11-30T13:26:15.892Z'),
161
- new Date('2020-11-30T13:26:15.892Z'),
162
- new Date('2020-11-30T13:26:15.893Z'),
163
- new Date('2020-11-30T13:26:15.893Z'),
164
- 'day',
165
- )).toBeTruthy();
166
-
167
- expect(DateHelpers.intersects(
168
- new Date('2020-11-29T13:26:15.892Z'),
169
- new Date('2020-11-29T23:59:59.999Z'),
170
- new Date('2020-11-30T00:00:00.000Z'),
171
- new Date('2020-11-30T13:26:15.893Z'),
172
- 'day',
173
- )).toBeFalsy();
174
-
175
- expect(DateHelpers.intersects(
176
- new Date('2020-11-29T13:26:15.892Z'),
177
- new Date('2020-11-29T23:59:59.999Z'),
178
- new Date('2020-11-30T00:00:00.000Z'),
179
- new Date('2020-11-30T13:26:15.893Z'),
180
- )).toBeFalsy();
181
-
182
- expect(DateHelpers.intersects(
183
- new Date('2020-11-29T13:26:15.892Z'),
184
- new Date('2020-11-29T13:26:15.892Z'),
185
- new Date('2020-11-29T13:26:15.892Z'),
186
- new Date('2020-11-29T13:26:15.892Z'),
187
- 'day'
188
- )).toBeTruthy();
189
-
190
- expect(DateHelpers.intersects(
191
- new Date('2020-11-29T13:26:15.892Z'),
192
- new Date('2020-12-30T13:26:15.892Z'),
193
- new Date('2020-12-29T13:26:15.892Z'),
194
- new Date('2020-11-29T13:26:15.892Z'),
195
- 'day'
196
- )).toBeTruthy();
197
-
198
- expect(DateHelpers.intersects(
199
- new Date('2020-11-19T13:26:15.892Z'),
200
- new Date('2020-12-30T13:26:15.892Z'),
201
- new Date('2020-12-29T13:26:15.892Z'),
202
- new Date('2020-11-29T13:26:15.892Z'),
203
- 'day'
204
- )).toBeTruthy();
205
-
206
- expect(DateHelpers.intersects(
207
- new Date('2020-12-19T13:26:15.892Z'),
208
- new Date('2020-12-30T13:26:15.892Z'),
209
- new Date('2020-11-29T13:26:15.892Z'),
210
- new Date('2020-12-29T13:26:15.892Z'),
211
- 'day'
212
- )).toBeTruthy();
213
-
214
- expect(DateHelpers.intersects(
215
- new Date('2020-12-19T13:26:15.892Z'),
216
- new Date('2020-12-20T13:26:15.892Z'),
217
- new Date('2020-11-29T13:26:15.892Z'),
218
- new Date('2020-12-29T13:26:15.892Z'),
219
- 'day'
220
- )).toBeTruthy();
221
-
222
- expect(DateHelpers.intersects(
223
- new Date('2020-12-19T13:26:15.892Z'),
224
- new Date('2020-12-20T13:26:15.892Z'),
225
- new Date('2020-11-29T13:26:15.892Z'),
226
- new Date('2020-12-29T13:26:15.892Z'),
227
- 'week'
228
- )).toBeTruthy();
229
-
230
- expect(DateHelpers.intersects(
231
- new Date('2020-12-19T13:26:15.892Z'),
232
- new Date('2020-12-20T13:26:15.892Z'),
233
- new Date('2020-11-29T13:26:15.892Z'),
234
- new Date('2020-12-29T13:26:15.892Z'),
235
- 'month'
236
- )).toBeTruthy();
237
-
238
- expect(DateHelpers.intersects(
239
- new Date('2020-12-19T13:26:15.892Z'),
240
- new Date('2020-12-20T13:26:15.892Z'),
241
- new Date('2020-11-29T13:26:15.892Z'),
242
- new Date('2020-12-29T13:26:15.892Z'),
243
- 'year'
244
- )).toBeTruthy();
245
-
246
- expect(() => DateHelpers.intersects(
247
- new Date('2020-12-19T13:26:15.892Z'),
248
- new Date('2020-12-20T13:26:15.892Z'),
249
- new Date('2020-11-29T13:26:15.892Z'),
250
- new Date('2020-12-29T13:26:15.892Z'),
251
- null
252
- )).toThrow('Unsupported granularity');
253
- });
254
-
255
- test('countDays', () => {
256
-
257
- expect(DateHelpers.countDays(
258
- new Date('2019-12-21T13:26:15.893Z'),
259
- new Date('2020-01-03T13:26:15.893Z'),
260
- null)
261
- ).toBe(14);
262
-
263
- expect(DateHelpers.countDays(
264
- new Date('2019-12-29T13:26:15.893Z'),
265
- new Date('2020-01-07T13:26:15.893Z'),
266
- DateHelpers.isNetworkDate)
267
- ).toBe(7);
268
-
269
- expect(DateHelpers.countDays(
270
- new Date('2020-11-29T13:26:15.893Z'),
271
- new Date('2020-12-10T13:26:15.893Z'),
272
- null)
273
- ).toBe(12);
274
-
275
- expect(DateHelpers.countDays(
276
- new Date('2020-11-29T13:26:15.893Z'),
277
- new Date('2020-11-11T13:26:15.893Z'),
278
- null)
279
- ).toBe(1);
280
-
281
- expect(DateHelpers.countDays(
282
- new Date('2020-12-10T13:26:15.893Z'),
283
- new Date('2020-12-21T13:26:15.893Z'),
284
- null)
285
- ).toBe(12);
286
-
287
- expect(DateHelpers.countDays(
288
- new Date('2020-12-10T13:26:15.893Z'),
289
- new Date('2020-12-21T13:26:15.893Z'),
290
- DateHelpers.isNetworkDate)
291
- ).toBe(8);
292
-
293
- expect(DateHelpers.countDays(
294
- new Date('2020-11-29T13:26:15.893Z'),
295
- new Date('2020-11-11T13:26:15.893Z'),
296
- DateHelpers.isNetworkDate)
297
- ).toBe(0);
298
- });
299
-
300
- test('isSame', () => {
301
-
302
- expect(DateHelpers.isSame(
303
- new Date('2020-11-29T13:26:15.893Z'),
304
- new Date('2020-02-12T19:36:14.893Z'),
305
- 'year',
306
- true
307
- )).toBeTruthy();
308
-
309
- expect(DateHelpers.isSame(
310
- new Date('2020-11-29T13:26:15.893Z'),
311
- new Date('2018-11-29T13:26:15.893Z'),
312
- 'year',
313
- true
314
- )).toBeFalsy();
315
-
316
- expect(DateHelpers.isSame(
317
- new Date('2020-11-29T13:26:15.893Z'),
318
- new Date('2020-11-02T19:26:15.893Z'),
319
- 'month',
320
- true
321
- )).toBeTruthy();
322
-
323
- expect(DateHelpers.isSame(
324
- new Date('2020-11-29T13:26:15.893Z'),
325
- new Date('2020-10-24T13:26:15.893Z'),
326
- 'month',
327
- true
328
- )).toBeFalsy();
329
-
330
- expect(DateHelpers.isSame(
331
- new Date('2020-11-29T13:26:15.893Z'),
332
- new Date('2020-12-02T19:26:15.893Z'),
333
- 'week',
334
- true
335
- )).toBeTruthy();
336
-
337
- expect(DateHelpers.isSame(
338
- new Date('2020-11-29T13:26:15.893Z'),
339
- new Date('2020-11-24T13:26:15.893Z'),
340
- 'week',
341
- true
342
- )).toBeFalsy();
343
-
344
- expect(DateHelpers.isSame(
345
- new Date('2020-11-29T13:26:15.893Z'),
346
- new Date('2020-11-29T19:26:15.893Z'),
347
- 'day',
348
- true
349
- )).toBeTruthy();
350
-
351
- expect(DateHelpers.isSame(
352
- new Date('2020-11-29T13:26:15.893Z'),
353
- new Date('2020-11-11T13:26:15.893Z'),
354
- 'day',
355
- true
356
- )).toBeFalsy();
357
-
358
- expect(DateHelpers.isSame(
359
- new Date('2020-11-29T13:26:15.893Z'),
360
- new Date('2020-11-29T13:01:15.893Z'),
361
- 'hour',
362
- true
363
- )).toBeTruthy();
364
-
365
- expect(DateHelpers.isSame(
366
- new Date('2020-11-29T13:26:15.893Z'),
367
- new Date('2020-11-29T18:01:15.893Z'),
368
- 'hour',
369
- true
370
- )).toBeFalsy();
371
-
372
- expect(DateHelpers.isSame(
373
- new Date('2020-11-29T13:26:15.893Z'),
374
- new Date('2020-11-29T13:26:01.123Z'),
375
- 'minute',
376
- true
377
- )).toBeTruthy();
378
-
379
- expect(DateHelpers.isSame(
380
- new Date('2020-11-29T13:26:15.893Z'),
381
- new Date('2020-11-29T13:27:15.893Z'),
382
- 'minute',
383
- true
384
- )).toBeFalsy();
385
-
386
- expect(DateHelpers.isSame(
387
- new Date('2020-11-29T13:26:15.893Z'),
388
- new Date('2020-11-29T13:26:15.123Z'),
389
- 'second',
390
- true
391
- )).toBeTruthy();
392
-
393
- expect(DateHelpers.isSame(
394
- new Date('2020-11-29T13:26:15.434'),
395
- new Date('2020-11-29T13:26:02.213Z'),
396
- 'second',
397
- true
398
- )).toBeFalsy();
399
-
400
- expect(DateHelpers.isSame(
401
- new Date('2020-11-29T13:26:15.893Z'),
402
- new Date('2020-11-29T13:26:15.893Z'),
403
- 'millisecond',
404
- true
405
- )).toBeTruthy();
406
-
407
- expect(DateHelpers.isSame(
408
- new Date('2020-11-29T13:26:15.893Z'),
409
- new Date('2018-11-29T13:26:15.891Z'),
410
- 'millisecond',
411
- true
412
- )).toBeFalsy();
413
-
414
- expect(DateHelpers.isSame(
415
- new Date('2020-11-29T13:26:15.893Z'),
416
- new Date('2018-11-29T13:26:15.891Z'),
417
- 'millisecond',
418
- )).toBeFalsy();
419
-
420
- expect(() => DateHelpers.isSame(
421
- new Date('2020-11-29T13:26:15.893Z'),
422
- new Date('2018-11-29T13:26:15.891Z'),
423
- undefined,
424
- )).toThrow('Unsupported granularity');
425
- });
426
-
427
- test('compare', () => {
428
-
429
- expect(DateHelpers.compare(
430
- new Date('2020-12-30T13:26:15.893Z'),
431
- new Date('2020-12-29T13:26:15.893Z'),
432
- )).toBe(86400000);
433
-
434
- expect(DateHelpers.compare(
435
- new Date('2020-12-30T13:26:15.893Z'),
436
- new Date('2020-12-29T13:26:15.893Z'),
437
- 'day',
438
- true
439
- )).toBe(86400000);
440
-
441
- expect(DateHelpers.compare(
442
- new Date('2020-12-28T13:26:15.893Z'),
443
- new Date('2020-12-29T13:26:15.893Z'),
444
- )).toStrictEqual(-86400000);
445
-
446
- });
447
-
448
- test('unix', () => {
449
-
450
- expect(DateHelpers.unix(new Date('2020-12-30T13:26:15.893Z'))).toBe(1609334775);
451
-
452
- expect(DateHelpers.unix(new Date('2020-12-12T13:26:15.893Z'))).toBe(1607779575);
453
- });
454
-
455
- test('unixDayIndex', () => {
456
-
457
- expect(DateHelpers.unixDayIndex(new Date('2020-12-30T13:26:15.893Z'))).toBe(18626);
458
-
459
- expect(DateHelpers.unixDayIndex(new Date('2022-12-30T13:26:15.893Z'))).toBe(19356);
460
- });
461
-
462
- test('dateFromUnixDayIndex', () => {
463
-
464
- expect(DateHelpers.dateFromUnixDayIndex(18626)).toStrictEqual(new Date('2020-12-30T00:00:00.000Z'));
465
-
466
- expect(DateHelpers.dateFromUnixDayIndex(19356)).toStrictEqual(new Date('2022-12-30T00:00:00.000Z'));
467
-
468
- expect(DateHelpers.dateFromUnixDayIndex(0)).toStrictEqual(new Date('1970-01-01T00:00:00.000Z'));
469
- });
470
-
471
- test('Format.toDatePicker', () => {
472
- expect(DateHelpers.Format.toDatePicker(new Date('2022-12-30T13:26:15.893Z'))).toBe('2022-12-30');
473
-
474
- expect(DateHelpers.Format.toDatePicker(new Date('2019-08-19T00:00:00.000Z'))).toBe('2019-08-19');
475
- expect(DateHelpers.Format.toDatePicker(undefined)).toBeNull();
476
- });
477
-
478
- test('convert', () => {
479
-
480
- expect(() => DateHelpers.convert(1000, undefined, 'second')).toThrow('Unsupported granularity');
481
-
482
- expect(DateHelpers.convert(1000, 'millisecond', 'second')).toBe(1);
483
- expect(DateHelpers.convert(1000, 'millisecond', 'minute')).toStrictEqual(1 / 60);
484
-
485
- expect(DateHelpers.convert(1000, 'second', 'millisecond')).toStrictEqual(Math.pow(1000, 2));
486
- expect(DateHelpers.convert(300, 'second', 'minute')).toBe(5);
487
- expect(DateHelpers.convert(60 * 60, 'second', 'hour')).toBe(1);
488
- expect(DateHelpers.convert(60 * 60 * 2, 'second', 'day')).toStrictEqual(1 / 12);
489
- expect(DateHelpers.convert(60 * 60 * 24 * 1.5, 'second', 'week')).toStrictEqual(1.5 / 7);
490
-
491
- expect(DateHelpers.convert(123, 'minute', 'second')).toBe(7380);
492
- expect(DateHelpers.convert(3213, 'minute', 'hour')).toBe(53.55);
493
- expect(DateHelpers.convert(60 * 61, 'minute', 'hour')).toBe(61);
494
- expect(DateHelpers.convert(60 * 36, 'minute', 'day')).toBe(1.5);
495
- expect(DateHelpers.convert(60 * 24 * 14, 'minute', 'week')).toBe(2);
496
-
497
- expect(DateHelpers.convert(2.5, 'hour', 'second')).toBe(9000);
498
- expect(DateHelpers.convert(11.5, 'hour', 'minute')).toBe(690);
499
- expect(DateHelpers.convert(234, 'hour', 'day')).toBe(9.75);
500
- expect(DateHelpers.convert(24 * 35, 'hour', 'week')).toBe(5);
501
-
502
- expect(DateHelpers.convert(1 / 2, 'day', 'second')).toBe(43200);
503
- expect(DateHelpers.convert(1 / 60, 'day', 'minute')).toBe(24);
504
- expect(DateHelpers.convert(11, 'day', 'minute')).toBe(15840);
505
- expect(DateHelpers.convert(4, 'day', 'hour')).toBe(96);
506
- expect(DateHelpers.convert(28, 'day', 'week')).toBe(4);
507
- expect(DateHelpers.convert(3.5, 'day', 'week')).toBe(0.5);
508
- });
509
-
510
- test('min', () => {
511
-
512
- expect(DateHelpers.min(
513
- new Date('2023-12-30T13:26:15.893Z'),
514
- new Date('2023-12-30T13:26:15.893Z'),
515
- )).toStrictEqual(new Date('2023-12-30T13:26:15.893Z'));
516
-
517
- expect(DateHelpers.min(
518
- new Date('2023-12-30T13:26:15.893Z'),
519
- new Date('2020-12-29T13:26:15.893Z'),
520
- )).toStrictEqual(new Date('2020-12-29T13:26:15.893Z'));
521
-
522
- expect(DateHelpers.min(
523
- new Date('2020-12-30T13:26:15.893Z'),
524
- new Date('2020-12-29T13:26:15.893Z'),
525
- )).toStrictEqual(new Date('2020-12-29T13:26:15.893Z'));
526
-
527
- expect(DateHelpers.min(
528
- new Date('2020-12-29T13:26:16.893Z'),
529
- new Date('2020-12-29T13:26:15.893Z'),
530
- )).toStrictEqual(new Date('2020-12-29T13:26:15.893Z'));
531
-
532
- expect(DateHelpers.min(
533
- new Date('2020-12-29T13:26:16.893Z'),
534
- new Date('2024-12-29T13:26:15.893Z'),
535
- )).toStrictEqual(new Date('2020-12-29T13:26:16.893Z'));
536
- });
537
-
538
- test('max', () => {
539
-
540
- expect(DateHelpers.max(
541
- new Date('2023-12-30T13:26:15.893Z'),
542
- new Date('2020-12-29T13:26:15.893Z'),
543
- )).toStrictEqual(new Date('2023-12-30T13:26:15.893Z'));
544
-
545
- expect(DateHelpers.max(
546
- new Date('2020-12-30T13:26:15.893Z'),
547
- new Date('2020-12-29T13:26:15.893Z'),
548
- )).toStrictEqual(new Date('2020-12-30T13:26:15.893Z'));
549
-
550
- expect(DateHelpers.max(
551
- new Date('2020-12-29T13:26:16.893Z'),
552
- new Date('2020-12-29T13:26:15.893Z'),
553
- )).toStrictEqual(new Date('2020-12-29T13:26:16.893Z'));
554
-
555
- expect(DateHelpers.max(
556
- new Date('2020-12-29T13:26:16.893Z'),
557
- new Date('2024-12-29T13:26:15.893Z'),
558
- )).toStrictEqual(new Date('2024-12-29T13:26:15.893Z'));
559
- });
560
-
561
- test('Period.forward', () => {
562
- const now = new Date('2020-12-22T16:16:18.774Z');
563
-
564
- expect(() => DateHelpers.Period.forward(
565
- { amount: 1, granularity: 'year' },
566
- null
567
- )).toThrow();
568
-
569
- const aYearFromNow = new Date();
570
- aYearFromNow.setFullYear(aYearFromNow.getFullYear() + 1);
571
- aYearFromNow.setMilliseconds(0);
572
- const forwardResult = DateHelpers.Period.forward({ amount: 1, granularity: 'year' });
573
- forwardResult.setMilliseconds(0);
574
- expect(forwardResult).toStrictEqual(aYearFromNow);
575
-
576
- expect(DateHelpers.Period.forward(
577
- { amount: 1, granularity: 'year' },
578
- now
579
- )).toStrictEqual(DateHelpers.add(now, 1, 'year'));
580
-
581
- expect(DateHelpers.Period.forward(
582
- { amount: 5, granularity: 'month' },
583
- now
584
- )).toStrictEqual(DateHelpers.add(now, 5, 'month'));
585
-
586
- expect(DateHelpers.Period.forward(
587
- { amount: 12, granularity: 'week' },
588
- now
589
- )).toStrictEqual(DateHelpers.add(now, 12, 'week'));
590
-
591
- expect(DateHelpers.Period.forward(
592
- { amount: 99, granularity: 'day' },
593
- now
594
- )).toStrictEqual(DateHelpers.add(now, 99, 'day'));
595
-
596
- expect(DateHelpers.Period.forward(
597
- { amount: 24, granularity: 'hour' },
598
- now
599
- )).toStrictEqual(DateHelpers.add(now, 24, 'hour'));
600
-
601
- expect(DateHelpers.Period.forward(
602
- { amount: 60, granularity: 'minute' },
603
- now
604
- )).toStrictEqual(DateHelpers.add(now, 60, 'minute'));
605
-
606
- expect(DateHelpers.Period.forward(
607
- { amount: 630, granularity: 'second' },
608
- now
609
- )).toStrictEqual(DateHelpers.add(now, 630, 'second'));
610
-
611
- expect(DateHelpers.Period.forward(
612
- { amount: 2, granularity: 'millisecond' },
613
- now
614
- )).toStrictEqual(DateHelpers.add(now, 2, 'millisecond'));
615
- });
616
-
617
- test('Period.backward', () => {
618
- const now = new Date('2020-12-22T16:16:18.774Z');
619
-
620
- const aYearAgo = new Date();
621
- aYearAgo.setFullYear(aYearAgo.getFullYear() - 1);
622
- aYearAgo.setMilliseconds(0);
623
- const backwardResult = DateHelpers.Period.backward({ amount: 1, granularity: 'year' });
624
- backwardResult.setMilliseconds(0);
625
- expect(backwardResult).toStrictEqual(aYearAgo);
626
-
627
- expect(DateHelpers.Period.backward(
628
- { amount: 1, granularity: 'year' },
629
- now
630
- )).toStrictEqual(DateHelpers.add(now, -1, 'year'));
631
-
632
- expect(DateHelpers.Period.backward(
633
- { amount: 5, granularity: 'month' },
634
- now
635
- )).toStrictEqual(DateHelpers.add(now, -5, 'month'));
636
-
637
- expect(DateHelpers.Period.backward(
638
- { amount: 12, granularity: 'week' },
639
- now
640
- )).toStrictEqual(DateHelpers.add(now, -12, 'week'));
641
-
642
- expect(DateHelpers.Period.backward(
643
- { amount: 99, granularity: 'day' },
644
- now
645
- )).toStrictEqual(DateHelpers.add(now, -99, 'day'));
646
-
647
- expect(DateHelpers.Period.backward(
648
- { amount: 24, granularity: 'hour' },
649
- now
650
- )).toStrictEqual(DateHelpers.add(now, -24, 'hour'));
651
-
652
- expect(DateHelpers.Period.backward(
653
- { amount: 60, granularity: 'minute' },
654
- now
655
- )).toStrictEqual(DateHelpers.add(now, -60, 'minute'));
656
-
657
- expect(DateHelpers.Period.backward(
658
- { amount: 630, granularity: 'second' },
659
- now
660
- )).toStrictEqual(DateHelpers.add(now, -630, 'second'));
661
-
662
- expect(DateHelpers.Period.backward(
663
- { amount: 2, granularity: 'millisecond' },
664
- now
665
- )).toStrictEqual(DateHelpers.add(now, -2, 'millisecond'));
666
-
667
- });
668
-
669
- test('Period.toMs', () => {
670
- const now = new Date(2021, 0, 11, 11, 11);
671
-
672
- expect(DateHelpers.Period.toMs({ amount: 1, granularity: 'year' }, now)).toBe(31622400000);
673
-
674
- expect(DateHelpers.Period.toMs({ amount: 4.5, granularity: 'month' }, now)).toBe(10540800000);
675
-
676
- expect(DateHelpers.Period.toMs({ amount: 3, granularity: 'week' }, now)).toBe(1814400000);
677
-
678
- expect(DateHelpers.Period.toMs({ amount: 70, granularity: 'day' }, now)).toBe(6048000000);
679
-
680
- expect(DateHelpers.Period.toMs({ amount: 12, granularity: 'hour' }, now)).toBe(43200000);
681
-
682
- expect(DateHelpers.Period.toMs({ amount: 58, granularity: 'minute' }, now)).toBe(3480000);
683
-
684
- expect(DateHelpers.Period.toMs({ amount: 84, granularity: 'second' }, now)).toBe(84000);
685
-
686
- expect(DateHelpers.Period.toMs({ amount: 999, granularity: 'millisecond' }, now)).toBe(999);
687
- });
688
-
689
- test('Period.format', () => {
690
-
691
- expect(DateHelpers.Period.format({ amount: 2, granularity: 'year' })).toBe('2 years');
692
- expect(DateHelpers.Period.format({ amount: 1, granularity: 'year' })).toBe('1 year');
693
-
694
- expect(DateHelpers.Period.format({ amount: 3, granularity: 'month' })).toBe('3 months');
695
- expect(DateHelpers.Period.format({ amount: 1, granularity: 'month' })).toBe('1 month');
696
-
697
- expect(DateHelpers.Period.format({ amount: 343, granularity: 'week' })).toBe('343 weeks');
698
- expect(DateHelpers.Period.format({ amount: 1, granularity: 'week' })).toBe('1 week');
699
-
700
- expect(DateHelpers.Period.format({ amount: 101, granularity: 'day' })).toBe('101 days');
701
- expect(DateHelpers.Period.format({ amount: 1, granularity: 'day' })).toBe('1 day');
702
-
703
- expect(DateHelpers.Period.format({ amount: 3244, granularity: 'hour' })).toBe('3244 hours');
704
- expect(DateHelpers.Period.format({ amount: 1, granularity: 'hour' })).toBe('1 hour');
705
-
706
- expect(DateHelpers.Period.format({ amount: 878, granularity: 'minute' })).toBe('878 minutes');
707
- expect(DateHelpers.Period.format({ amount: 1, granularity: 'minute' })).toBe('1 minute');
708
-
709
- expect(DateHelpers.Period.format({ amount: 7, granularity: 'second' })).toBe('7 seconds');
710
- expect(DateHelpers.Period.format({ amount: 1, granularity: 'second' })).toBe('1 second');
711
-
712
- expect(DateHelpers.Period.format({ amount: 78, granularity: 'millisecond' })).toBe('78 milliseconds');
713
- expect(DateHelpers.Period.format({ amount: 1, granularity: 'millisecond' })).toBe('1 millisecond');
714
- });
715
-
716
- test('YearDate.isValid', () => {
717
-
718
- expect(DateHelpers.YearDate.isValid({ day: 12, month: 12 })).toBeTruthy();
719
- expect(DateHelpers.YearDate.isValid({ day: 1, month: 31 })).toBeTruthy();
720
- expect(DateHelpers.YearDate.isValid({ day: 132, month: 31 })).toBeTruthy();
721
- expect(DateHelpers.YearDate.isValid({ day: 14234, month: 31333 })).toBeTruthy();
722
- });
723
-
724
- test('YearDate.toDate', () => {
725
- const currentYear = new Date().getFullYear();
726
- expect(DateHelpers.YearDate.toDate({ day: 30, month: 12 }, 2020)).toStrictEqual(new Date('2021-01-30T12:00:00.000Z'));
727
- expect(DateHelpers.YearDate.toDate({ day: 1, month: 31 }, 2021)).toStrictEqual(new Date('2023-08-01T12:00:00.000Z'));
728
- expect(DateHelpers.YearDate.toDate({ day: 14, month: 7 }, 2020)).toStrictEqual(new Date('2020-08-14T12:00:00.000Z'));
729
- expect(DateHelpers.YearDate.toDate({ day: 6, month: 3 }, 2022)).toStrictEqual(new Date('2022-04-06T12:00:00.000Z'));
730
- expect(DateHelpers.YearDate.toDate(undefined, 2022)).toBeNull();
731
- expect(DateHelpers.YearDate.toDate({ day: null, month: null }, 2019)).toStrictEqual(new Date('2019-01-01T12:00:00.000Z'));
732
- expect(DateHelpers.YearDate.toDate({ day: null, month: null }, undefined)).toStrictEqual(new Date(`${currentYear}-01-01T12:00:00.000Z`));
733
- });
734
-
735
- test('YearDate.equals', () => {
736
- expect(DateHelpers.YearDate.equals({ day: null, month: null }, { day: null, month: null })).toBeTruthy();
737
- expect(DateHelpers.YearDate.equals(undefined, { day: 12, month: 12 })).toBeFalsy();
738
- expect(DateHelpers.YearDate.equals(undefined, undefined)).toBeTruthy();
739
- expect(DateHelpers.YearDate.equals({ day: 12, month: 12 }, { day: 12, month: 12 })).toBeTruthy();
740
- expect(DateHelpers.YearDate.equals({ day: 1, month: 31 }, { day: 30, month: 12 })).toBeFalsy();
741
- expect(DateHelpers.YearDate.equals({ day: 4, month: 4 }, { day: 4, month: 4 })).toBeTruthy();
742
- expect(DateHelpers.YearDate.equals({ day: 434, month: 434 }, { day: 434, month: 434 })).toBeTruthy();
743
- });
744
-
745
- test('YearDate.fromDate', () => {
746
-
747
- expect(DateHelpers.YearDate.fromDate(new Date('2021-01-30T12:00:00.000Z'))).toStrictEqual({ day: 30, month: 0 });
748
- expect(DateHelpers.YearDate.fromDate(new Date('2022-12-09T00:00:00.000Z'))).toStrictEqual({ day: 9, month: 11 });
749
- expect(DateHelpers.YearDate.fromDate(new Date('2021-01-01T12:00:00.000Z'))).toStrictEqual({ day: 1, month: 0 });
750
- expect(DateHelpers.YearDate.fromDate(new Date('2021-12-31T12:00:00.000Z'))).toStrictEqual({ day: 31, month: 11 });
751
- expect(DateHelpers.YearDate.fromDate(new Date('2021-14-31T12:00:00.000Z'))).toStrictEqual({ day: NaN, month: NaN });
752
- });
753
-
754
- test('YearDate.matches', () => {
755
-
756
- expect(DateHelpers.YearDate.matches({ month: 11, day: 12 }, new Date('2020-12-12T12:00:00.000Z'), false)).toBeTruthy();
757
- expect(DateHelpers.YearDate.matches({ month: 11, day: 12 }, new Date('2020-12-12T12:00:00.000Z'), true)).toBeTruthy();
758
- expect(DateHelpers.YearDate.matches({ month: 10, day: 22 }, new Date('2020-11-22T12:00:00.000Z'), true)).toBeTruthy();
759
- expect(DateHelpers.YearDate.matches({ month: 12, day: 12 }, new Date('2020-12-12T12:00:00.000Z'), false)).toBeFalsy();
760
- expect(DateHelpers.YearDate.matches({ month: 10, day: 22 }, new Date('2020-10-22T12:00:00.000Z'), true)).toBeFalsy();
761
- expect(DateHelpers.YearDate.matches(undefined, new Date('2020-10-22T12:00:00.000Z'), true)).toBeFalsy();
762
- expect(DateHelpers.YearDate.matches(undefined, new Date('2020-10-22T12:00:00.000Z'), false)).toBeFalsy();
763
- expect(DateHelpers.YearDate.matches({ month: null, day: null }, new Date('2020-12-12T12:00:00.000Z'), true)).toBeFalsy();
764
- expect(DateHelpers.YearDate.matches({ month: null, day: null }, new Date('2020-12-12T12:00:00.000Z'))).toBeFalsy();
765
- expect(DateHelpers.YearDate.matches({ month: undefined, day: undefined }, new Date('2020-12-12T12:00:00.000Z'), true)).toBeFalsy();
766
- expect(DateHelpers.YearDate.matches({ month: undefined, day: undefined }, new Date('2020-12-12T12:00:00.000Z'))).toBeFalsy();
767
- expect(() => DateHelpers.YearDate.matches({ month: null, day: null }, undefined)).toThrow();
768
- expect(() => DateHelpers.YearDate.matches({ month: null, day: null }, undefined, true)).toThrow();
769
- expect(() => DateHelpers.YearDate.matches(undefined, undefined)).toThrow();
770
- });
771
-
772
- test('getTime', () => {
773
-
774
- expect(DateHelpers.getTime(new Date('2020-11-29T13:26:15.893Z'))).toBe(1606656375893);
775
- expect(DateHelpers.getTime(new Date('2020-09-19T00:00:00.893Z'))).toBe(1600473600893);
776
- expect(DateHelpers.getTime(new Date('2020-06-09T23:59:59.893Z'))).toBe(1591747199893);
777
- });
778
-
779
- test('getDate', () => {
780
-
781
- expect(DateHelpers.getDate(new Date('2020-11-29T13:26:15.893Z'))).toStrictEqual(new Date('2020-11-29T13:26:15.893Z'));
782
- expect(DateHelpers.getDate(1600473600893)).toStrictEqual(new Date('2020-09-19T00:00:00.893Z'));
783
- expect(DateHelpers.getDate(undefined)).toBeNull();
784
- });
785
-
786
- test('contains', () => {
787
-
788
- expect(DateHelpers.contains(
789
- new Date('2020-01-01T00:00:00.000Z'),
790
- new Date('2020-12-31T23:59:59.000Z'),
791
- new Date('2020-07-29T13:26:15.893Z'),
792
- 'year',
793
- )).toBeTruthy();
794
-
795
- expect(DateHelpers.contains(
796
- new Date('2020-01-01T00:00:00.000Z'),
797
- new Date('2020-12-31T23:59:59.000Z'),
798
- new Date('2021-07-29T13:26:15.893Z'),
799
- 'year',
800
- )).toBeFalsy();
801
-
802
- expect(DateHelpers.contains(
803
- new Date('2020-01-01T00:00:00.000Z'),
804
- new Date('2020-02-31T23:59:59.000Z'),
805
- new Date('2020-02-29T13:26:15.893Z'),
806
- 'month',
807
- )).toBeTruthy();
808
-
809
- expect(DateHelpers.contains(
810
- new Date('2020-01-01T00:00:00.000Z'),
811
- new Date('2020-02-20T23:59:59.000Z'),
812
- new Date('2020-03-29T13:26:15.893Z'),
813
- 'month',
814
- )).toBeFalsy();
815
-
816
- expect(DateHelpers.contains(
817
- new Date('2020-01-01T00:00:00.000Z'),
818
- new Date('2020-01-28T23:59:59.000Z'),
819
- new Date('2020-01-04T13:26:15.000Z'),
820
- 'week',
821
- )).toBeTruthy();
822
-
823
- expect(DateHelpers.contains(
824
- new Date('2020-01-01T00:00:00.000Z'),
825
- new Date('2020-01-20T23:59:59.000Z'),
826
- new Date('2020-01-29T13:26:15.893Z'),
827
- 'week',
828
- )).toBeFalsy();
829
-
830
- expect(DateHelpers.contains(
831
- new Date('2020-01-01T00:00:00.000Z'),
832
- new Date('2020-01-20T23:59:59.000Z'),
833
- new Date('2020-01-17T13:26:15.893Z'),
834
- 'day',
835
- )).toBeTruthy();
836
-
837
- expect(DateHelpers.contains(
838
- new Date('2020-01-01T00:00:00.000Z'),
839
- new Date('2020-01-20T23:59:59.000Z'),
840
- new Date('2020-01-21T13:26:15.893Z'),
841
- 'day',
842
- )).toBeFalsy();
843
-
844
- expect(DateHelpers.contains(
845
- new Date('2020-01-20T00:00:00.000Z'),
846
- new Date('2020-01-20T23:59:59.000Z'),
847
- new Date('2020-01-20T13:26:15.893Z'),
848
- 'hour',
849
- )).toBeTruthy();
850
-
851
- expect(DateHelpers.contains(
852
- new Date('2020-01-20T00:00:00.000Z'),
853
- new Date('2020-01-20T21:00:00.000Z'),
854
- new Date('2020-01-20T23:26:15.893Z'),
855
- 'hour',
856
- )).toBeFalsy();
857
-
858
- expect(DateHelpers.contains(
859
- new Date('2020-01-20T23:00:00.000Z'),
860
- new Date('2020-01-20T23:30:00.000Z'),
861
- new Date('2020-01-20T23:26:15.893Z'),
862
- 'minute',
863
- )).toBeTruthy();
864
-
865
- expect(DateHelpers.contains(
866
- new Date('2020-01-20T23:00:00.000Z'),
867
- new Date('2020-01-20T23:30:00.000Z'),
868
- new Date('2020-01-20T23:36:15.893Z'),
869
- 'minute',
870
- )).toBeFalsy();
871
-
872
- expect(DateHelpers.contains(
873
- new Date('2020-01-20T23:30:00.000Z'),
874
- new Date('2020-01-20T23:30:30.000Z'),
875
- new Date('2020-01-20T23:30:15.893Z'),
876
- 'second',
877
- )).toBeTruthy();
878
-
879
- expect(DateHelpers.contains(
880
- new Date('2020-01-20T23:30:00.000Z'),
881
- new Date('2020-01-20T23:30:30.000Z'),
882
- new Date('2020-01-20T23:30:35.893Z'),
883
- 'second',
884
- )).toBeFalsy();
885
-
886
- expect(DateHelpers.contains(
887
- new Date('2020-01-20T23:30:00.000Z'),
888
- new Date('2020-01-20T23:30:00.999Z'),
889
- new Date('2020-01-20T23:30:00.893Z'),
890
- 'millisecond',
891
- )).toBeTruthy();
892
-
893
- expect(DateHelpers.contains(
894
- new Date('2020-01-20T23:30:00.000Z'),
895
- new Date('2020-01-20T23:30:00.500Z'),
896
- new Date('2020-01-20T23:30:00.893Z'),
897
- 'millisecond',
898
- )).toBeFalsy();
899
-
900
- expect(DateHelpers.contains(
901
- new Date('2020-01-20T23:30:00.000Z'),
902
- new Date('2020-01-20T23:30:00.500Z'),
903
- new Date('2020-01-20T23:30:00.893Z'),
904
- )).toBeTruthy();
905
- });
906
-
907
- test('Format.yearDate', () => {
908
-
909
- expect(DateHelpers.Format.yearDate({ month: 9, day: 1 })).toBe('October 1');
910
- expect(DateHelpers.Format.yearDate({ month: 9, day: 1 }, true)).toBe('Oct 1');
911
-
912
- expect(DateHelpers.Format.yearDate({ month: 7, day: 31 })).toBe('August 31');
913
- expect(DateHelpers.Format.yearDate({ month: 7, day: 31 }, true)).toBe('Aug 31');
914
-
915
- expect(DateHelpers.Format.yearDate({ month: 3, day: 24 })).toBe('April 24');
916
- expect(DateHelpers.Format.yearDate({ month: 3, day: 24 }, true)).toBe('Apr 24');
917
-
918
- expect(DateHelpers.Format.yearDate({ month: 9, day: null })).toBe('October 1');
919
- expect(DateHelpers.Format.yearDate({ month: 9, day: null }, true)).toBe('Oct 1');
920
-
921
- expect(DateHelpers.Format.yearDate({ month: null, day: 1 })).toBe('January 1');
922
- expect(DateHelpers.Format.yearDate({ month: null, day: 1 }, true)).toBe('Jan 1');
923
-
924
- expect(DateHelpers.Format.yearDate({ month: null, day: null })).toBe('January 1');
925
- expect(DateHelpers.Format.yearDate({ month: null, day: null }, true)).toBe('Jan 1');
926
-
927
- expect(DateHelpers.Format.yearDate(undefined)).toBe('January 1');
928
- expect(DateHelpers.Format.yearDate(undefined, true)).toBe('Jan 1');
929
- });
930
-
931
- test('Format.toLocalDate', () => {
932
-
933
- expect(DateHelpers.Format.toLocalDate(new Date('2020-07-29T13:26:15.893Z'))).toBe('7/29/2020');
934
- expect(DateHelpers.Format.toLocalDate(1608729767257)).toBe('12/23/2020');
935
- expect(DateHelpers.Format.toLocalDate(undefined)).toBeNull();
936
- });
937
-
938
- test('Parse.fromDatePicker', () => {
939
-
940
- expect(DateHelpers.Parse.fromDatePicker('2020-07-29T13:26:15.893Z')).toStrictEqual(new Date('2020-07-29T13:26:15.893Z'));
941
- expect(DateHelpers.Parse.fromDatePicker('2020-07-29T13:26:15.893Z', true)).toStrictEqual(new Date('2020-07-29T13:26:15.893Z'));
942
- });
943
-
944
- test('Parse.toDistance', () => {
945
-
946
- expect(() => DateHelpers.Format.toDistance(undefined, new Date('2020-07-29T10:27:15.893Z'))).toThrow();
947
- expect(DateHelpers.Format.toDistance(new Date('2020-07-29T10:26:15.893Z'), undefined)).toMatch(/weeks ago/);
948
-
949
- expect(DateHelpers.Format.toDistance(new Date('2020-07-29T10:26:15.893Z'), new Date('2020-07-29T10:27:15.893Z'))).toBe('Today');
950
-
951
- expect(DateHelpers.Format.toDistance(new Date('2020-07-29T10:26:15.893Z'), new Date('2020-06-29T10:26:15.893Z'))).toBe('In 4 weeks');
952
- expect(DateHelpers.Format.toDistance(new Date('2020-07-29T10:26:15.893Z'), new Date('2020-07-28T10:26:15.893Z'))).toBe('Tomorrow');
953
- expect(DateHelpers.Format.toDistance(new Date('2020-08-01T10:26:15.893Z'), new Date('2020-07-28T10:26:15.893Z'))).toBe('In 4 days');
954
- expect(DateHelpers.Format.toDistance(new Date('2020-08-04T10:26:15.893Z'), new Date('2020-07-28T10:26:15.893Z'))).toBe('In a week');
955
-
956
- expect(DateHelpers.Format.toDistance(new Date('2020-06-29T10:26:15.893Z'), new Date('2020-07-29T10:26:15.893Z'))).toBe('4 weeks ago');
957
- expect(DateHelpers.Format.toDistance(new Date('2020-07-29T10:26:15.893Z'), new Date('2020-07-30T10:26:15.893Z'))).toBe('Yesterday');
958
- expect(DateHelpers.Format.toDistance(new Date('2020-07-29T10:26:15.893Z'), new Date('2020-08-01T10:26:15.893Z'))).toBe('3 days ago');
959
- expect(DateHelpers.Format.toDistance(new Date('2020-07-29T10:26:15.893Z'), new Date('2020-08-05T10:26:15.893Z'))).toBe('Week ago');
960
- });
961
-
962
- test('clamp', () => {
963
-
964
- expect(DateHelpers.clamp(
965
- new Date('2020-05-29T10:26:15.893Z'),
966
- new Date('2020-07-29T09:54:43.555Z'),
967
- new Date('2020-08-03T18:10:53.101Z')))
968
- .toStrictEqual(new Date('2020-07-29T09:54:43.555Z'));
969
-
970
- expect(DateHelpers.clamp(
971
- new Date('2020-07-29T10:26:15.893Z'),
972
- new Date('2020-07-29T09:54:43.555Z'),
973
- new Date('2020-07-03T18:10:53.101Z')))
974
- .toStrictEqual(new Date('2020-07-03T18:10:53.101Z'));
975
-
976
- expect(DateHelpers.clamp(
977
- new Date('2020-07-29T10:26:15.893Z'),
978
- new Date('2020-07-29T10:26:15.893Z'),
979
- new Date('2020-07-29T10:26:15.893Z')))
980
- .toStrictEqual(new Date('2020-07-29T10:26:15.893Z'));
981
- });
982
-
983
- test('timespan', () => {
984
-
985
- expect(DateHelpers.Format.timespan(10012030)).toBe('2h 46m 52s');
986
- expect(DateHelpers.Format.timespan(100129)).toBe('1m 40s');
987
- expect(DateHelpers.Format.timespan(10129)).toBe('10s');
988
-
989
- expect(DateHelpers.Format.timespan(10912939, true)).toBe('3h 1m 53s');
990
- expect(DateHelpers.Format.timespan(100129, true)).toBe('1m 40s');
991
- expect(DateHelpers.Format.timespan(10129, true)).toBe('10s');
992
- });
993
-
994
- test('decompose', () => {
995
-
996
- expect(DateHelpers.decompose(
997
- new Date('2020-05-29T10:26:15.893Z'),
998
- true,
999
- ...['day', 'hour', 'minute', 'second'] as Granularity[]
1000
- )).toStrictEqual({ day: 18411, hour: 10, minute: 26, second: 16 });
1001
-
1002
- expect(DateHelpers.decompose(
1003
- new Date('2020-05-29T10:26:15.893Z'),
1004
- false,
1005
- ...['day', 'hour', 'minute', 'second'] as Granularity[]
1006
- )).toStrictEqual({ day: 18411, hour: 10, minute: 26, second: 16 });
1007
-
1008
- expect(DateHelpers.decompose(
1009
- new Date('2020-08-01T10:26:15.893Z'),
1010
- false,
1011
- ...['hour', 'minute', 'second'] as Granularity[]
1012
- )).toStrictEqual({ hour: 443410, minute: 26, second: 16 });
1013
-
1014
- expect(DateHelpers.decompose(
1015
- new Date('2020-01-01T00:00:00.000Z'),
1016
- false,
1017
- ...['day', 'hour', 'minute', 'second'] as Granularity[]
1018
- )).toStrictEqual({ day: 18262, hour: 0, minute: 0, second: 0 });
1019
-
1020
- expect(DateHelpers.decompose(
1021
- new Date('2020-12-31T23:59:59.999Z'),
1022
- false,
1023
- ...['day', 'hour', 'minute', 'second'] as Granularity[]
1024
- )).toStrictEqual({ day: 18628, hour: 0, minute: 0, second: 0 });
1025
-
1026
- expect(DateHelpers.decompose(
1027
- new Date('2020-12-31T23:59:59.000Z'),
1028
- false,
1029
- ...['day', 'hour', 'minute', 'second'] as Granularity[]
1030
- )).toStrictEqual({ day: 18627, hour: 23, minute: 59, second: 59 });
1031
- });
1032
-
1033
- test('decomposeMs', () => {
1034
-
1035
- expect(DateHelpers.decomposeMs(
1036
- new Date('2020-12-31T23:59:59.000Z').getTime(),
1037
- ...['hour', 'minute', 'second'] as Granularity[]
1038
- )).toStrictEqual({ hour: 447071, minute: 59, second: 59 });
1039
-
1040
- expect(DateHelpers.decomposeMs(
1041
- new Date('2020-12-31T00:00:00.000Z').getTime(),
1042
- ...['day', 'hour', 'minute', 'second'] as Granularity[]
1043
- )).toStrictEqual({ day: 18627, hour: 0, minute: 0, second: 0 });
1044
-
1045
- expect(DateHelpers.decomposeMs(
1046
- new Date('2020-12-31T23:32:12.000Z').getTime(),
1047
- ...['second'] as Granularity[]
1048
- )).toStrictEqual({ second: 1609457532 });
1049
-
1050
- expect(DateHelpers.decomposeMs(
1051
- new Date('2020-12-31T23:32:12.000Z').getTime(),
1052
- 'hour' as Granularity
1053
- )).toStrictEqual({ hour: 447071 });
1054
- });
1055
-
1056
- test('decomposeDate', () => {
1057
-
1058
- expect(DateHelpers.decomposeDate(
1059
- new Date('2020-01-01T00:00:00.000Z'),
1060
- false,
1061
- ...['month', 'day', 'hour', 'minute', 'second'] as Granularity[]
1062
- )).toStrictEqual({ month: 1, day: 1, hour: 0, minute: 0, second: 0 });
1063
-
1064
- expect(DateHelpers.decomposeDate(
1065
- new Date('2020-12-31T23:59:59.000Z'),
1066
- false,
1067
- ...['week', 'day', 'hour', 'minute', 'second'] as Granularity[]
1068
- )).toStrictEqual({ day: 31, hour: 23, minute: 59, second: 59 });
1069
-
1070
- expect(DateHelpers.decomposeDate(
1071
- new Date('2020-08-04T10:26:15.893Z'),
1072
- false,
1073
- ...['hour', 'minute', 'second'] as Granularity[]
1074
- )).toStrictEqual({ hour: 10, minute: 26, second: 15 });
1075
- });
1076
-
1077
- test('Format.Presets.use', () => {
1078
-
1079
- expect(DateHelpers.Format.Presets.use(
1080
- DateHelpers.Format.Presets.FullDay_ShortDate,
1081
- new Date('2020-08-04T10:26:15.893Z')
1082
- )).toBe('Tuesday 04.08.2020');
1083
-
1084
- expect(DateHelpers.Format.Presets.use(
1085
- DateHelpers.Format.Presets.ShortDate_FullTime,
1086
- new Date('2019-09-11T10:26:15.893Z')
1087
- )).toBe('11.09.2019 10.26.15');
1088
-
1089
- expect(DateHelpers.Format.Presets.use(
1090
- DateHelpers.Format.Presets.FullDay_ShortDate,
1091
- new Date('2020-12-20T01:31:59.893Z'),
1092
- false
1093
- )).toBe('Sunday 20.12.2020');
1094
-
1095
- expect(DateHelpers.Format.Presets.use(
1096
- DateHelpers.Format.Presets.ShortDate_FullTime,
1097
- new Date('2020-08-12T10:26:15.893Z'),
1098
- false
1099
- )).toBe('12.08.2020 10.26.15');
1100
-
1101
- expect(DateHelpers.Format.Presets.use(
1102
- undefined,
1103
- new Date('2020-08-12T10:26:15.893Z')
1104
- )).toBeUndefined();
1105
- });
1106
-
1107
- test('addDays', () => {
1108
- const baseDate = new Date('2020-08-12T10:26:15.893Z');
1109
- expect(DateHelpers.addDays(baseDate, 12, e => e === e)).toStrictEqual(new Date('2020-08-24T10:26:15.893Z'));
1110
- expect(DateHelpers.addDays(baseDate, 12, e => e === e, 3)).toStrictEqual(new Date('2020-08-15T10:26:15.893Z'));
1111
- expect(DateHelpers.addDays(baseDate, 16, e => e === e, 37)).toStrictEqual(new Date('2020-08-28T10:26:15.893Z'));
1112
- expect(DateHelpers.addDays(baseDate, 16, e => e === new Date('2030-08-12T10:26:15.893Z'), 37)).toStrictEqual(new Date('2020-09-18T10:26:15.893Z'));
1113
- });
1114
-
1115
- test('splitDatesByDay', () => {
1116
-
1117
- expect(DateHelpers.splitDatesByDay(
1118
- [1608739206000, 1608732006000, 1608764406000, 1606950006000, 1606952706000, 1608767999000, 1608681600000]
1119
- )).toStrictEqual([[1606950006000, 1606950006000], [1608681600000, 1608681600000, 1608681600000, 1608681600000, 1608681600000]]);
1120
-
1121
- expect(DateHelpers.splitDatesByDay(
1122
- [1608681600000, 1608685200000, 1608688800000, 1608692400000, 1608696000000, 1608699600000, 1608681600000, 1608728159000]
1123
- )).toStrictEqual([[1608681600000, 1608681600000, 1608681600000, 1608681600000, 1608681600000, 1608681600000, 1608681600000, 1608681600000]]);
1124
-
1125
- expect(DateHelpers.splitDatesByDay(undefined)).toStrictEqual([]);
1126
- });
1127
-
1128
- test('getDaysStreak', () => {
1129
-
1130
- const getDayWithOffset = (offset: number) => new Date().setDate(new Date().getDate() + offset);
1131
-
1132
- expect(DateHelpers.getDaysStreak(
1133
- [getDayWithOffset(0), getDayWithOffset(1), getDayWithOffset(2), getDayWithOffset(3), getDayWithOffset(4), getDayWithOffset(5)],
1134
- false
1135
- )).toBe(6);
1136
-
1137
- expect(DateHelpers.getDaysStreak(
1138
- [getDayWithOffset(0), getDayWithOffset(-1), getDayWithOffset(-2), getDayWithOffset(-3), getDayWithOffset(-4), getDayWithOffset(-5)],
1139
- true
1140
- )).toBe(6);
1141
-
1142
- expect(DateHelpers.getDaysStreak(
1143
- [getDayWithOffset(1), getDayWithOffset(2), getDayWithOffset(5), getDayWithOffset(6), getDayWithOffset(7)],
1144
- false
1145
- )).toBe(2);
1146
-
1147
- expect(DateHelpers.getDaysStreak(
1148
- [getDayWithOffset(3), getDayWithOffset(4), getDayWithOffset(5), getDayWithOffset(6), getDayWithOffset(7)],
1149
- false
1150
- )).toBe(0);
1151
-
1152
- expect(DateHelpers.getDaysStreak(
1153
- [],
1154
- false
1155
- )).toBe(0);
1156
- });
1157
-
1158
- test('DateX.get', () => {
1159
- const baseDate = () => new Date('2020-08-12T10:26:15.893Z');
1160
- expect(DateHelpers.DateX.get(baseDate(), 'millisecond', false)).toBe(893);
1161
- expect(DateHelpers.DateX.get(baseDate(), 'second', false)).toBe(15);
1162
- expect(DateHelpers.DateX.get(baseDate(), 'minute', false)).toBe(26);
1163
- expect(DateHelpers.DateX.get(baseDate(), 'hour', false)).toBe(10);
1164
- expect(DateHelpers.DateX.get(baseDate(), 'day', false)).toBe(12);
1165
- expect(DateHelpers.DateX.get(baseDate(), 'month', false)).toBe(7);
1166
- expect(DateHelpers.DateX.get(baseDate(), 'year', false)).toBe(2020);
1167
-
1168
- expect(() => DateHelpers.DateX.get(baseDate(), 'week', false)).toThrow('Not supported');
1169
-
1170
- expect(DateHelpers.DateX.get(baseDate(), 'millisecond', true)).toBe(893);
1171
- expect(DateHelpers.DateX.get(baseDate(), 'second', true)).toBe(15);
1172
- expect(DateHelpers.DateX.get(baseDate(), 'minute', true)).toBe(26);
1173
- expect(DateHelpers.DateX.get(baseDate(), 'hour', true)).toBe(10);
1174
- expect(DateHelpers.DateX.get(baseDate(), 'day', true)).toBe(12);
1175
- expect(DateHelpers.DateX.get(baseDate(), 'month', true)).toBe(7);
1176
- expect(DateHelpers.DateX.get(baseDate(), 'year', true)).toBe(2020);
1177
-
1178
- expect(() => DateHelpers.DateX.get(baseDate(), 'week', true)).toThrow('Not supported');
1179
-
1180
- expect(() => DateHelpers.DateX.get(undefined, 'day', false)).toThrow();
1181
- expect(DateHelpers.DateX.get(baseDate(), undefined, false)).toBe(1597227975893);
1182
- expect(DateHelpers.DateX.get(baseDate(), 'day', undefined)).toBe(12);
1183
- });
1184
-
1185
- test('DateX.set', () => {
1186
- const baseDate = () => new Date('2020-08-12T10:26:15.893Z');
1187
- expect(DateHelpers.DateX.set(baseDate(), 'year', true, 2018)).toBe(1534069575893);
1188
- expect(DateHelpers.DateX.set(baseDate(), 'year', false, 2018)).toBe(1534069575893);
1189
- expect(DateHelpers.DateX.set(baseDate(), 'year', false, 2018, 11)).toBe(1544610375893);
1190
- expect(DateHelpers.DateX.set(baseDate(), 'year', false, 2018, 11, 1)).toBe(1543659975893);
1191
-
1192
- expect(() => DateHelpers.DateX.set(undefined, 'year', false, 2018)).toThrow();
1193
- expect(DateHelpers.DateX.set(baseDate(), undefined, false, 2018)).toBe(1597227975893);
1194
- expect(DateHelpers.DateX.set(baseDate(), 'year', undefined, 2018)).toBe(1534069575893);
1195
- expect(DateHelpers.DateX.set(baseDate(), 'year', false, undefined)).toBeNaN();
1196
- expect(DateHelpers.DateX.set(baseDate(), 'year', false, 2018, undefined)).toBeNaN();
1197
- expect(DateHelpers.DateX.set(baseDate(), 'year', false, 2018, 11, undefined)).toBeNaN();
1198
-
1199
- expect(DateHelpers.DateX.set(baseDate(), 'month', false, 3)).toBe(1586687175893);
1200
- expect(DateHelpers.DateX.set(baseDate(), 'month', false, 3, 0)).toBe(1585650375893);
1201
-
1202
- expect(() => DateHelpers.DateX.set(undefined, 'month', false, 3)).toThrow();
1203
- expect(DateHelpers.DateX.set(baseDate(), undefined, false, 3)).toBe(1597227975893);
1204
- expect(DateHelpers.DateX.set(baseDate(), 'month', undefined, 3)).toBe(1586687175893);
1205
- expect(DateHelpers.DateX.set(baseDate(), 'month', false, undefined)).toBeNaN();
1206
-
1207
- expect(() => DateHelpers.DateX.set(baseDate(), 'week' as 'year', false, 2018)).toThrow('Not supported');
1208
-
1209
- expect(DateHelpers.DateX.set(baseDate(), 'day', false, 1)).toBe(1596277575893);
1210
-
1211
- expect(() => DateHelpers.DateX.set(undefined, 'day', false, 1)).toThrow();
1212
- expect(DateHelpers.DateX.set(baseDate(), undefined, false, 1)).toBe(1597227975893);
1213
- expect(DateHelpers.DateX.set(baseDate(), 'day', undefined, 1)).toBe(1596277575893);
1214
- expect(DateHelpers.DateX.set(baseDate(), 'day', false, undefined)).toBeNaN();
1215
-
1216
- expect(DateHelpers.DateX.set(baseDate(), 'hour', false, 12)).toBe(1597235175893);
1217
- expect(DateHelpers.DateX.set(baseDate(), 'hour', false, 12, 30)).toBe(1597235415893);
1218
- expect(DateHelpers.DateX.set(baseDate(), 'hour', false, 12, 30, 30)).toBe(1597235430893);
1219
- expect(DateHelpers.DateX.set(baseDate(), 'hour', false, 12, 30, 30, 555)).toBe(1597235430555);
1220
-
1221
- expect(() => DateHelpers.DateX.set(undefined, 'hour', false, 12)).toThrow();
1222
- expect(DateHelpers.DateX.set(baseDate(), undefined, false, 12)).toBe(1597227975893);
1223
- expect(DateHelpers.DateX.set(baseDate(), 'hour', undefined, 12)).toBe(1597235175893);
1224
- expect(DateHelpers.DateX.set(baseDate(), 'hour', false, undefined)).toBeNaN();
1225
- expect(DateHelpers.DateX.set(baseDate(), 'hour', false, 12, undefined)).toBeNaN();
1226
- expect(DateHelpers.DateX.set(baseDate(), 'hour', false, 12, 30, undefined)).toBeNaN();
1227
- expect(DateHelpers.DateX.set(baseDate(), 'hour', false, 12, 30, 30, undefined)).toBeNaN();
1228
-
1229
- expect(DateHelpers.DateX.set(baseDate(), 'minute', true, 30)).toBe(1597228215893);
1230
- expect(DateHelpers.DateX.set(baseDate(), 'minute', false, 30)).toBe(1597228215893);
1231
- expect(DateHelpers.DateX.set(baseDate(), 'minute', false, 30, 30)).toBe(1597228230893);
1232
- expect(DateHelpers.DateX.set(baseDate(), 'minute', false, 30, 30, 555)).toBe(1597228230555);
1233
-
1234
- expect(() => DateHelpers.DateX.set(undefined, 'minute', false, 30)).toThrow();
1235
- expect(DateHelpers.DateX.set(baseDate(), undefined, false, 30)).toBe(1597227975893);
1236
- expect(DateHelpers.DateX.set(baseDate(), 'minute', undefined, 30)).toBe(1597228215893);
1237
- expect(DateHelpers.DateX.set(baseDate(), 'minute', false, undefined)).toBeNaN();
1238
- expect(DateHelpers.DateX.set(baseDate(), 'minute', false, 30, undefined)).toBeNaN();
1239
- expect(DateHelpers.DateX.set(baseDate(), 'minute', false, 30, 30, undefined)).toBeNaN();
1240
-
1241
- expect(DateHelpers.DateX.set(baseDate(), 'second', true, 30)).toBe(1597227990893);
1242
- expect(DateHelpers.DateX.set(baseDate(), 'second', false, 30)).toBe(1597227990893);
1243
- expect(DateHelpers.DateX.set(baseDate(), 'second', false, 30, 555)).toBe(1597227990555);
1244
-
1245
- expect(() => DateHelpers.DateX.set(undefined, 'second', false, 30)).toThrow();
1246
- expect(DateHelpers.DateX.set(baseDate(), undefined, false, 30)).toBe(1597227975893);
1247
- expect(DateHelpers.DateX.set(baseDate(), 'second', undefined, 30)).toBe(1597227990893);
1248
- expect(DateHelpers.DateX.set(baseDate(), 'second', false, undefined)).toBeNaN();
1249
- expect(DateHelpers.DateX.set(baseDate(), 'second', false, 30, undefined)).toBeNaN();
1250
-
1251
- expect(DateHelpers.DateX.set(baseDate(), 'millisecond', false, 300)).toBe(1597227975300);
1252
- expect(DateHelpers.DateX.set(baseDate(), 'millisecond', true, 300)).toBe(1597227975300);
1253
-
1254
- expect(() => DateHelpers.DateX.set(undefined, 'millisecond', false, 30)).toThrow();
1255
- expect(DateHelpers.DateX.set(baseDate(), undefined, false, 300)).toBe(1597227975893);
1256
- expect(DateHelpers.DateX.set(baseDate(), 'millisecond', undefined, 300)).toBe(1597227975300);
1257
- expect(DateHelpers.DateX.set(baseDate(), 'millisecond', false, undefined)).toBeNaN();
1258
- });
1259
-
1260
- test('ensureDates', () => {
1261
-
1262
- type TestEnsureDates = {
1263
- date: Date;
1264
- start: Date;
1265
- end: Date;
1266
- };
1267
-
1268
- const testEnsureDatesNullValues: TestEnsureDates = {
1269
- date: null,
1270
- start: null,
1271
- end: null,
1272
- };
1273
-
1274
- const testEnsureDatesValidDates: TestEnsureDates = {
1275
- date: new Date('2020-08-12T10:26:15.000Z'),
1276
- start: new Date('2020-05-09T11:02:55.000Z'),
1277
- end: new Date('2020-11-23T12:34:56.000Z'),
1278
- };
1279
-
1280
- const testEnsureDatesStringDates: TestEnsureDates = {
1281
- date: '2020-08-12T10:26:15.000Z' as null,
1282
- start: '2020-05-09T11:02:55.000Z' as null,
1283
- end: '2020-11-23T12:34:56.000Z' as null,
1284
- };
1285
-
1286
- const testEnsureDatesUnixDates: TestEnsureDates = {
1287
- date: 1597227975000 as null,
1288
- start: 1589022175000 as null,
1289
- end: 1606134896000 as null,
1290
- };
1291
-
1292
- const baseExpectedResult = {
1293
- date: new Date('2020-08-12T10:26:15.000Z'),
1294
- end: new Date('2020-11-23T12:34:56.000Z'),
1295
- start: new Date('2020-05-09T11:02:55.000Z'),
1296
- };
1297
-
1298
- DateHelpers.ensureDates(testEnsureDatesNullValues, 'start', 'end', 'date');
1299
- expect(testEnsureDatesNullValues).toStrictEqual({ date: null, end: null, start: null });
1300
-
1301
- DateHelpers.ensureDates(testEnsureDatesValidDates, 'start', 'end', 'date');
1302
- expect(testEnsureDatesValidDates).toStrictEqual(baseExpectedResult);
1303
-
1304
- DateHelpers.ensureDates(testEnsureDatesStringDates, 'start', 'end', 'date');
1305
- expect(testEnsureDatesStringDates).toStrictEqual(baseExpectedResult);
1306
-
1307
- DateHelpers.ensureDates(testEnsureDatesUnixDates, 'start', 'end', 'date');
1308
- expect(testEnsureDatesUnixDates).toStrictEqual(baseExpectedResult);
1309
-
1310
- const empty = undefined;
1311
- DateHelpers.ensureDates(undefined, 'start', 'end', 'date');
1312
- expect(empty).toBeUndefined();
1313
- });
1314
- });