javascript-time-ago 2.5.11 → 2.5.12

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 (433) hide show
  1. package/bundle/javascript-time-ago.js +1 -1
  2. package/bundle/javascript-time-ago.js.map +1 -1
  3. package/bundle/javascript-time-ago.min.js +1 -1
  4. package/bundle/javascript-time-ago.min.js.map +1 -1
  5. package/commonjs/LocaleDataStore.js +2 -5
  6. package/commonjs/LocaleDataStore.js.map +1 -1
  7. package/commonjs/PropTypes.js +12 -12
  8. package/commonjs/PropTypes.js.map +1 -1
  9. package/commonjs/TimeAgo.js +135 -190
  10. package/commonjs/TimeAgo.js.map +1 -1
  11. package/commonjs/TimeAgo.test.js +124 -130
  12. package/commonjs/TimeAgo.test.js.map +1 -1
  13. package/commonjs/cache.js +7 -25
  14. package/commonjs/cache.js.map +1 -1
  15. package/commonjs/cache.test.js +1 -3
  16. package/commonjs/cache.test.js.map +1 -1
  17. package/commonjs/isStyleObject.js +9 -9
  18. package/commonjs/isStyleObject.js.map +1 -1
  19. package/commonjs/isStyleObject.test.js +1 -3
  20. package/commonjs/isStyleObject.test.js.map +1 -1
  21. package/commonjs/locale.js +6 -19
  22. package/commonjs/locale.js.map +1 -1
  23. package/commonjs/locale.test.js +2 -11
  24. package/commonjs/locale.test.js.map +1 -1
  25. package/commonjs/round.js +2 -5
  26. package/commonjs/round.js.map +1 -1
  27. package/commonjs/steps/approximate.js +1 -4
  28. package/commonjs/steps/approximate.js.map +1 -1
  29. package/commonjs/steps/approximate.test.js +1 -6
  30. package/commonjs/steps/approximate.test.js.map +1 -1
  31. package/commonjs/steps/getStep.js +36 -53
  32. package/commonjs/steps/getStep.js.map +1 -1
  33. package/commonjs/steps/getStep.test.js +7 -7
  34. package/commonjs/steps/getStep.test.js.map +1 -1
  35. package/commonjs/steps/getStepDenominator.js +2 -5
  36. package/commonjs/steps/getStepDenominator.js.map +1 -1
  37. package/commonjs/steps/getStepDenominator.test.js +1 -3
  38. package/commonjs/steps/getStepDenominator.test.js.map +1 -1
  39. package/commonjs/steps/getStepMinTime.js +17 -32
  40. package/commonjs/steps/getStepMinTime.js.map +1 -1
  41. package/commonjs/steps/getStepMinTime.test.js +1 -3
  42. package/commonjs/steps/getStepMinTime.test.js.map +1 -1
  43. package/commonjs/steps/getTimeToNextUpdate.js +19 -41
  44. package/commonjs/steps/getTimeToNextUpdate.js.map +1 -1
  45. package/commonjs/steps/getTimeToNextUpdate.test.js +29 -25
  46. package/commonjs/steps/getTimeToNextUpdate.test.js.map +1 -1
  47. package/commonjs/steps/getTimeToNextUpdateForUnit.js +3 -12
  48. package/commonjs/steps/getTimeToNextUpdateForUnit.js.map +1 -1
  49. package/commonjs/steps/getTimeToNextUpdateForUnit.test.js +1 -7
  50. package/commonjs/steps/getTimeToNextUpdateForUnit.test.js.map +1 -1
  51. package/commonjs/steps/helpers.js +1 -2
  52. package/commonjs/steps/helpers.js.map +1 -1
  53. package/commonjs/steps/helpers.test.js +0 -1
  54. package/commonjs/steps/helpers.test.js.map +1 -1
  55. package/commonjs/steps/index.js +1 -6
  56. package/commonjs/steps/index.js.map +1 -1
  57. package/commonjs/steps/renameLegacyProperties.js +6 -14
  58. package/commonjs/steps/renameLegacyProperties.js.map +1 -1
  59. package/commonjs/steps/renameLegacyProperties.test.js +1 -3
  60. package/commonjs/steps/renameLegacyProperties.test.js.map +1 -1
  61. package/commonjs/steps/round.js +1 -2
  62. package/commonjs/steps/round.js.map +1 -1
  63. package/commonjs/steps/round.test.js +1 -7
  64. package/commonjs/steps/round.test.js.map +1 -1
  65. package/commonjs/steps/units.js +10 -21
  66. package/commonjs/steps/units.js.map +1 -1
  67. package/commonjs/style/approximate.js +2 -6
  68. package/commonjs/style/approximate.js.map +1 -1
  69. package/commonjs/style/approximateTime.js +2 -6
  70. package/commonjs/style/approximateTime.js.map +1 -1
  71. package/commonjs/style/approximateTime.test.js +116 -75
  72. package/commonjs/style/approximateTime.test.js.map +1 -1
  73. package/commonjs/style/getStyleByName.js +3 -29
  74. package/commonjs/style/getStyleByName.js.map +1 -1
  75. package/commonjs/style/mini.js +9 -6
  76. package/commonjs/style/mini.js.map +1 -1
  77. package/commonjs/style/mini.test.js +15 -25
  78. package/commonjs/style/mini.test.js.map +1 -1
  79. package/commonjs/style/miniMinute.js +8 -13
  80. package/commonjs/style/miniMinute.js.map +1 -1
  81. package/commonjs/style/miniMinute.test.js +11 -17
  82. package/commonjs/style/miniMinute.test.js.map +1 -1
  83. package/commonjs/style/miniMinuteNow.js +8 -13
  84. package/commonjs/style/miniMinuteNow.js.map +1 -1
  85. package/commonjs/style/miniMinuteNow.test.js +11 -17
  86. package/commonjs/style/miniMinuteNow.test.js.map +1 -1
  87. package/commonjs/style/miniNow.js +8 -13
  88. package/commonjs/style/miniNow.js.map +1 -1
  89. package/commonjs/style/miniNow.test.js +11 -17
  90. package/commonjs/style/miniNow.test.js.map +1 -1
  91. package/commonjs/style/renameLegacyProperties.js +7 -13
  92. package/commonjs/style/renameLegacyProperties.js.map +1 -1
  93. package/commonjs/style/renameLegacyProperties.test.js +1 -4
  94. package/commonjs/style/renameLegacyProperties.test.js.map +1 -1
  95. package/commonjs/style/round.js +2 -6
  96. package/commonjs/style/round.js.map +1 -1
  97. package/commonjs/style/round.test.js +51 -67
  98. package/commonjs/style/round.test.js.map +1 -1
  99. package/commonjs/style/roundMinute.js +8 -13
  100. package/commonjs/style/roundMinute.js.map +1 -1
  101. package/commonjs/style/roundMinute.test.js +20 -27
  102. package/commonjs/style/roundMinute.test.js.map +1 -1
  103. package/commonjs/style/twitter.js +34 -38
  104. package/commonjs/style/twitter.js.map +1 -1
  105. package/commonjs/style/twitter.test.js +49 -55
  106. package/commonjs/style/twitter.test.js.map +1 -1
  107. package/commonjs/style/twitterFirstMinute.js +10 -15
  108. package/commonjs/style/twitterFirstMinute.js.map +1 -1
  109. package/commonjs/style/twitterFirstMinute.test.js +16 -23
  110. package/commonjs/style/twitterFirstMinute.test.js.map +1 -1
  111. package/commonjs/style/twitterMinute.js +8 -13
  112. package/commonjs/style/twitterMinute.js.map +1 -1
  113. package/commonjs/style/twitterMinute.test.js +20 -25
  114. package/commonjs/style/twitterMinute.test.js.map +1 -1
  115. package/commonjs/style/twitterMinuteNow.js +8 -13
  116. package/commonjs/style/twitterMinuteNow.js.map +1 -1
  117. package/commonjs/style/twitterMinuteNow.test.js +20 -25
  118. package/commonjs/style/twitterMinuteNow.test.js.map +1 -1
  119. package/commonjs/style/twitterNow.js +8 -13
  120. package/commonjs/style/twitterNow.js.map +1 -1
  121. package/commonjs/style/twitterNow.test.js +18 -24
  122. package/commonjs/style/twitterNow.test.js.map +1 -1
  123. package/load-all-locales/index.cjs +32 -0
  124. package/load-all-locales/index.cjs.js +32 -0
  125. package/load-all-locales/index.js +64 -0
  126. package/locale/ak/package.json +16 -0
  127. package/locale/ak.json +267 -0
  128. package/locale/ak.json.d.ts +4 -0
  129. package/locale/ak.json.js +267 -0
  130. package/locale/bal-Latn/package.json +16 -0
  131. package/locale/bal-Latn.json +240 -0
  132. package/locale/bal-Latn.json.d.ts +4 -0
  133. package/locale/bal-Latn.json.js +240 -0
  134. package/locale/be-tarask/package.json +16 -0
  135. package/locale/be-tarask.json +259 -0
  136. package/locale/be-tarask.json.d.ts +4 -0
  137. package/locale/be-tarask.json.js +259 -0
  138. package/locale/blo/package.json +16 -0
  139. package/locale/blo.json +159 -0
  140. package/locale/blo.json.d.ts +4 -0
  141. package/locale/blo.json.js +159 -0
  142. package/locale/bn.json +5 -2
  143. package/locale/bn.json.js +5 -2
  144. package/locale/bs.json +8 -2
  145. package/locale/bs.json.js +8 -2
  146. package/locale/ccp.json +2 -8
  147. package/locale/ccp.json.js +2 -8
  148. package/locale/csw/package.json +16 -0
  149. package/locale/csw.json +180 -0
  150. package/locale/csw.json.d.ts +4 -0
  151. package/locale/csw.json.js +180 -0
  152. package/locale/cy.json +6 -12
  153. package/locale/cy.json.js +6 -12
  154. package/locale/doi/package.json +16 -0
  155. package/locale/doi.json +159 -0
  156. package/locale/doi.json.d.ts +4 -0
  157. package/locale/doi.json.js +159 -0
  158. package/locale/en-AU.json +12 -12
  159. package/locale/en-AU.json.js +12 -12
  160. package/locale/en-CZ/package.json +16 -0
  161. package/locale/en-CZ.json +219 -0
  162. package/locale/en-CZ.json.d.ts +4 -0
  163. package/locale/en-CZ.json.js +219 -0
  164. package/locale/en-ES/package.json +16 -0
  165. package/locale/en-ES.json +219 -0
  166. package/locale/en-ES.json.d.ts +4 -0
  167. package/locale/en-ES.json.js +219 -0
  168. package/locale/en-FR/package.json +16 -0
  169. package/locale/en-FR.json +219 -0
  170. package/locale/en-FR.json.d.ts +4 -0
  171. package/locale/en-FR.json.js +219 -0
  172. package/locale/en-GS/package.json +16 -0
  173. package/locale/en-GS.json +219 -0
  174. package/locale/en-GS.json.d.ts +4 -0
  175. package/locale/en-GS.json.js +219 -0
  176. package/locale/en-HU/package.json +16 -0
  177. package/locale/en-HU.json +219 -0
  178. package/locale/en-HU.json.d.ts +4 -0
  179. package/locale/en-HU.json.js +219 -0
  180. package/locale/en-ID/package.json +16 -0
  181. package/locale/en-ID.json +219 -0
  182. package/locale/en-ID.json.d.ts +4 -0
  183. package/locale/en-ID.json.js +219 -0
  184. package/locale/en-IT/package.json +16 -0
  185. package/locale/en-IT.json +219 -0
  186. package/locale/en-IT.json.d.ts +4 -0
  187. package/locale/en-IT.json.js +219 -0
  188. package/locale/en-NO/package.json +16 -0
  189. package/locale/en-NO.json +219 -0
  190. package/locale/en-NO.json.d.ts +4 -0
  191. package/locale/en-NO.json.js +219 -0
  192. package/locale/en-PL/package.json +16 -0
  193. package/locale/en-PL.json +219 -0
  194. package/locale/en-PL.json.d.ts +4 -0
  195. package/locale/en-PL.json.js +219 -0
  196. package/locale/en-PT/package.json +16 -0
  197. package/locale/en-PT.json +219 -0
  198. package/locale/en-PT.json.d.ts +4 -0
  199. package/locale/en-PT.json.js +219 -0
  200. package/locale/en-RO/package.json +16 -0
  201. package/locale/en-RO.json +219 -0
  202. package/locale/en-RO.json.d.ts +4 -0
  203. package/locale/en-RO.json.js +219 -0
  204. package/locale/en-SK/package.json +16 -0
  205. package/locale/en-SK.json +219 -0
  206. package/locale/en-SK.json.d.ts +4 -0
  207. package/locale/en-SK.json.js +219 -0
  208. package/locale/es-MX.json +12 -9
  209. package/locale/es-MX.json.js +12 -9
  210. package/locale/es-SV.json +2 -2
  211. package/locale/es-SV.json.js +2 -2
  212. package/locale/eu.json +24 -24
  213. package/locale/eu.json.js +24 -24
  214. package/locale/ha.json +119 -65
  215. package/locale/ha.json.js +119 -65
  216. package/locale/he.json +0 -6
  217. package/locale/he.json.js +0 -6
  218. package/locale/hi-Latn.json +2 -2
  219. package/locale/hi-Latn.json.js +2 -2
  220. package/locale/ht/package.json +16 -0
  221. package/locale/ht.json +207 -0
  222. package/locale/ht.json.d.ts +4 -0
  223. package/locale/ht.json.js +207 -0
  224. package/locale/id.json +1 -1
  225. package/locale/id.json.js +1 -1
  226. package/locale/ie/package.json +16 -0
  227. package/locale/ie.json +159 -0
  228. package/locale/ie.json.d.ts +4 -0
  229. package/locale/ie.json.js +159 -0
  230. package/locale/ig.json +17 -17
  231. package/locale/ig.json.js +17 -17
  232. package/locale/ii/package.json +16 -0
  233. package/locale/ii.json +165 -0
  234. package/locale/ii.json.d.ts +4 -0
  235. package/locale/ii.json.js +165 -0
  236. package/locale/is.json +4 -1
  237. package/locale/is.json.js +4 -1
  238. package/locale/kaa/package.json +16 -0
  239. package/locale/kaa.json +159 -0
  240. package/locale/kaa.json.d.ts +4 -0
  241. package/locale/kaa.json.js +159 -0
  242. package/locale/kok-Latn/package.json +16 -0
  243. package/locale/kok-Latn.json +159 -0
  244. package/locale/kok-Latn.json.d.ts +4 -0
  245. package/locale/kok-Latn.json.js +159 -0
  246. package/locale/kok.json +8 -8
  247. package/locale/kok.json.js +8 -8
  248. package/locale/ks.json +9 -9
  249. package/locale/ks.json.js +9 -9
  250. package/locale/ku.json +55 -46
  251. package/locale/ku.json.js +55 -46
  252. package/locale/lld/package.json +16 -0
  253. package/locale/lld.json +291 -0
  254. package/locale/lld.json.d.ts +4 -0
  255. package/locale/lld.json.js +291 -0
  256. package/locale/mi.json +22 -22
  257. package/locale/mi.json.js +22 -22
  258. package/locale/ms-Arab/package.json +16 -0
  259. package/locale/ms-Arab.json +159 -0
  260. package/locale/ms-Arab.json.d.ts +4 -0
  261. package/locale/ms-Arab.json.js +159 -0
  262. package/locale/nb.json +2 -2
  263. package/locale/nb.json.js +2 -2
  264. package/locale/ne.json +1 -1
  265. package/locale/ne.json.js +1 -1
  266. package/locale/nn.json +4 -4
  267. package/locale/nn.json.js +4 -4
  268. package/locale/no.json +2 -2
  269. package/locale/no.json.js +2 -2
  270. package/locale/nqo/package.json +16 -0
  271. package/locale/nqo.json +159 -0
  272. package/locale/nqo.json.d.ts +4 -0
  273. package/locale/nqo.json.js +159 -0
  274. package/locale/om/package.json +16 -0
  275. package/locale/om.json +213 -0
  276. package/locale/om.json.d.ts +4 -0
  277. package/locale/om.json.js +213 -0
  278. package/locale/or.json +1 -1
  279. package/locale/or.json.js +1 -1
  280. package/locale/qu.json +46 -46
  281. package/locale/qu.json.js +46 -46
  282. package/locale/rhg/package.json +16 -0
  283. package/locale/rhg.json +159 -0
  284. package/locale/rhg.json.d.ts +4 -0
  285. package/locale/rhg.json.js +159 -0
  286. package/locale/sl.json +12 -12
  287. package/locale/sl.json.js +12 -12
  288. package/locale/sr-Cyrl-BA.json +2 -2
  289. package/locale/sr-Cyrl-BA.json.js +2 -2
  290. package/locale/sr-Latn-BA.json +2 -2
  291. package/locale/sr-Latn-BA.json.js +2 -2
  292. package/locale/sv.json +1 -1
  293. package/locale/sv.json.js +1 -1
  294. package/locale/syr/package.json +16 -0
  295. package/locale/syr.json +303 -0
  296. package/locale/syr.json.d.ts +4 -0
  297. package/locale/syr.json.js +303 -0
  298. package/locale/ti.json +6 -6
  299. package/locale/ti.json.js +6 -6
  300. package/locale/tn/package.json +16 -0
  301. package/locale/tn.json +159 -0
  302. package/locale/tn.json.d.ts +4 -0
  303. package/locale/tn.json.js +159 -0
  304. package/locale/to.json +26 -26
  305. package/locale/to.json.js +26 -26
  306. package/locale/uk.json +1 -1
  307. package/locale/uk.json.js +1 -1
  308. package/locale/ur-IN.json +9 -6
  309. package/locale/ur-IN.json.js +9 -6
  310. package/locale/vec/package.json +16 -0
  311. package/locale/vec.json +267 -0
  312. package/locale/vec.json.d.ts +4 -0
  313. package/locale/vec.json.js +267 -0
  314. package/locale/xnr/package.json +16 -0
  315. package/locale/xnr.json +159 -0
  316. package/locale/xnr.json.d.ts +4 -0
  317. package/locale/xnr.json.js +159 -0
  318. package/locale/yo-BJ.json +17 -17
  319. package/locale/yo-BJ.json.js +17 -17
  320. package/locale/yo.json +17 -17
  321. package/locale/yo.json.js +17 -17
  322. package/modules/LocaleDataStore.js +2 -3
  323. package/modules/LocaleDataStore.js.map +1 -1
  324. package/modules/PropTypes.js +11 -7
  325. package/modules/PropTypes.js.map +1 -1
  326. package/modules/TimeAgo.js +135 -174
  327. package/modules/TimeAgo.js.map +1 -1
  328. package/modules/TimeAgo.test.js +126 -115
  329. package/modules/TimeAgo.test.js.map +1 -1
  330. package/modules/cache.js +6 -22
  331. package/modules/cache.js.map +1 -1
  332. package/modules/cache.test.js.map +1 -1
  333. package/modules/isStyleObject.js +9 -7
  334. package/modules/isStyleObject.js.map +1 -1
  335. package/modules/isStyleObject.test.js.map +1 -1
  336. package/modules/locale.js +6 -16
  337. package/modules/locale.js.map +1 -1
  338. package/modules/locale.test.js +0 -4
  339. package/modules/locale.test.js.map +1 -1
  340. package/modules/round.js +2 -3
  341. package/modules/round.js.map +1 -1
  342. package/modules/steps/approximate.js +6 -2
  343. package/modules/steps/approximate.js.map +1 -1
  344. package/modules/steps/approximate.test.js +0 -2
  345. package/modules/steps/approximate.test.js.map +1 -1
  346. package/modules/steps/getStep.js +36 -48
  347. package/modules/steps/getStep.js.map +1 -1
  348. package/modules/steps/getStep.test.js +6 -2
  349. package/modules/steps/getStep.test.js.map +1 -1
  350. package/modules/steps/getStepDenominator.js +2 -3
  351. package/modules/steps/getStepDenominator.js.map +1 -1
  352. package/modules/steps/getStepDenominator.test.js.map +1 -1
  353. package/modules/steps/getStepMinTime.js +17 -29
  354. package/modules/steps/getStepMinTime.js.map +1 -1
  355. package/modules/steps/getStepMinTime.test.js.map +1 -1
  356. package/modules/steps/getTimeToNextUpdate.js +19 -31
  357. package/modules/steps/getTimeToNextUpdate.js.map +1 -1
  358. package/modules/steps/getTimeToNextUpdate.test.js +27 -18
  359. package/modules/steps/getTimeToNextUpdate.test.js.map +1 -1
  360. package/modules/steps/getTimeToNextUpdateForUnit.js +4 -10
  361. package/modules/steps/getTimeToNextUpdateForUnit.js.map +1 -1
  362. package/modules/steps/getTimeToNextUpdateForUnit.test.js +0 -4
  363. package/modules/steps/getTimeToNextUpdateForUnit.test.js.map +1 -1
  364. package/modules/steps/helpers.js +1 -1
  365. package/modules/steps/helpers.js.map +1 -1
  366. package/modules/steps/helpers.test.js.map +1 -1
  367. package/modules/steps/index.js +2 -1
  368. package/modules/steps/index.js.map +1 -1
  369. package/modules/steps/renameLegacyProperties.js +6 -13
  370. package/modules/steps/renameLegacyProperties.js.map +1 -1
  371. package/modules/steps/renameLegacyProperties.test.js.map +1 -1
  372. package/modules/steps/round.js.map +1 -1
  373. package/modules/steps/round.test.js +0 -3
  374. package/modules/steps/round.test.js.map +1 -1
  375. package/modules/steps/units.js +5 -9
  376. package/modules/steps/units.js.map +1 -1
  377. package/modules/style/approximate.js +5 -1
  378. package/modules/style/approximate.js.map +1 -1
  379. package/modules/style/approximateTime.js +6 -2
  380. package/modules/style/approximateTime.js.map +1 -1
  381. package/modules/style/approximateTime.test.js +115 -70
  382. package/modules/style/approximateTime.test.js.map +1 -1
  383. package/modules/style/getStyleByName.js +4 -17
  384. package/modules/style/getStyleByName.js.map +1 -1
  385. package/modules/style/mini.js +8 -4
  386. package/modules/style/mini.js.map +1 -1
  387. package/modules/style/mini.test.js +14 -20
  388. package/modules/style/mini.test.js.map +1 -1
  389. package/modules/style/miniMinute.js +6 -6
  390. package/modules/style/miniMinute.js.map +1 -1
  391. package/modules/style/miniMinute.test.js +10 -12
  392. package/modules/style/miniMinute.test.js.map +1 -1
  393. package/modules/style/miniMinuteNow.js +6 -6
  394. package/modules/style/miniMinuteNow.js.map +1 -1
  395. package/modules/style/miniMinuteNow.test.js +10 -12
  396. package/modules/style/miniMinuteNow.test.js.map +1 -1
  397. package/modules/style/miniNow.js +6 -6
  398. package/modules/style/miniNow.js.map +1 -1
  399. package/modules/style/miniNow.test.js +10 -12
  400. package/modules/style/miniNow.test.js.map +1 -1
  401. package/modules/style/renameLegacyProperties.js +8 -10
  402. package/modules/style/renameLegacyProperties.js.map +1 -1
  403. package/modules/style/renameLegacyProperties.test.js +0 -1
  404. package/modules/style/renameLegacyProperties.test.js.map +1 -1
  405. package/modules/style/round.js +3 -2
  406. package/modules/style/round.js.map +1 -1
  407. package/modules/style/round.test.js +50 -62
  408. package/modules/style/round.test.js.map +1 -1
  409. package/modules/style/roundMinute.js +8 -7
  410. package/modules/style/roundMinute.js.map +1 -1
  411. package/modules/style/roundMinute.test.js +19 -22
  412. package/modules/style/roundMinute.test.js.map +1 -1
  413. package/modules/style/twitter.js +35 -32
  414. package/modules/style/twitter.js.map +1 -1
  415. package/modules/style/twitter.test.js +48 -50
  416. package/modules/style/twitter.test.js.map +1 -1
  417. package/modules/style/twitterFirstMinute.js +8 -7
  418. package/modules/style/twitterFirstMinute.js.map +1 -1
  419. package/modules/style/twitterFirstMinute.test.js +15 -18
  420. package/modules/style/twitterFirstMinute.test.js.map +1 -1
  421. package/modules/style/twitterMinute.js +6 -6
  422. package/modules/style/twitterMinute.js.map +1 -1
  423. package/modules/style/twitterMinute.test.js +19 -20
  424. package/modules/style/twitterMinute.test.js.map +1 -1
  425. package/modules/style/twitterMinuteNow.js +6 -6
  426. package/modules/style/twitterMinuteNow.js.map +1 -1
  427. package/modules/style/twitterMinuteNow.test.js +19 -20
  428. package/modules/style/twitterMinuteNow.test.js.map +1 -1
  429. package/modules/style/twitterNow.js +6 -6
  430. package/modules/style/twitterNow.js.map +1 -1
  431. package/modules/style/twitterNow.test.js +17 -19
  432. package/modules/style/twitterNow.test.js.map +1 -1
  433. package/package.json +261 -4
@@ -1 +1 @@
1
- {"version":3,"file":"getStepMinTime.js","names":["getSecondsInUnit","getDiffRatioToNextRoundedNumber","getStepMinTime","step","prevStep","timestamp","now","future","round","minTime","id","unit","undefined","threshold","getMinTimeForUnit","toUnit","fromUnit","formatAs","test","console","warn","JSON","stringify","toUnitAmount","fromUnitAmount"],"sources":["../../source/steps/getStepMinTime.js"],"sourcesContent":["import { getSecondsInUnit } from './units.js'\r\nimport { getDiffRatioToNextRoundedNumber } from '../round.js'\r\n\r\nexport default function getStepMinTime(step, {\r\n\tprevStep,\r\n\ttimestamp,\r\n\t// `now` argument is used in a deprecated `step.test()` function.\r\n\tnow,\r\n\tfuture,\r\n\tround\r\n}) {\r\n\tlet minTime\r\n\t// \"threshold_for_xxx\" is a legacy property.\r\n\tif (prevStep) {\r\n\t\tif (prevStep.id || prevStep.unit) {\r\n\t\t\tminTime = step[`threshold_for_${prevStep.id || prevStep.unit}`]\r\n\t\t}\r\n\t}\r\n\tif (minTime === undefined) {\r\n\t\t// \"threshold\" is a legacy property.\r\n\t\tif (step.threshold !== undefined) {\r\n\t\t\t// \"threshold\" is a legacy name for \"minTime\".\r\n\t\t\tminTime = step.threshold\r\n\t\t\t// \"threshold\" function is deprecated.\r\n\t\t\tif (typeof minTime === 'function') {\r\n\t\t\t\tminTime = minTime(now, future)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\tif (minTime === undefined) {\r\n\t\tminTime = step.minTime\r\n\t}\r\n\t// A deprecated way of specifying a different threshold\r\n\t// depending on the previous step's unit.\r\n\tif (typeof minTime === 'object') {\r\n\t\tif (prevStep && prevStep.id && minTime[prevStep.id] !== undefined) {\r\n\t\t\tminTime = minTime[prevStep.id]\r\n\t\t} else {\r\n\t\t\tminTime = minTime.default\r\n\t\t}\r\n\t}\r\n\tif (typeof minTime === 'function') {\r\n\t\tminTime = minTime(timestamp, {\r\n\t\t\tfuture,\r\n\t\t\tgetMinTimeForUnit(toUnit, fromUnit) {\r\n\t\t\t\treturn getMinTimeForUnit(\r\n\t\t\t\t\ttoUnit,\r\n\t\t\t\t\tfromUnit || prevStep && prevStep.formatAs,\r\n\t\t\t\t\t{ round }\r\n\t\t\t\t)\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\t// Evaluate the `test()` function.\r\n\t// `test()` function is deprecated.\r\n\tif (minTime === undefined) {\r\n\t\tif (step.test) {\r\n\t\t\tif (step.test(timestamp, {\r\n\t\t\t\tnow,\r\n\t\t\t\tfuture\r\n\t\t\t})) {\r\n\t\t\t\t// `0` threshold always passes.\r\n\t\t\t\tminTime = 0\r\n\t\t\t} else {\r\n\t\t\t\t// `MAX_SAFE_INTEGER` threshold won't ever pass in real life.\r\n\t\t\t\tminTime = 9007199254740991 // Number.MAX_SAFE_INTEGER\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\tif (minTime === undefined) {\r\n\t\tif (prevStep) {\r\n\t\t\tif (step.formatAs && prevStep.formatAs) {\r\n\t\t\t\tminTime = getMinTimeForUnit(step.formatAs, prevStep.formatAs, { round })\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\t// The first step's `minTime` is `0` by default.\r\n\t\t\tminTime = 0\r\n\t\t}\r\n\t}\r\n\t// Warn if no `minTime` was defined or could be deduced.\r\n\tif (minTime === undefined) {\r\n\t\tconsole.warn('[javascript-time-ago] A step should specify `minTime`:\\n' + JSON.stringify(step, null, 2))\r\n\t}\r\n\treturn minTime\r\n}\r\n\r\nfunction getMinTimeForUnit(toUnit, fromUnit, { round }) {\r\n\tconst toUnitAmount = getSecondsInUnit(toUnit)\r\n\t// if (!fromUnit) {\r\n\t// \treturn toUnitAmount;\r\n\t// }\r\n\t// if (!fromUnit) {\r\n\t// \tfromUnit = getPreviousUnitFor(toUnit)\r\n\t// }\r\n\tlet fromUnitAmount\r\n\tif (fromUnit === 'now') {\r\n\t\tfromUnitAmount = getSecondsInUnit(toUnit)\r\n\t} else {\r\n\t\tfromUnitAmount = getSecondsInUnit(fromUnit)\r\n\t}\r\n\tif (toUnitAmount !== undefined && fromUnitAmount !== undefined) {\r\n\t\treturn toUnitAmount - fromUnitAmount * (1 - getDiffRatioToNextRoundedNumber(round))\r\n\t}\r\n}"],"mappings":"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"}
1
+ {"version":3,"file":"getStepMinTime.js","names":["getSecondsInUnit","getDiffRatioToNextRoundedNumber","getStepMinTime","step","_ref","prevStep","timestamp","now","future","round","minTime","id","unit","concat","undefined","threshold","_typeof","getMinTimeForUnit","toUnit","fromUnit","formatAs","test","console","warn","JSON","stringify","_ref2","toUnitAmount","fromUnitAmount"],"sources":["../../source/steps/getStepMinTime.js"],"sourcesContent":["import { getSecondsInUnit } from './units.js'\r\nimport { getDiffRatioToNextRoundedNumber } from '../round.js'\r\n\r\nexport default function getStepMinTime(step, {\r\n\tprevStep,\r\n\ttimestamp,\r\n\t// `now` argument is used in a deprecated `step.test()` function.\r\n\tnow,\r\n\tfuture,\r\n\tround\r\n}) {\r\n\tlet minTime\r\n\t// \"threshold_for_xxx\" is a legacy property.\r\n\tif (prevStep) {\r\n\t\tif (prevStep.id || prevStep.unit) {\r\n\t\t\tminTime = step[`threshold_for_${prevStep.id || prevStep.unit}`]\r\n\t\t}\r\n\t}\r\n\tif (minTime === undefined) {\r\n\t\t// \"threshold\" is a legacy property.\r\n\t\tif (step.threshold !== undefined) {\r\n\t\t\t// \"threshold\" is a legacy name for \"minTime\".\r\n\t\t\tminTime = step.threshold\r\n\t\t\t// \"threshold\" function is deprecated.\r\n\t\t\tif (typeof minTime === 'function') {\r\n\t\t\t\tminTime = minTime(now, future)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\tif (minTime === undefined) {\r\n\t\tminTime = step.minTime\r\n\t}\r\n\t// A deprecated way of specifying a different threshold\r\n\t// depending on the previous step's unit.\r\n\tif (typeof minTime === 'object') {\r\n\t\tif (prevStep && prevStep.id && minTime[prevStep.id] !== undefined) {\r\n\t\t\tminTime = minTime[prevStep.id]\r\n\t\t} else {\r\n\t\t\tminTime = minTime.default\r\n\t\t}\r\n\t}\r\n\tif (typeof minTime === 'function') {\r\n\t\tminTime = minTime(timestamp, {\r\n\t\t\tfuture,\r\n\t\t\tgetMinTimeForUnit(toUnit, fromUnit) {\r\n\t\t\t\treturn getMinTimeForUnit(\r\n\t\t\t\t\ttoUnit,\r\n\t\t\t\t\tfromUnit || prevStep && prevStep.formatAs,\r\n\t\t\t\t\t{ round }\r\n\t\t\t\t)\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\t// Evaluate the `test()` function.\r\n\t// `test()` function is deprecated.\r\n\tif (minTime === undefined) {\r\n\t\tif (step.test) {\r\n\t\t\tif (step.test(timestamp, {\r\n\t\t\t\tnow,\r\n\t\t\t\tfuture\r\n\t\t\t})) {\r\n\t\t\t\t// `0` threshold always passes.\r\n\t\t\t\tminTime = 0\r\n\t\t\t} else {\r\n\t\t\t\t// `MAX_SAFE_INTEGER` threshold won't ever pass in real life.\r\n\t\t\t\tminTime = 9007199254740991 // Number.MAX_SAFE_INTEGER\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\tif (minTime === undefined) {\r\n\t\tif (prevStep) {\r\n\t\t\tif (step.formatAs && prevStep.formatAs) {\r\n\t\t\t\tminTime = getMinTimeForUnit(step.formatAs, prevStep.formatAs, { round })\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\t// The first step's `minTime` is `0` by default.\r\n\t\t\tminTime = 0\r\n\t\t}\r\n\t}\r\n\t// Warn if no `minTime` was defined or could be deduced.\r\n\tif (minTime === undefined) {\r\n\t\tconsole.warn('[javascript-time-ago] A step should specify `minTime`:\\n' + JSON.stringify(step, null, 2))\r\n\t}\r\n\treturn minTime\r\n}\r\n\r\nfunction getMinTimeForUnit(toUnit, fromUnit, { round }) {\r\n\tconst toUnitAmount = getSecondsInUnit(toUnit)\r\n\t// if (!fromUnit) {\r\n\t// \treturn toUnitAmount;\r\n\t// }\r\n\t// if (!fromUnit) {\r\n\t// \tfromUnit = getPreviousUnitFor(toUnit)\r\n\t// }\r\n\tlet fromUnitAmount\r\n\tif (fromUnit === 'now') {\r\n\t\tfromUnitAmount = getSecondsInUnit(toUnit)\r\n\t} else {\r\n\t\tfromUnitAmount = getSecondsInUnit(fromUnit)\r\n\t}\r\n\tif (toUnitAmount !== undefined && fromUnitAmount !== undefined) {\r\n\t\treturn toUnitAmount - fromUnitAmount * (1 - getDiffRatioToNextRoundedNumber(round))\r\n\t}\r\n}"],"mappings":";AAAA,SAASA,gBAAgB,QAAQ,YAAY;AAC7C,SAASC,+BAA+B,QAAQ,aAAa;AAE7D,eAAe,SAASC,cAAcA,CAACC,IAAI,EAAAC,IAAA,EAOxC;EAAA,IANFC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IACRC,SAAS,GAAAF,IAAA,CAATE,SAAS;IAETC,GAAG,GAAAH,IAAA,CAAHG,GAAG;IACHC,MAAM,GAAAJ,IAAA,CAANI,MAAM;IACNC,KAAK,GAAAL,IAAA,CAALK,KAAK;EAEL,IAAIC,OAAO;EACX;EACA,IAAIL,QAAQ,EAAE;IACb,IAAIA,QAAQ,CAACM,EAAE,IAAIN,QAAQ,CAACO,IAAI,EAAE;MACjCF,OAAO,GAAGP,IAAI,kBAAAU,MAAA,CAAkBR,QAAQ,CAACM,EAAE,IAAIN,QAAQ,CAACO,IAAI,EAAG;IAChE;EACD;EACA,IAAIF,OAAO,KAAKI,SAAS,EAAE;IAC1B;IACA,IAAIX,IAAI,CAACY,SAAS,KAAKD,SAAS,EAAE;MACjC;MACAJ,OAAO,GAAGP,IAAI,CAACY,SAAS;MACxB;MACA,IAAI,OAAOL,OAAO,KAAK,UAAU,EAAE;QAClCA,OAAO,GAAGA,OAAO,CAACH,GAAG,EAAEC,MAAM,CAAC;MAC/B;IACD;EACD;EACA,IAAIE,OAAO,KAAKI,SAAS,EAAE;IAC1BJ,OAAO,GAAGP,IAAI,CAACO,OAAO;EACvB;EACA;EACA;EACA,IAAIM,OAAA,CAAON,OAAO,MAAK,QAAQ,EAAE;IAChC,IAAIL,QAAQ,IAAIA,QAAQ,CAACM,EAAE,IAAID,OAAO,CAACL,QAAQ,CAACM,EAAE,CAAC,KAAKG,SAAS,EAAE;MAClEJ,OAAO,GAAGA,OAAO,CAACL,QAAQ,CAACM,EAAE,CAAC;IAC/B,CAAC,MAAM;MACND,OAAO,GAAGA,OAAO,WAAQ;IAC1B;EACD;EACA,IAAI,OAAOA,OAAO,KAAK,UAAU,EAAE;IAClCA,OAAO,GAAGA,OAAO,CAACJ,SAAS,EAAE;MAC5BE,MAAM,EAANA,MAAM;MACNS,iBAAiB,WAAAA,kBAACC,MAAM,EAAEC,QAAQ,EAAE;QACnC,OAAOF,kBAAiB,CACvBC,MAAM,EACNC,QAAQ,IAAId,QAAQ,IAAIA,QAAQ,CAACe,QAAQ,EACzC;UAAEX,KAAK,EAALA;QAAM,CACT,CAAC;MACF;IACD,CAAC,CAAC;EACH;EACA;EACA;EACA,IAAIC,OAAO,KAAKI,SAAS,EAAE;IAC1B,IAAIX,IAAI,CAACkB,IAAI,EAAE;MACd,IAAIlB,IAAI,CAACkB,IAAI,CAACf,SAAS,EAAE;QACxBC,GAAG,EAAHA,GAAG;QACHC,MAAM,EAANA;MACD,CAAC,CAAC,EAAE;QACH;QACAE,OAAO,GAAG,CAAC;MACZ,CAAC,MAAM;QACN;QACAA,OAAO,GAAG,gBAAgB,EAAC;MAC5B;IACD;EACD;EACA,IAAIA,OAAO,KAAKI,SAAS,EAAE;IAC1B,IAAIT,QAAQ,EAAE;MACb,IAAIF,IAAI,CAACiB,QAAQ,IAAIf,QAAQ,CAACe,QAAQ,EAAE;QACvCV,OAAO,GAAGO,kBAAiB,CAACd,IAAI,CAACiB,QAAQ,EAAEf,QAAQ,CAACe,QAAQ,EAAE;UAAEX,KAAK,EAALA;QAAM,CAAC,CAAC;MACzE;IACD,CAAC,MAAM;MACN;MACAC,OAAO,GAAG,CAAC;IACZ;EACD;EACA;EACA,IAAIA,OAAO,KAAKI,SAAS,EAAE;IAC1BQ,OAAO,CAACC,IAAI,CAAC,0DAA0D,GAAGC,IAAI,CAACC,SAAS,CAACtB,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;EACzG;EACA,OAAOO,OAAO;AACf;AAEA,SAASO,kBAAiBA,CAACC,MAAM,EAAEC,QAAQ,EAAAO,KAAA,EAAa;EAAA,IAATjB,KAAK,GAAAiB,KAAA,CAALjB,KAAK;EACnD,IAAMkB,YAAY,GAAG3B,gBAAgB,CAACkB,MAAM,CAAC;EAC7C;EACA;EACA;EACA;EACA;EACA;EACA,IAAIU,cAAc;EAClB,IAAIT,QAAQ,KAAK,KAAK,EAAE;IACvBS,cAAc,GAAG5B,gBAAgB,CAACkB,MAAM,CAAC;EAC1C,CAAC,MAAM;IACNU,cAAc,GAAG5B,gBAAgB,CAACmB,QAAQ,CAAC;EAC5C;EACA,IAAIQ,YAAY,KAAKb,SAAS,IAAIc,cAAc,KAAKd,SAAS,EAAE;IAC/D,OAAOa,YAAY,GAAGC,cAAc,IAAI,CAAC,GAAG3B,+BAA+B,CAACQ,KAAK,CAAC,CAAC;EACpF;AACD","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"getStepMinTime.test.js","names":["getStepMinTime","describe","it","test","prevStep","minTime","should","equal"],"sources":["../../source/steps/getStepMinTime.test.js"],"sourcesContent":["import getStepMinTime from './getStepMinTime.js'\r\n\r\ndescribe('getStepMinTime', () => {\r\n\tit('should support `step.test()` function (returns true)', () => {\r\n\t\tgetStepMinTime({\r\n\t\t\ttest: () => true\r\n\t\t}, {\r\n\t\t\tprevStep: { minTime: 1 }\r\n\t\t}).should.equal(0)\r\n\t})\r\n\r\n\tit('should support `step.test()` function (returns false)', () => {\r\n\t\tgetStepMinTime({\r\n\t\t\ttest: () => false\r\n\t\t}, {\r\n\t\t\tprevStep: { minTime: 1 }\r\n\t\t}).should.equal(9007199254740991)\r\n\t})\r\n})"],"mappings":"AAAA,OAAOA,cAAP,MAA2B,qBAA3B;AAEAC,QAAQ,CAAC,gBAAD,EAAmB,YAAM;EAChCC,EAAE,CAAC,sDAAD,EAAyD,YAAM;IAChEF,cAAc,CAAC;MACdG,IAAI,EAAE;QAAA,OAAM,IAAN;MAAA;IADQ,CAAD,EAEX;MACFC,QAAQ,EAAE;QAAEC,OAAO,EAAE;MAAX;IADR,CAFW,CAAd,CAIGC,MAJH,CAIUC,KAJV,CAIgB,CAJhB;EAKA,CANC,CAAF;EAQAL,EAAE,CAAC,uDAAD,EAA0D,YAAM;IACjEF,cAAc,CAAC;MACdG,IAAI,EAAE;QAAA,OAAM,KAAN;MAAA;IADQ,CAAD,EAEX;MACFC,QAAQ,EAAE;QAAEC,OAAO,EAAE;MAAX;IADR,CAFW,CAAd,CAIGC,MAJH,CAIUC,KAJV,CAIgB,gBAJhB;EAKA,CANC,CAAF;AAOA,CAhBO,CAAR"}
1
+ {"version":3,"file":"getStepMinTime.test.js","names":["getStepMinTime","describe","it","test","prevStep","minTime","should","equal"],"sources":["../../source/steps/getStepMinTime.test.js"],"sourcesContent":["import getStepMinTime from './getStepMinTime.js'\r\n\r\ndescribe('getStepMinTime', () => {\r\n\tit('should support `step.test()` function (returns true)', () => {\r\n\t\tgetStepMinTime({\r\n\t\t\ttest: () => true\r\n\t\t}, {\r\n\t\t\tprevStep: { minTime: 1 }\r\n\t\t}).should.equal(0)\r\n\t})\r\n\r\n\tit('should support `step.test()` function (returns false)', () => {\r\n\t\tgetStepMinTime({\r\n\t\t\ttest: () => false\r\n\t\t}, {\r\n\t\t\tprevStep: { minTime: 1 }\r\n\t\t}).should.equal(9007199254740991)\r\n\t})\r\n})"],"mappings":"AAAA,OAAOA,cAAc,MAAM,qBAAqB;AAEhDC,QAAQ,CAAC,gBAAgB,EAAE,YAAM;EAChCC,EAAE,CAAC,sDAAsD,EAAE,YAAM;IAChEF,cAAc,CAAC;MACdG,IAAI,EAAE,SAAAA,KAAA;QAAA,OAAM,IAAI;MAAA;IACjB,CAAC,EAAE;MACFC,QAAQ,EAAE;QAAEC,OAAO,EAAE;MAAE;IACxB,CAAC,CAAC,CAACC,MAAM,CAACC,KAAK,CAAC,CAAC,CAAC;EACnB,CAAC,CAAC;EAEFL,EAAE,CAAC,uDAAuD,EAAE,YAAM;IACjEF,cAAc,CAAC;MACdG,IAAI,EAAE,SAAAA,KAAA;QAAA,OAAM,KAAK;MAAA;IAClB,CAAC,EAAE;MACFC,QAAQ,EAAE;QAAEC,OAAO,EAAE;MAAE;IACxB,CAAC,CAAC,CAACC,MAAM,CAACC,KAAK,CAAC,gBAAgB,CAAC;EAClC,CAAC,CAAC;AACH,CAAC,CAAC","ignoreList":[]}
@@ -1,9 +1,11 @@
1
1
  import _getTimeToNextUpdateForUnit from './getTimeToNextUpdateForUnit.js';
2
2
  import getStepMinTime from './getStepMinTime.js';
3
- import { getRoundFunction } from '../round.js'; // A thousand years is practically a metaphor for "infinity".
3
+ import { getRoundFunction } from '../round.js';
4
4
 
5
+ // A thousand years is practically a metaphor for "infinity".
5
6
  var YEAR = 365 * 24 * 60 * 60 * 1000;
6
7
  export var INFINITY = 1000 * YEAR;
8
+
7
9
  /**
8
10
  * Gets the time to next update for a date and a step.
9
11
  * @param {number} date — The date passed to `.format()`, converted to a timestamp.
@@ -15,21 +17,21 @@ export var INFINITY = 1000 * YEAR;
15
17
  * @param {string} [options.round] - (undocumented) Rounding mechanism.
16
18
  * @return {number} [timeToNextUpdate]
17
19
  */
18
-
19
20
  export default function getTimeToNextUpdate(date, step, _ref) {
20
21
  var prevStep = _ref.prevStep,
21
- nextStep = _ref.nextStep,
22
- now = _ref.now,
23
- future = _ref.future,
24
- round = _ref.round;
22
+ nextStep = _ref.nextStep,
23
+ now = _ref.now,
24
+ future = _ref.future,
25
+ round = _ref.round;
25
26
  var timestamp = date.getTime ? date.getTime() : date;
26
-
27
27
  var getTimeToNextUpdateForUnit = function getTimeToNextUpdateForUnit(unit) {
28
28
  return _getTimeToNextUpdateForUnit(unit, timestamp, {
29
29
  now: now,
30
30
  round: round
31
31
  });
32
- }; // For future dates, steps move from the last one to the first one,
32
+ };
33
+
34
+ // For future dates, steps move from the last one to the first one,
33
35
  // while for past dates, steps move from the first one to the last one,
34
36
  // due to the fact that time flows in one direction,
35
37
  // and future dates' interval naturally becomes smaller
@@ -43,24 +45,19 @@ export default function getTimeToNextUpdate(date, step, _ref) {
43
45
  // from the current step to the next step,
44
46
  // therefore check the `minTime` of the next step.
45
47
  //
46
-
47
-
48
48
  var timeToStepChange = getTimeToStepChange(future ? step : nextStep, timestamp, {
49
49
  future: future,
50
50
  now: now,
51
51
  round: round,
52
- prevStep: future ? prevStep : step // isFirstStep: future && isFirstStep
53
-
52
+ prevStep: future ? prevStep : step
53
+ // isFirstStep: future && isFirstStep
54
54
  });
55
-
56
55
  if (timeToStepChange === undefined) {
57
56
  // Can't reliably determine "time to next update"
58
57
  // if not all of the steps provide `minTime`.
59
58
  return;
60
59
  }
61
-
62
60
  var timeToNextUpdate;
63
-
64
61
  if (step) {
65
62
  if (step.getTimeToNextUpdate) {
66
63
  timeToNextUpdate = step.getTimeToNextUpdate(timestamp, {
@@ -71,11 +68,9 @@ export default function getTimeToNextUpdate(date, step, _ref) {
71
68
  round: round
72
69
  });
73
70
  }
74
-
75
71
  if (timeToNextUpdate === undefined) {
76
72
  // "unit" is now called "formatAs".
77
73
  var unit = step.unit || step.formatAs;
78
-
79
74
  if (unit) {
80
75
  // For some units, like "now", there's no defined amount of seconds in them.
81
76
  // In such cases, `getTimeToNextUpdateForUnit()` returns `undefined`,
@@ -85,18 +80,16 @@ export default function getTimeToNextUpdate(date, step, _ref) {
85
80
  }
86
81
  }
87
82
  }
88
-
89
83
  if (timeToNextUpdate === undefined) {
90
84
  return timeToStepChange;
91
85
  }
92
-
93
86
  return Math.min(timeToNextUpdate, timeToStepChange);
94
87
  }
95
88
  export function getStepChangesAt(currentOrNextStep, timestamp, _ref2) {
96
89
  var now = _ref2.now,
97
- future = _ref2.future,
98
- round = _ref2.round,
99
- prevStep = _ref2.prevStep;
90
+ future = _ref2.future,
91
+ round = _ref2.round,
92
+ prevStep = _ref2.prevStep;
100
93
  // The first step's `minTime` is `0` by default.
101
94
  // It doesn't "change" steps at zero point
102
95
  // but it does change the wording when switching
@@ -109,11 +102,9 @@ export function getStepChangesAt(currentOrNextStep, timestamp, _ref2) {
109
102
  round: round,
110
103
  prevStep: prevStep
111
104
  });
112
-
113
105
  if (minTime === undefined) {
114
106
  return;
115
107
  }
116
-
117
108
  if (future) {
118
109
  // The step changes to the previous step
119
110
  // as soon as `timestamp - now` becomes
@@ -127,20 +118,19 @@ export function getStepChangesAt(currentOrNextStep, timestamp, _ref2) {
127
118
  // equal to `minTime` of the next step:
128
119
  // `now - timestamp === minTime`
129
120
  // => `now === timestamp + minTime`.
121
+
130
122
  // This is a special case when double-update could be skipped.
131
123
  if (minTime === 0 && timestamp === now) {
132
124
  return INFINITY;
133
125
  }
134
-
135
126
  return timestamp + minTime * 1000;
136
127
  }
137
128
  }
138
129
  export function getTimeToStepChange(step, timestamp, _ref3) {
139
130
  var now = _ref3.now,
140
- future = _ref3.future,
141
- round = _ref3.round,
142
- prevStep = _ref3.prevStep;
143
-
131
+ future = _ref3.future,
132
+ round = _ref3.round,
133
+ prevStep = _ref3.prevStep;
144
134
  if (step) {
145
135
  var stepChangesAt = getStepChangesAt(step, timestamp, {
146
136
  now: now,
@@ -148,11 +138,9 @@ export function getTimeToStepChange(step, timestamp, _ref3) {
148
138
  round: round,
149
139
  prevStep: prevStep
150
140
  });
151
-
152
141
  if (stepChangesAt === undefined) {
153
142
  return;
154
143
  }
155
-
156
144
  return stepChangesAt - now;
157
145
  } else {
158
146
  if (future) {
@@ -1 +1 @@
1
- {"version":3,"file":"getTimeToNextUpdate.js","names":["_getTimeToNextUpdateForUnit","getStepMinTime","getRoundFunction","YEAR","INFINITY","getTimeToNextUpdate","date","step","prevStep","nextStep","now","future","round","timestamp","getTime","getTimeToNextUpdateForUnit","unit","timeToStepChange","getTimeToStepChange","undefined","timeToNextUpdate","formatAs","Math","min","getStepChangesAt","currentOrNextStep","minTime","stepChangesAt"],"sources":["../../source/steps/getTimeToNextUpdate.js"],"sourcesContent":["import _getTimeToNextUpdateForUnit from './getTimeToNextUpdateForUnit.js'\r\nimport getStepMinTime from './getStepMinTime.js'\r\nimport { getRoundFunction } from '../round.js'\r\n\r\n// A thousand years is practically a metaphor for \"infinity\".\r\nconst YEAR = 365 * 24 * 60 * 60 * 1000\r\nexport const INFINITY = 1000 * YEAR\r\n\r\n/**\r\n * Gets the time to next update for a date and a step.\r\n * @param {number} date — The date passed to `.format()`, converted to a timestamp.\r\n * @param {object} step\r\n * @param {object} [options.previousStep]\r\n * @param {object} [options.nextStep]\r\n * @param {number} options.now\r\n * @param {boolean} options.future\r\n * @param {string} [options.round] - (undocumented) Rounding mechanism.\r\n * @return {number} [timeToNextUpdate]\r\n */\r\nexport default function getTimeToNextUpdate(date, step, { prevStep, nextStep, now, future, round }) {\r\n\tconst timestamp = date.getTime ? date.getTime() : date\r\n\r\n\tconst getTimeToNextUpdateForUnit = (unit) => _getTimeToNextUpdateForUnit(unit, timestamp, { now, round })\r\n\r\n\t// For future dates, steps move from the last one to the first one,\r\n\t// while for past dates, steps move from the first one to the last one,\r\n\t// due to the fact that time flows in one direction,\r\n\t// and future dates' interval naturally becomes smaller\r\n\t// while past dates' interval naturally grows larger.\r\n\t//\r\n\t// For future dates, it's the transition\r\n\t// from the current step to the previous step,\r\n\t// therefore check the `minTime` of the current step.\r\n\t//\r\n\t// For past dates, it's the transition\r\n\t// from the current step to the next step,\r\n\t// therefore check the `minTime` of the next step.\r\n\t//\r\n\tconst timeToStepChange = getTimeToStepChange(future ? step : nextStep, timestamp, {\r\n\t\tfuture,\r\n\t\tnow,\r\n\t\tround,\r\n\t\tprevStep: future ? prevStep : step,\r\n\t\t// isFirstStep: future && isFirstStep\r\n\t})\r\n\r\n\tif (timeToStepChange === undefined) {\r\n\t\t// Can't reliably determine \"time to next update\"\r\n\t\t// if not all of the steps provide `minTime`.\r\n\t\treturn\r\n\t}\r\n\r\n\tlet timeToNextUpdate\r\n\r\n\tif (step) {\r\n\t\tif (step.getTimeToNextUpdate) {\r\n\t\t\ttimeToNextUpdate = step.getTimeToNextUpdate(timestamp, {\r\n\t\t\t\tgetTimeToNextUpdateForUnit,\r\n\t\t\t\tgetRoundFunction,\r\n\t\t\t\tnow,\r\n\t\t\t\tfuture,\r\n\t\t\t\tround\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tif (timeToNextUpdate === undefined) {\r\n\t\t\t// \"unit\" is now called \"formatAs\".\r\n\t\t\tconst unit = step.unit || step.formatAs\r\n\t\t\tif (unit) {\r\n\t\t\t\t// For some units, like \"now\", there's no defined amount of seconds in them.\r\n\t\t\t\t// In such cases, `getTimeToNextUpdateForUnit()` returns `undefined`,\r\n\t\t\t\t// and the next step's `minTime` could be used to calculate the update interval:\r\n\t\t\t\t// it will just assume that the label never changes for this step.\r\n\t\t\t\ttimeToNextUpdate = getTimeToNextUpdateForUnit(unit)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tif (timeToNextUpdate === undefined) {\r\n\t\treturn timeToStepChange\r\n\t}\r\n\r\n\treturn Math.min(timeToNextUpdate, timeToStepChange)\r\n}\r\n\r\nexport function getStepChangesAt(currentOrNextStep, timestamp, { now, future, round, prevStep }) {\r\n\t// The first step's `minTime` is `0` by default.\r\n\t// It doesn't \"change\" steps at zero point\r\n\t// but it does change the wording when switching\r\n\t// from \"future\" to \"past\": \"in ...\" -> \"... ago\".\r\n\t// Therefore, the label should be updated at zero-point too.\r\n\tconst minTime = getStepMinTime(currentOrNextStep, { timestamp, now, future, round, prevStep })\r\n\tif (minTime === undefined) {\r\n\t\treturn\r\n\t}\r\n\tif (future) {\r\n\t\t// The step changes to the previous step\r\n\t\t// as soon as `timestamp - now` becomes\r\n\t\t// less than the `minTime` of the current step:\r\n\t\t// `timestamp - now === minTime - 1`\r\n\t\t// => `now === timestamp - minTime + 1`.\r\n\t\treturn timestamp - minTime * 1000 + 1\r\n\t} else {\r\n\t\t// The step changes to the next step\r\n\t\t// as soon as `now - timestamp` becomes\r\n\t\t// equal to `minTime` of the next step:\r\n\t\t// `now - timestamp === minTime`\r\n\t\t// => `now === timestamp + minTime`.\r\n\r\n\t\t// This is a special case when double-update could be skipped.\r\n\t\tif (minTime === 0 && timestamp === now) {\r\n\t\t\treturn INFINITY\r\n\t\t}\r\n\r\n\t\treturn timestamp + minTime * 1000\r\n\t}\r\n}\r\n\r\nexport function getTimeToStepChange(step, timestamp, {\r\n\tnow,\r\n\tfuture,\r\n\tround,\r\n\tprevStep\r\n}) {\r\n\tif (step) {\r\n\t\tconst stepChangesAt = getStepChangesAt(step, timestamp, {\r\n\t\t\tnow,\r\n\t\t\tfuture,\r\n\t\t\tround,\r\n\t\t\tprevStep\r\n\t\t})\r\n\t\tif (stepChangesAt === undefined) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\treturn stepChangesAt - now\r\n\t} else {\r\n\t\tif (future) {\r\n\t\t\t// No step.\r\n\t\t\t// Update right after zero point, when it changes from \"future\" to \"past\".\r\n\t\t\treturn timestamp - now + 1\r\n\t\t} else {\r\n\t\t\t// The last step doesn't ever change when `date` is in the past.\r\n\t\t\treturn INFINITY\r\n\t\t}\r\n\t}\r\n}"],"mappings":"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"}
1
+ {"version":3,"file":"getTimeToNextUpdate.js","names":["_getTimeToNextUpdateForUnit","getStepMinTime","getRoundFunction","YEAR","INFINITY","getTimeToNextUpdate","date","step","_ref","prevStep","nextStep","now","future","round","timestamp","getTime","getTimeToNextUpdateForUnit","unit","timeToStepChange","getTimeToStepChange","undefined","timeToNextUpdate","formatAs","Math","min","getStepChangesAt","currentOrNextStep","_ref2","minTime","_ref3","stepChangesAt"],"sources":["../../source/steps/getTimeToNextUpdate.js"],"sourcesContent":["import _getTimeToNextUpdateForUnit from './getTimeToNextUpdateForUnit.js'\r\nimport getStepMinTime from './getStepMinTime.js'\r\nimport { getRoundFunction } from '../round.js'\r\n\r\n// A thousand years is practically a metaphor for \"infinity\".\r\nconst YEAR = 365 * 24 * 60 * 60 * 1000\r\nexport const INFINITY = 1000 * YEAR\r\n\r\n/**\r\n * Gets the time to next update for a date and a step.\r\n * @param {number} date — The date passed to `.format()`, converted to a timestamp.\r\n * @param {object} step\r\n * @param {object} [options.previousStep]\r\n * @param {object} [options.nextStep]\r\n * @param {number} options.now\r\n * @param {boolean} options.future\r\n * @param {string} [options.round] - (undocumented) Rounding mechanism.\r\n * @return {number} [timeToNextUpdate]\r\n */\r\nexport default function getTimeToNextUpdate(date, step, { prevStep, nextStep, now, future, round }) {\r\n\tconst timestamp = date.getTime ? date.getTime() : date\r\n\r\n\tconst getTimeToNextUpdateForUnit = (unit) => _getTimeToNextUpdateForUnit(unit, timestamp, { now, round })\r\n\r\n\t// For future dates, steps move from the last one to the first one,\r\n\t// while for past dates, steps move from the first one to the last one,\r\n\t// due to the fact that time flows in one direction,\r\n\t// and future dates' interval naturally becomes smaller\r\n\t// while past dates' interval naturally grows larger.\r\n\t//\r\n\t// For future dates, it's the transition\r\n\t// from the current step to the previous step,\r\n\t// therefore check the `minTime` of the current step.\r\n\t//\r\n\t// For past dates, it's the transition\r\n\t// from the current step to the next step,\r\n\t// therefore check the `minTime` of the next step.\r\n\t//\r\n\tconst timeToStepChange = getTimeToStepChange(future ? step : nextStep, timestamp, {\r\n\t\tfuture,\r\n\t\tnow,\r\n\t\tround,\r\n\t\tprevStep: future ? prevStep : step,\r\n\t\t// isFirstStep: future && isFirstStep\r\n\t})\r\n\r\n\tif (timeToStepChange === undefined) {\r\n\t\t// Can't reliably determine \"time to next update\"\r\n\t\t// if not all of the steps provide `minTime`.\r\n\t\treturn\r\n\t}\r\n\r\n\tlet timeToNextUpdate\r\n\r\n\tif (step) {\r\n\t\tif (step.getTimeToNextUpdate) {\r\n\t\t\ttimeToNextUpdate = step.getTimeToNextUpdate(timestamp, {\r\n\t\t\t\tgetTimeToNextUpdateForUnit,\r\n\t\t\t\tgetRoundFunction,\r\n\t\t\t\tnow,\r\n\t\t\t\tfuture,\r\n\t\t\t\tround\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tif (timeToNextUpdate === undefined) {\r\n\t\t\t// \"unit\" is now called \"formatAs\".\r\n\t\t\tconst unit = step.unit || step.formatAs\r\n\t\t\tif (unit) {\r\n\t\t\t\t// For some units, like \"now\", there's no defined amount of seconds in them.\r\n\t\t\t\t// In such cases, `getTimeToNextUpdateForUnit()` returns `undefined`,\r\n\t\t\t\t// and the next step's `minTime` could be used to calculate the update interval:\r\n\t\t\t\t// it will just assume that the label never changes for this step.\r\n\t\t\t\ttimeToNextUpdate = getTimeToNextUpdateForUnit(unit)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tif (timeToNextUpdate === undefined) {\r\n\t\treturn timeToStepChange\r\n\t}\r\n\r\n\treturn Math.min(timeToNextUpdate, timeToStepChange)\r\n}\r\n\r\nexport function getStepChangesAt(currentOrNextStep, timestamp, { now, future, round, prevStep }) {\r\n\t// The first step's `minTime` is `0` by default.\r\n\t// It doesn't \"change\" steps at zero point\r\n\t// but it does change the wording when switching\r\n\t// from \"future\" to \"past\": \"in ...\" -> \"... ago\".\r\n\t// Therefore, the label should be updated at zero-point too.\r\n\tconst minTime = getStepMinTime(currentOrNextStep, { timestamp, now, future, round, prevStep })\r\n\tif (minTime === undefined) {\r\n\t\treturn\r\n\t}\r\n\tif (future) {\r\n\t\t// The step changes to the previous step\r\n\t\t// as soon as `timestamp - now` becomes\r\n\t\t// less than the `minTime` of the current step:\r\n\t\t// `timestamp - now === minTime - 1`\r\n\t\t// => `now === timestamp - minTime + 1`.\r\n\t\treturn timestamp - minTime * 1000 + 1\r\n\t} else {\r\n\t\t// The step changes to the next step\r\n\t\t// as soon as `now - timestamp` becomes\r\n\t\t// equal to `minTime` of the next step:\r\n\t\t// `now - timestamp === minTime`\r\n\t\t// => `now === timestamp + minTime`.\r\n\r\n\t\t// This is a special case when double-update could be skipped.\r\n\t\tif (minTime === 0 && timestamp === now) {\r\n\t\t\treturn INFINITY\r\n\t\t}\r\n\r\n\t\treturn timestamp + minTime * 1000\r\n\t}\r\n}\r\n\r\nexport function getTimeToStepChange(step, timestamp, {\r\n\tnow,\r\n\tfuture,\r\n\tround,\r\n\tprevStep\r\n}) {\r\n\tif (step) {\r\n\t\tconst stepChangesAt = getStepChangesAt(step, timestamp, {\r\n\t\t\tnow,\r\n\t\t\tfuture,\r\n\t\t\tround,\r\n\t\t\tprevStep\r\n\t\t})\r\n\t\tif (stepChangesAt === undefined) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\treturn stepChangesAt - now\r\n\t} else {\r\n\t\tif (future) {\r\n\t\t\t// No step.\r\n\t\t\t// Update right after zero point, when it changes from \"future\" to \"past\".\r\n\t\t\treturn timestamp - now + 1\r\n\t\t} else {\r\n\t\t\t// The last step doesn't ever change when `date` is in the past.\r\n\t\t\treturn INFINITY\r\n\t\t}\r\n\t}\r\n}"],"mappings":"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","ignoreList":[]}
@@ -166,11 +166,12 @@ describe('getStepChangesAt', function () {
166
166
  now: 0,
167
167
  future: false,
168
168
  prevStep: undefined
169
- }).should.equal(INFINITY); // Past.
169
+ }).should.equal(INFINITY);
170
+
171
+ // Past.
170
172
  // Is at zero point.
171
173
  // The next step is seconds.
172
174
  // Updates at the next step.
173
-
174
175
  getStepChangesAt({
175
176
  unit: 'second',
176
177
  minTime: 1
@@ -178,32 +179,35 @@ describe('getStepChangesAt', function () {
178
179
  now: 0,
179
180
  future: false,
180
181
  prevStep: {}
181
- }).should.equal(1 * 1000); // Future.
182
+ }).should.equal(1 * 1000);
183
+
184
+ // Future.
182
185
  // Inside the first step.
183
186
  // Updates after zero point.
184
-
185
187
  getStepChangesAt({
186
188
  unit: 'now'
187
189
  }, 0.9 * 1000, {
188
190
  now: 0,
189
191
  future: true,
190
192
  prevStep: undefined
191
- }).should.equal(0.9 * 1000 + 1); // Future.
193
+ }).should.equal(0.9 * 1000 + 1);
194
+
195
+ // Future.
192
196
  // The first step doesn't start at 0.
193
197
  // Outside of the first step.
194
198
  // Updates right after zero point.
195
-
196
199
  getTimeToStepChange(undefined, 0.9 * 1000, {
197
200
  now: 0,
198
201
  future: true,
199
202
  prevStep: undefined
200
- }).should.equal(0.9 * 1000 + 1); // Past.
203
+ }).should.equal(0.9 * 1000 + 1);
204
+
205
+ // Past.
201
206
  // The current step is `undefined`.
202
207
  // The next step is the first step.
203
208
  // The first step doesn't start at 0.
204
209
  // Outside of the first step.
205
210
  // Updates at entering the first step.
206
-
207
211
  getStepChangesAt({
208
212
  minTime: 1,
209
213
  unit: 'second'
@@ -211,10 +215,11 @@ describe('getStepChangesAt', function () {
211
215
  now: 0,
212
216
  future: false,
213
217
  prevStep: {}
214
- }).should.equal(0.1 * 1000); // Future.
218
+ }).should.equal(0.1 * 1000);
219
+
220
+ // Future.
215
221
  // The first step doesn't start at 0.
216
222
  // Will output empty string after it exits the current step.
217
-
218
223
  getStepChangesAt({
219
224
  minTime: 1,
220
225
  unit: 'second'
@@ -222,39 +227,43 @@ describe('getStepChangesAt', function () {
222
227
  now: 0,
223
228
  future: true,
224
229
  prevStep: undefined
225
- }).should.equal(0.1 * 1000 + 1); // Past.
230
+ }).should.equal(0.1 * 1000 + 1);
231
+
232
+ // Past.
226
233
  // Next step is seconds.
227
234
  // The "next" step doesn't have `minTime`,
228
235
  // so "time to next update" couldn't be determined.
229
-
230
236
  expect(getStepChangesAt({
231
237
  unit: 'unknown-time-unit'
232
238
  }, 0, {
233
239
  now: 0,
234
240
  future: false,
235
241
  prevStep: {}
236
- })).to.be.undefined; // Past.
242
+ })).to.be.undefined;
243
+
244
+ // Past.
237
245
  // No next step.
238
246
  // The last step never changes.
239
-
240
247
  getTimeToStepChange(undefined, 0, {
241
248
  now: 0,
242
249
  future: false,
243
250
  isFirstStep: undefined
244
- }).should.equal(INFINITY); // Future.
251
+ }).should.equal(INFINITY);
252
+
253
+ // Future.
245
254
  // Current step is seconds.
246
255
  // Updates after zero point.
247
-
248
256
  getStepChangesAt({
249
257
  unit: 'second'
250
258
  }, 0, {
251
259
  now: 0,
252
260
  future: true,
253
261
  prevStep: undefined
254
- }).should.equal(1); // Past.
262
+ }).should.equal(1);
263
+
264
+ // Past.
255
265
  // Next step is minutes.
256
266
  // Already at zero point, so no need to update at zero point.
257
-
258
267
  getStepChangesAt({
259
268
  minTime: 60,
260
269
  formatAs: 'minute'
@@ -1 +1 @@
1
- {"version":3,"file":"getTimeToNextUpdate.test.js","names":["getTimeToNextUpdate","INFINITY","getStepChangesAt","getTimeToStepChange","describe","it","expect","minTime","format","now","future","isFirstStep","to","equal","Date","nextStep","formatAs","be","undefined","should","test","unit","prevStep"],"sources":["../../source/steps/getTimeToNextUpdate.test.js"],"sourcesContent":["import getTimeToNextUpdate, { INFINITY, getStepChangesAt, getTimeToStepChange } from './getTimeToNextUpdate.js'\r\n\r\ndescribe('getTimeToNextUpdate', () => {\r\n\tit('should return infinity when there are no more steps, and it does not format as a unit (past)', () => {\r\n\t\texpect(getTimeToNextUpdate(-4 * 60 * 1000, {\r\n\t\t\tminTime: 59.5,\r\n\t\t\tformat: () => ''\r\n\t\t}, {\r\n\t\t\tnow: 0,\r\n\t\t\tfuture: false,\r\n\t\t\tisFirstStep: true\r\n\t\t})).to.equal(INFINITY)\r\n\t})\r\n\r\n\tit('should support date argument', () => {\r\n\t\texpect(getTimeToNextUpdate(new Date(4 * 60 * 1000), {\r\n\t\t\tminTime: 60\r\n\t\t}, {\r\n\t\t\tnow: 0,\r\n\t\t\tfuture: true,\r\n\t\t\tisFirstStep: true,\r\n\t\t\tnextStep: {}\r\n\t\t})).to.equal(3 * 60 * 1000 + 1)\r\n\t})\r\n\r\n\tit('should return this step\\'s \"minTime\" timestamp (future)', () => {\r\n\t\texpect(getTimeToNextUpdate(4 * 60 * 1000, {\r\n\t\t\tminTime: 60,\r\n\t\t\tformat: () => ''\r\n\t\t}, {\r\n\t\t\tnow: 0,\r\n\t\t\tfuture: true,\r\n\t\t\tisFirstStep: true,\r\n\t\t\tnextStep: {\r\n\t\t\t\tformat: () => ''\r\n\t\t\t}\r\n\t\t})).to.equal(3 * 60 * 1000 + 1)\r\n\t})\r\n\r\n\tit('should return undefined when there is a next step and time to next update can not be reliably determined (formatAs) (past)', () => {\r\n\t\texpect(getTimeToNextUpdate(-4 * 60 * 1000, {\r\n\t\t\tminTime: 60,\r\n\t\t\tformatAs: 'minute'\r\n\t\t}, {\r\n\t\t\tnow: 0,\r\n\t\t\tfuture: false,\r\n\t\t\tisFirstStep: true,\r\n\t\t\tnextStep: {\r\n\t\t\t\tformatAs: 'unknown-time-unit'\r\n\t\t\t}\r\n\t\t})).to.be.undefined\r\n\t})\r\n\r\n\tit('should get time to next update (no next step) (past)', () => {\r\n\t\tgetTimeToNextUpdate(-4 * 60 * 1000, {\r\n\t\t\tformatAs: 'minute',\r\n\t\t\tminTime: 59.5\r\n\t\t}, {\r\n\t\t\tnow: 0,\r\n\t\t\tfuture: false,\r\n\t\t\tisFirstStep: true\r\n\t\t}).should.equal(0.5 * 60 * 1000)\r\n\t})\r\n\r\n\tit('should get time to next update (no next step) (future)', () => {\r\n\t\tgetTimeToNextUpdate(4 * 60 * 1000, {\r\n\t\t\tformatAs: 'minute',\r\n\t\t\tminTime: 59.5\r\n\t\t}, {\r\n\t\t\tnow: 0,\r\n\t\t\tfuture: true,\r\n\t\t\tisFirstStep: true\r\n\t\t}).should.equal(0.5 * 60 * 1000 + 1)\r\n\t})\r\n\r\n\tit('should get time to next update (has prev/next step without `minTime`) (future)', () => {\r\n\t\tgetTimeToNextUpdate(4 * 60 * 1000, {\r\n\t\t\tformatAs: 'minute',\r\n\t\t\tminTime: 59.5\r\n\t\t}, {\r\n\t\t\tnow: 0,\r\n\t\t\tfuture: true,\r\n\t\t\tisFirstStep: true,\r\n\t\t\tnextStep: {\r\n\t\t\t\tformatAs: 'hour',\r\n\t\t\t\ttest: () => false\r\n\t\t\t}\r\n\t\t}).should.equal(0.5 * 60 * 1000 + 1)\r\n\t})\r\n\r\n\tit('should get time to next update (has `getTimeToNextUpdate`) (past)', () => {\r\n\t\tgetTimeToNextUpdate(-4 * 60 * 1000, {\r\n\t\t\tformatAs: 'minute',\r\n\t\t\tminTime: 59.5,\r\n\t\t\tgetTimeToNextUpdate: () => 0.25 * 60 * 1000\r\n\t\t}, {\r\n\t\t\tnow: 0,\r\n\t\t\tfuture: false,\r\n\t\t\tisFirstStep: true\r\n\t\t}).should.equal(0.25 * 60 * 1000)\r\n\t})\r\n\r\n\tit('should get time to next update (has `getTimeToNextUpdate`) (future)', () => {\r\n\t\tgetTimeToNextUpdate(4 * 60 * 1000, {\r\n\t\t\tformatAs: 'minute',\r\n\t\t\tminTime: 59.5,\r\n\t\t\tgetTimeToNextUpdate: () => 0.25 * 60 * 1000\r\n\t\t}, {\r\n\t\t\tnow: 0,\r\n\t\t\tfuture: true,\r\n\t\t\tisFirstStep: true\r\n\t\t}).should.equal(0.25 * 60 * 1000)\r\n\t})\r\n\r\n\tit('should get time to next update (has both unit and prev/next steps with `minTime`) (returns time to \"minTime\" of next step) (past)', () => {\r\n\t\tgetTimeToNextUpdate(-59 * 60 * 1000, {\r\n\t\t\tformatAs: 'minute',\r\n\t\t\tminTime: 59.5\r\n\t\t}, {\r\n\t\t\tnow: 0,\r\n\t\t\tfuture: false,\r\n\t\t\tisFirstStep: true,\r\n\t\t\tnextStep: {\r\n\t\t\t\tformatAs: 'hour',\r\n\t\t\t\tminTime: 59.5 * 60\r\n\t\t\t}\r\n\t\t}).should.equal(0.5 * 60 * 1000)\r\n\t})\r\n\r\n\tit('should get time to next update (has no unit but has prev/next step with `minTime`) (returns time to \"minTime\" of next step) (past)', () => {\r\n\t\tgetTimeToNextUpdate(-59 * 60 * 1000, {\r\n\t\t\tformat: () => {},\r\n\t\t\tminTime: 59.5\r\n\t\t}, {\r\n\t\t\tnow: 0,\r\n\t\t\tfuture: false,\r\n\t\t\tisFirstStep: true,\r\n\t\t\tnextStep: {\r\n\t\t\t\tformatAs: 'hour',\r\n\t\t\t\tminTime: 59.5 * 60\r\n\t\t\t}\r\n\t\t}).should.equal(0.5 * 60 * 1000)\r\n\t})\r\n\r\n\tit('should get time to next update (will be outside of the first step) (future)', () => {\r\n\t\tgetTimeToNextUpdate(60 * 60 * 1000, {\r\n\t\t\tformatAs: 'hour',\r\n\t\t\tminTime: 60 * 60\r\n\t\t}, {\r\n\t\t\tnow: 0,\r\n\t\t\tfuture: true,\r\n\t\t\tisFirstStep: true\r\n\t\t}).should.equal(1)\r\n\t})\r\n})\r\n\r\ndescribe('getStepChangesAt', () => {\r\n\tit('should work for \"round\" steps', () => {\r\n\t\t// Future.\r\n\t\t// Is at zero point.\r\n\t\t// No next step.\r\n\t\t// No tickable unit.\r\n\t\t// Doesn't update.\r\n\t\tgetStepChangesAt({\r\n\t\t\tunit: 'now'\r\n\t\t}, 0, {\r\n\t\t\tnow: 0,\r\n\t\t\tfuture: false,\r\n\t\t\tprevStep: undefined\r\n\t\t}).should.equal(INFINITY)\r\n\r\n\t\t// Past.\r\n\t\t// Is at zero point.\r\n\t\t// The next step is seconds.\r\n\t\t// Updates at the next step.\r\n\t\tgetStepChangesAt({\r\n\t\t\tunit: 'second',\r\n\t\t\tminTime: 1\r\n\t\t}, 0, {\r\n\t\t\tnow: 0,\r\n\t\t\tfuture: false,\r\n\t\t\tprevStep: {}\r\n\t\t}).should.equal(1 * 1000)\r\n\r\n\t\t// Future.\r\n\t\t// Inside the first step.\r\n\t\t// Updates after zero point.\r\n\t\tgetStepChangesAt({\r\n\t\t\tunit: 'now'\r\n\t\t}, 0.9 * 1000, {\r\n\t\t\tnow: 0,\r\n\t\t\tfuture: true,\r\n\t\t\tprevStep: undefined\r\n\t\t}).should.equal(0.9 * 1000 + 1)\r\n\r\n\t\t// Future.\r\n\t\t// The first step doesn't start at 0.\r\n\t\t// Outside of the first step.\r\n\t\t// Updates right after zero point.\r\n\t\tgetTimeToStepChange(undefined, 0.9 * 1000, {\r\n\t\t\tnow: 0,\r\n\t\t\tfuture: true,\r\n\t\t\tprevStep: undefined\r\n\t\t}).should.equal(0.9 * 1000 + 1)\r\n\r\n\t\t// Past.\r\n\t\t// The current step is `undefined`.\r\n\t\t// The next step is the first step.\r\n\t\t// The first step doesn't start at 0.\r\n\t\t// Outside of the first step.\r\n\t\t// Updates at entering the first step.\r\n\t\tgetStepChangesAt({\r\n\t\t\tminTime: 1,\r\n\t\t\tunit: 'second'\r\n\t\t}, -0.9 * 1000, {\r\n\t\t\tnow: 0,\r\n\t\t\tfuture: false,\r\n\t\t\tprevStep: {}\r\n\t\t}).should.equal(0.1 * 1000)\r\n\r\n\t\t// Future.\r\n\t\t// The first step doesn't start at 0.\r\n\t\t// Will output empty string after it exits the current step.\r\n\t\tgetStepChangesAt({\r\n\t\t\tminTime: 1,\r\n\t\t\tunit: 'second'\r\n\t\t}, 1.1 * 1000, {\r\n\t\t\tnow: 0,\r\n\t\t\tfuture: true,\r\n\t\t\tprevStep: undefined\r\n\t\t}).should.equal(0.1 * 1000 + 1)\r\n\r\n\t\t// Past.\r\n\t\t// Next step is seconds.\r\n\t\t// The \"next\" step doesn't have `minTime`,\r\n\t\t// so \"time to next update\" couldn't be determined.\r\n\t\texpect(getStepChangesAt({\r\n\t\t\tunit: 'unknown-time-unit'\r\n\t\t}, 0, {\r\n\t\t\tnow: 0,\r\n\t\t\tfuture: false,\r\n\t\t\tprevStep: {}\r\n\t\t})).to.be.undefined\r\n\r\n\t\t// Past.\r\n\t\t// No next step.\r\n\t\t// The last step never changes.\r\n\t\tgetTimeToStepChange(undefined, 0, {\r\n\t\t\tnow: 0,\r\n\t\t\tfuture: false,\r\n\t\t\tisFirstStep: undefined\r\n\t\t}).should.equal(INFINITY)\r\n\r\n\t\t// Future.\r\n\t\t// Current step is seconds.\r\n\t\t// Updates after zero point.\r\n\t\tgetStepChangesAt({\r\n\t\t\tunit: 'second'\r\n\t\t}, 0, {\r\n\t\t\tnow: 0,\r\n\t\t\tfuture: true,\r\n\t\t\tprevStep: undefined\r\n\t\t}).should.equal(1)\r\n\r\n\t\t// Past.\r\n\t\t// Next step is minutes.\r\n\t\t// Already at zero point, so no need to update at zero point.\r\n\t\tgetStepChangesAt({\r\n\t\t\tminTime: 60,\r\n\t\t\tformatAs: 'minute'\r\n\t\t}, 0, {\r\n\t\t\tnow: 0,\r\n\t\t\tfuture: false,\r\n\t\t\tprevStep: {}\r\n\t\t}).should.equal(60 * 1000)\r\n\t})\r\n})"],"mappings":"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"}
1
+ {"version":3,"file":"getTimeToNextUpdate.test.js","names":["getTimeToNextUpdate","INFINITY","getStepChangesAt","getTimeToStepChange","describe","it","expect","minTime","format","now","future","isFirstStep","to","equal","Date","nextStep","formatAs","be","undefined","should","test","unit","prevStep"],"sources":["../../source/steps/getTimeToNextUpdate.test.js"],"sourcesContent":["import getTimeToNextUpdate, { INFINITY, getStepChangesAt, getTimeToStepChange } from './getTimeToNextUpdate.js'\r\n\r\ndescribe('getTimeToNextUpdate', () => {\r\n\tit('should return infinity when there are no more steps, and it does not format as a unit (past)', () => {\r\n\t\texpect(getTimeToNextUpdate(-4 * 60 * 1000, {\r\n\t\t\tminTime: 59.5,\r\n\t\t\tformat: () => ''\r\n\t\t}, {\r\n\t\t\tnow: 0,\r\n\t\t\tfuture: false,\r\n\t\t\tisFirstStep: true\r\n\t\t})).to.equal(INFINITY)\r\n\t})\r\n\r\n\tit('should support date argument', () => {\r\n\t\texpect(getTimeToNextUpdate(new Date(4 * 60 * 1000), {\r\n\t\t\tminTime: 60\r\n\t\t}, {\r\n\t\t\tnow: 0,\r\n\t\t\tfuture: true,\r\n\t\t\tisFirstStep: true,\r\n\t\t\tnextStep: {}\r\n\t\t})).to.equal(3 * 60 * 1000 + 1)\r\n\t})\r\n\r\n\tit('should return this step\\'s \"minTime\" timestamp (future)', () => {\r\n\t\texpect(getTimeToNextUpdate(4 * 60 * 1000, {\r\n\t\t\tminTime: 60,\r\n\t\t\tformat: () => ''\r\n\t\t}, {\r\n\t\t\tnow: 0,\r\n\t\t\tfuture: true,\r\n\t\t\tisFirstStep: true,\r\n\t\t\tnextStep: {\r\n\t\t\t\tformat: () => ''\r\n\t\t\t}\r\n\t\t})).to.equal(3 * 60 * 1000 + 1)\r\n\t})\r\n\r\n\tit('should return undefined when there is a next step and time to next update can not be reliably determined (formatAs) (past)', () => {\r\n\t\texpect(getTimeToNextUpdate(-4 * 60 * 1000, {\r\n\t\t\tminTime: 60,\r\n\t\t\tformatAs: 'minute'\r\n\t\t}, {\r\n\t\t\tnow: 0,\r\n\t\t\tfuture: false,\r\n\t\t\tisFirstStep: true,\r\n\t\t\tnextStep: {\r\n\t\t\t\tformatAs: 'unknown-time-unit'\r\n\t\t\t}\r\n\t\t})).to.be.undefined\r\n\t})\r\n\r\n\tit('should get time to next update (no next step) (past)', () => {\r\n\t\tgetTimeToNextUpdate(-4 * 60 * 1000, {\r\n\t\t\tformatAs: 'minute',\r\n\t\t\tminTime: 59.5\r\n\t\t}, {\r\n\t\t\tnow: 0,\r\n\t\t\tfuture: false,\r\n\t\t\tisFirstStep: true\r\n\t\t}).should.equal(0.5 * 60 * 1000)\r\n\t})\r\n\r\n\tit('should get time to next update (no next step) (future)', () => {\r\n\t\tgetTimeToNextUpdate(4 * 60 * 1000, {\r\n\t\t\tformatAs: 'minute',\r\n\t\t\tminTime: 59.5\r\n\t\t}, {\r\n\t\t\tnow: 0,\r\n\t\t\tfuture: true,\r\n\t\t\tisFirstStep: true\r\n\t\t}).should.equal(0.5 * 60 * 1000 + 1)\r\n\t})\r\n\r\n\tit('should get time to next update (has prev/next step without `minTime`) (future)', () => {\r\n\t\tgetTimeToNextUpdate(4 * 60 * 1000, {\r\n\t\t\tformatAs: 'minute',\r\n\t\t\tminTime: 59.5\r\n\t\t}, {\r\n\t\t\tnow: 0,\r\n\t\t\tfuture: true,\r\n\t\t\tisFirstStep: true,\r\n\t\t\tnextStep: {\r\n\t\t\t\tformatAs: 'hour',\r\n\t\t\t\ttest: () => false\r\n\t\t\t}\r\n\t\t}).should.equal(0.5 * 60 * 1000 + 1)\r\n\t})\r\n\r\n\tit('should get time to next update (has `getTimeToNextUpdate`) (past)', () => {\r\n\t\tgetTimeToNextUpdate(-4 * 60 * 1000, {\r\n\t\t\tformatAs: 'minute',\r\n\t\t\tminTime: 59.5,\r\n\t\t\tgetTimeToNextUpdate: () => 0.25 * 60 * 1000\r\n\t\t}, {\r\n\t\t\tnow: 0,\r\n\t\t\tfuture: false,\r\n\t\t\tisFirstStep: true\r\n\t\t}).should.equal(0.25 * 60 * 1000)\r\n\t})\r\n\r\n\tit('should get time to next update (has `getTimeToNextUpdate`) (future)', () => {\r\n\t\tgetTimeToNextUpdate(4 * 60 * 1000, {\r\n\t\t\tformatAs: 'minute',\r\n\t\t\tminTime: 59.5,\r\n\t\t\tgetTimeToNextUpdate: () => 0.25 * 60 * 1000\r\n\t\t}, {\r\n\t\t\tnow: 0,\r\n\t\t\tfuture: true,\r\n\t\t\tisFirstStep: true\r\n\t\t}).should.equal(0.25 * 60 * 1000)\r\n\t})\r\n\r\n\tit('should get time to next update (has both unit and prev/next steps with `minTime`) (returns time to \"minTime\" of next step) (past)', () => {\r\n\t\tgetTimeToNextUpdate(-59 * 60 * 1000, {\r\n\t\t\tformatAs: 'minute',\r\n\t\t\tminTime: 59.5\r\n\t\t}, {\r\n\t\t\tnow: 0,\r\n\t\t\tfuture: false,\r\n\t\t\tisFirstStep: true,\r\n\t\t\tnextStep: {\r\n\t\t\t\tformatAs: 'hour',\r\n\t\t\t\tminTime: 59.5 * 60\r\n\t\t\t}\r\n\t\t}).should.equal(0.5 * 60 * 1000)\r\n\t})\r\n\r\n\tit('should get time to next update (has no unit but has prev/next step with `minTime`) (returns time to \"minTime\" of next step) (past)', () => {\r\n\t\tgetTimeToNextUpdate(-59 * 60 * 1000, {\r\n\t\t\tformat: () => {},\r\n\t\t\tminTime: 59.5\r\n\t\t}, {\r\n\t\t\tnow: 0,\r\n\t\t\tfuture: false,\r\n\t\t\tisFirstStep: true,\r\n\t\t\tnextStep: {\r\n\t\t\t\tformatAs: 'hour',\r\n\t\t\t\tminTime: 59.5 * 60\r\n\t\t\t}\r\n\t\t}).should.equal(0.5 * 60 * 1000)\r\n\t})\r\n\r\n\tit('should get time to next update (will be outside of the first step) (future)', () => {\r\n\t\tgetTimeToNextUpdate(60 * 60 * 1000, {\r\n\t\t\tformatAs: 'hour',\r\n\t\t\tminTime: 60 * 60\r\n\t\t}, {\r\n\t\t\tnow: 0,\r\n\t\t\tfuture: true,\r\n\t\t\tisFirstStep: true\r\n\t\t}).should.equal(1)\r\n\t})\r\n})\r\n\r\ndescribe('getStepChangesAt', () => {\r\n\tit('should work for \"round\" steps', () => {\r\n\t\t// Future.\r\n\t\t// Is at zero point.\r\n\t\t// No next step.\r\n\t\t// No tickable unit.\r\n\t\t// Doesn't update.\r\n\t\tgetStepChangesAt({\r\n\t\t\tunit: 'now'\r\n\t\t}, 0, {\r\n\t\t\tnow: 0,\r\n\t\t\tfuture: false,\r\n\t\t\tprevStep: undefined\r\n\t\t}).should.equal(INFINITY)\r\n\r\n\t\t// Past.\r\n\t\t// Is at zero point.\r\n\t\t// The next step is seconds.\r\n\t\t// Updates at the next step.\r\n\t\tgetStepChangesAt({\r\n\t\t\tunit: 'second',\r\n\t\t\tminTime: 1\r\n\t\t}, 0, {\r\n\t\t\tnow: 0,\r\n\t\t\tfuture: false,\r\n\t\t\tprevStep: {}\r\n\t\t}).should.equal(1 * 1000)\r\n\r\n\t\t// Future.\r\n\t\t// Inside the first step.\r\n\t\t// Updates after zero point.\r\n\t\tgetStepChangesAt({\r\n\t\t\tunit: 'now'\r\n\t\t}, 0.9 * 1000, {\r\n\t\t\tnow: 0,\r\n\t\t\tfuture: true,\r\n\t\t\tprevStep: undefined\r\n\t\t}).should.equal(0.9 * 1000 + 1)\r\n\r\n\t\t// Future.\r\n\t\t// The first step doesn't start at 0.\r\n\t\t// Outside of the first step.\r\n\t\t// Updates right after zero point.\r\n\t\tgetTimeToStepChange(undefined, 0.9 * 1000, {\r\n\t\t\tnow: 0,\r\n\t\t\tfuture: true,\r\n\t\t\tprevStep: undefined\r\n\t\t}).should.equal(0.9 * 1000 + 1)\r\n\r\n\t\t// Past.\r\n\t\t// The current step is `undefined`.\r\n\t\t// The next step is the first step.\r\n\t\t// The first step doesn't start at 0.\r\n\t\t// Outside of the first step.\r\n\t\t// Updates at entering the first step.\r\n\t\tgetStepChangesAt({\r\n\t\t\tminTime: 1,\r\n\t\t\tunit: 'second'\r\n\t\t}, -0.9 * 1000, {\r\n\t\t\tnow: 0,\r\n\t\t\tfuture: false,\r\n\t\t\tprevStep: {}\r\n\t\t}).should.equal(0.1 * 1000)\r\n\r\n\t\t// Future.\r\n\t\t// The first step doesn't start at 0.\r\n\t\t// Will output empty string after it exits the current step.\r\n\t\tgetStepChangesAt({\r\n\t\t\tminTime: 1,\r\n\t\t\tunit: 'second'\r\n\t\t}, 1.1 * 1000, {\r\n\t\t\tnow: 0,\r\n\t\t\tfuture: true,\r\n\t\t\tprevStep: undefined\r\n\t\t}).should.equal(0.1 * 1000 + 1)\r\n\r\n\t\t// Past.\r\n\t\t// Next step is seconds.\r\n\t\t// The \"next\" step doesn't have `minTime`,\r\n\t\t// so \"time to next update\" couldn't be determined.\r\n\t\texpect(getStepChangesAt({\r\n\t\t\tunit: 'unknown-time-unit'\r\n\t\t}, 0, {\r\n\t\t\tnow: 0,\r\n\t\t\tfuture: false,\r\n\t\t\tprevStep: {}\r\n\t\t})).to.be.undefined\r\n\r\n\t\t// Past.\r\n\t\t// No next step.\r\n\t\t// The last step never changes.\r\n\t\tgetTimeToStepChange(undefined, 0, {\r\n\t\t\tnow: 0,\r\n\t\t\tfuture: false,\r\n\t\t\tisFirstStep: undefined\r\n\t\t}).should.equal(INFINITY)\r\n\r\n\t\t// Future.\r\n\t\t// Current step is seconds.\r\n\t\t// Updates after zero point.\r\n\t\tgetStepChangesAt({\r\n\t\t\tunit: 'second'\r\n\t\t}, 0, {\r\n\t\t\tnow: 0,\r\n\t\t\tfuture: true,\r\n\t\t\tprevStep: undefined\r\n\t\t}).should.equal(1)\r\n\r\n\t\t// Past.\r\n\t\t// Next step is minutes.\r\n\t\t// Already at zero point, so no need to update at zero point.\r\n\t\tgetStepChangesAt({\r\n\t\t\tminTime: 60,\r\n\t\t\tformatAs: 'minute'\r\n\t\t}, 0, {\r\n\t\t\tnow: 0,\r\n\t\t\tfuture: false,\r\n\t\t\tprevStep: {}\r\n\t\t}).should.equal(60 * 1000)\r\n\t})\r\n})"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,6 @@
1
1
  import { getSecondsInUnit } from './units.js';
2
2
  import { getRoundFunction, getDiffRatioToNextRoundedNumber } from '../round.js';
3
+
3
4
  /**
4
5
  * Gets the time to next update for a step with a time unit defined.
5
6
  * @param {string} unit
@@ -8,23 +9,19 @@ import { getRoundFunction, getDiffRatioToNextRoundedNumber } from '../round.js';
8
9
  * @param {string} [options.round] — (undocumented) Rounding mechanism.
9
10
  * @return {number} [timeToNextUpdate]
10
11
  */
11
-
12
12
  export default function getTimeToNextUpdateForUnit(unit, timestamp, _ref) {
13
13
  var now = _ref.now,
14
- round = _ref.round;
15
-
14
+ round = _ref.round;
16
15
  // For some units, like "now", there's no defined amount of seconds in them.
17
16
  if (!getSecondsInUnit(unit)) {
18
17
  // If there's no amount of seconds defined for this unit
19
18
  // then the update interval can't be determined reliably.
20
19
  return;
21
20
  }
22
-
23
21
  var unitDenominator = getSecondsInUnit(unit) * 1000;
24
22
  var future = timestamp > now;
25
23
  var preciseAmount = Math.abs(timestamp - now);
26
24
  var roundedAmount = getRoundFunction(round)(preciseAmount / unitDenominator) * unitDenominator;
27
-
28
25
  if (future) {
29
26
  if (roundedAmount > 0) {
30
27
  // Amount decreases with time.
@@ -34,16 +31,13 @@ export default function getTimeToNextUpdateForUnit(unit, timestamp, _ref) {
34
31
  // when "future" changes to "past".
35
32
  return preciseAmount - roundedAmount + 1;
36
33
  }
37
- } // Amount increases with time.
38
-
39
-
34
+ }
35
+ // Amount increases with time.
40
36
  return -(preciseAmount - roundedAmount) + getDiffToNextRoundedNumber(round, unitDenominator);
41
37
  }
42
-
43
38
  function getDiffToNextRoundedNumber(round, unitDenominator) {
44
39
  return getDiffRatioToNextRoundedNumber(round) * unitDenominator;
45
40
  }
46
-
47
41
  function getDiffToPreviousRoundedNumber(round, unitDenominator) {
48
42
  return (1 - getDiffRatioToNextRoundedNumber(round)) * unitDenominator + 1;
49
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getTimeToNextUpdateForUnit.js","names":["getSecondsInUnit","getRoundFunction","getDiffRatioToNextRoundedNumber","getTimeToNextUpdateForUnit","unit","timestamp","now","round","unitDenominator","future","preciseAmount","Math","abs","roundedAmount","getDiffToPreviousRoundedNumber","getDiffToNextRoundedNumber"],"sources":["../../source/steps/getTimeToNextUpdateForUnit.js"],"sourcesContent":["import { getSecondsInUnit } from './units.js'\r\nimport { getRoundFunction, getDiffRatioToNextRoundedNumber } from '../round.js'\r\n\r\n/**\r\n * Gets the time to next update for a step with a time unit defined.\r\n * @param {string} unit\r\n * @param {number} date — The date passed to `.format()`, converted to a timestamp.\r\n * @param {number} options.now\r\n * @param {string} [options.round] — (undocumented) Rounding mechanism.\r\n * @return {number} [timeToNextUpdate]\r\n */\r\nexport default function getTimeToNextUpdateForUnit(unit, timestamp, { now, round }) {\r\n\t// For some units, like \"now\", there's no defined amount of seconds in them.\r\n\tif (!getSecondsInUnit(unit)) {\r\n\t\t// If there's no amount of seconds defined for this unit\r\n\t\t// then the update interval can't be determined reliably.\r\n\t\treturn\r\n\t}\r\n\tconst unitDenominator = getSecondsInUnit(unit) * 1000\r\n\tconst future = timestamp > now\r\n\tconst preciseAmount = Math.abs(timestamp - now)\r\n\tconst roundedAmount = getRoundFunction(round)(preciseAmount / unitDenominator) * unitDenominator\r\n\tif (future) {\r\n\t\tif (roundedAmount > 0) {\r\n\t\t\t// Amount decreases with time.\r\n\t\t\treturn (preciseAmount - roundedAmount) +\r\n\t\t\t\tgetDiffToPreviousRoundedNumber(round, unitDenominator)\r\n\t\t} else {\r\n\t\t\t// Refresh right after the zero point,\r\n\t\t\t// when \"future\" changes to \"past\".\r\n\t\t\treturn (preciseAmount - roundedAmount) + 1\r\n\t\t}\r\n\t}\r\n \t// Amount increases with time.\r\n\treturn -(preciseAmount - roundedAmount) + getDiffToNextRoundedNumber(round, unitDenominator)\r\n}\r\n\r\nfunction getDiffToNextRoundedNumber(round, unitDenominator) {\r\n\treturn getDiffRatioToNextRoundedNumber(round) * unitDenominator\r\n}\r\n\r\nfunction getDiffToPreviousRoundedNumber(round, unitDenominator) {\r\n\treturn (1 - getDiffRatioToNextRoundedNumber(round)) * unitDenominator + 1\r\n}"],"mappings":"AAAA,SAASA,gBAAT,QAAiC,YAAjC;AACA,SAASC,gBAAT,EAA2BC,+BAA3B,QAAkE,aAAlE;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,eAAe,SAASC,0BAAT,CAAoCC,IAApC,EAA0CC,SAA1C,QAAqE;EAAA,IAAdC,GAAc,QAAdA,GAAc;EAAA,IAATC,KAAS,QAATA,KAAS;;EACnF;EACA,IAAI,CAACP,gBAAgB,CAACI,IAAD,CAArB,EAA6B;IAC5B;IACA;IACA;EACA;;EACD,IAAMI,eAAe,GAAGR,gBAAgB,CAACI,IAAD,CAAhB,GAAyB,IAAjD;EACA,IAAMK,MAAM,GAAGJ,SAAS,GAAGC,GAA3B;EACA,IAAMI,aAAa,GAAGC,IAAI,CAACC,GAAL,CAASP,SAAS,GAAGC,GAArB,CAAtB;EACA,IAAMO,aAAa,GAAGZ,gBAAgB,CAACM,KAAD,CAAhB,CAAwBG,aAAa,GAAGF,eAAxC,IAA2DA,eAAjF;;EACA,IAAIC,MAAJ,EAAY;IACX,IAAII,aAAa,GAAG,CAApB,EAAuB;MACtB;MACA,OAAQH,aAAa,GAAGG,aAAjB,GACNC,8BAA8B,CAACP,KAAD,EAAQC,eAAR,CAD/B;IAEA,CAJD,MAIO;MACN;MACA;MACA,OAAQE,aAAa,GAAGG,aAAjB,GAAkC,CAAzC;IACA;EACD,CArBkF,CAsBlF;;;EACD,OAAO,EAAEH,aAAa,GAAGG,aAAlB,IAAmCE,0BAA0B,CAACR,KAAD,EAAQC,eAAR,CAApE;AACA;;AAED,SAASO,0BAAT,CAAoCR,KAApC,EAA2CC,eAA3C,EAA4D;EAC3D,OAAON,+BAA+B,CAACK,KAAD,CAA/B,GAAyCC,eAAhD;AACA;;AAED,SAASM,8BAAT,CAAwCP,KAAxC,EAA+CC,eAA/C,EAAgE;EAC/D,OAAO,CAAC,IAAIN,+BAA+B,CAACK,KAAD,CAApC,IAA+CC,eAA/C,GAAiE,CAAxE;AACA"}
1
+ {"version":3,"file":"getTimeToNextUpdateForUnit.js","names":["getSecondsInUnit","getRoundFunction","getDiffRatioToNextRoundedNumber","getTimeToNextUpdateForUnit","unit","timestamp","_ref","now","round","unitDenominator","future","preciseAmount","Math","abs","roundedAmount","getDiffToPreviousRoundedNumber","getDiffToNextRoundedNumber"],"sources":["../../source/steps/getTimeToNextUpdateForUnit.js"],"sourcesContent":["import { getSecondsInUnit } from './units.js'\r\nimport { getRoundFunction, getDiffRatioToNextRoundedNumber } from '../round.js'\r\n\r\n/**\r\n * Gets the time to next update for a step with a time unit defined.\r\n * @param {string} unit\r\n * @param {number} date — The date passed to `.format()`, converted to a timestamp.\r\n * @param {number} options.now\r\n * @param {string} [options.round] — (undocumented) Rounding mechanism.\r\n * @return {number} [timeToNextUpdate]\r\n */\r\nexport default function getTimeToNextUpdateForUnit(unit, timestamp, { now, round }) {\r\n\t// For some units, like \"now\", there's no defined amount of seconds in them.\r\n\tif (!getSecondsInUnit(unit)) {\r\n\t\t// If there's no amount of seconds defined for this unit\r\n\t\t// then the update interval can't be determined reliably.\r\n\t\treturn\r\n\t}\r\n\tconst unitDenominator = getSecondsInUnit(unit) * 1000\r\n\tconst future = timestamp > now\r\n\tconst preciseAmount = Math.abs(timestamp - now)\r\n\tconst roundedAmount = getRoundFunction(round)(preciseAmount / unitDenominator) * unitDenominator\r\n\tif (future) {\r\n\t\tif (roundedAmount > 0) {\r\n\t\t\t// Amount decreases with time.\r\n\t\t\treturn (preciseAmount - roundedAmount) +\r\n\t\t\t\tgetDiffToPreviousRoundedNumber(round, unitDenominator)\r\n\t\t} else {\r\n\t\t\t// Refresh right after the zero point,\r\n\t\t\t// when \"future\" changes to \"past\".\r\n\t\t\treturn (preciseAmount - roundedAmount) + 1\r\n\t\t}\r\n\t}\r\n \t// Amount increases with time.\r\n\treturn -(preciseAmount - roundedAmount) + getDiffToNextRoundedNumber(round, unitDenominator)\r\n}\r\n\r\nfunction getDiffToNextRoundedNumber(round, unitDenominator) {\r\n\treturn getDiffRatioToNextRoundedNumber(round) * unitDenominator\r\n}\r\n\r\nfunction getDiffToPreviousRoundedNumber(round, unitDenominator) {\r\n\treturn (1 - getDiffRatioToNextRoundedNumber(round)) * unitDenominator + 1\r\n}"],"mappings":"AAAA,SAASA,gBAAgB,QAAQ,YAAY;AAC7C,SAASC,gBAAgB,EAAEC,+BAA+B,QAAQ,aAAa;;AAE/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,0BAA0BA,CAACC,IAAI,EAAEC,SAAS,EAAAC,IAAA,EAAkB;EAAA,IAAdC,GAAG,GAAAD,IAAA,CAAHC,GAAG;IAAEC,KAAK,GAAAF,IAAA,CAALE,KAAK;EAC/E;EACA,IAAI,CAACR,gBAAgB,CAACI,IAAI,CAAC,EAAE;IAC5B;IACA;IACA;EACD;EACA,IAAMK,eAAe,GAAGT,gBAAgB,CAACI,IAAI,CAAC,GAAG,IAAI;EACrD,IAAMM,MAAM,GAAGL,SAAS,GAAGE,GAAG;EAC9B,IAAMI,aAAa,GAAGC,IAAI,CAACC,GAAG,CAACR,SAAS,GAAGE,GAAG,CAAC;EAC/C,IAAMO,aAAa,GAAGb,gBAAgB,CAACO,KAAK,CAAC,CAACG,aAAa,GAAGF,eAAe,CAAC,GAAGA,eAAe;EAChG,IAAIC,MAAM,EAAE;IACX,IAAII,aAAa,GAAG,CAAC,EAAE;MACtB;MACA,OAAQH,aAAa,GAAGG,aAAa,GACpCC,8BAA8B,CAACP,KAAK,EAAEC,eAAe,CAAC;IACxD,CAAC,MAAM;MACN;MACA;MACA,OAAQE,aAAa,GAAGG,aAAa,GAAI,CAAC;IAC3C;EACD;EACC;EACD,OAAO,EAAEH,aAAa,GAAGG,aAAa,CAAC,GAAGE,0BAA0B,CAACR,KAAK,EAAEC,eAAe,CAAC;AAC7F;AAEA,SAASO,0BAA0BA,CAACR,KAAK,EAAEC,eAAe,EAAE;EAC3D,OAAOP,+BAA+B,CAACM,KAAK,CAAC,GAAGC,eAAe;AAChE;AAEA,SAASM,8BAA8BA,CAACP,KAAK,EAAEC,eAAe,EAAE;EAC/D,OAAO,CAAC,CAAC,GAAGP,+BAA+B,CAACM,KAAK,CAAC,IAAIC,eAAe,GAAG,CAAC;AAC1E","ignoreList":[]}
@@ -17,7 +17,6 @@ describe('getTimeToNextUpdateForUnit', function () {
17
17
  now: 0
18
18
  }).should.equal(expected * 1000 + (addOneMs ? 1 : 0));
19
19
  };
20
-
21
20
  test(9, 0.5);
22
21
  test(9.1, 0.6);
23
22
  test(9.4, 0.9);
@@ -39,7 +38,6 @@ describe('getTimeToNextUpdateForUnit', function () {
39
38
  now: 0
40
39
  }).should.equal(expected * 1000);
41
40
  };
42
-
43
41
  test(10, 0.5);
44
42
  test(9.9, 0.6);
45
43
  test(9.5, 1);
@@ -61,7 +59,6 @@ describe('getTimeToNextUpdateForUnit', function () {
61
59
  round: 'floor'
62
60
  }).should.equal(expected * 1000 + (addOneMs ? 1 : 0));
63
61
  };
64
-
65
62
  test(9, 0);
66
63
  test(9.1, 0.1);
67
64
  test(9.4, 0.4);
@@ -83,7 +80,6 @@ describe('getTimeToNextUpdateForUnit', function () {
83
80
  round: 'floor'
84
81
  }).should.equal(expected * 1000);
85
82
  };
86
-
87
83
  test(10, 1);
88
84
  test(9.9, 0.1);
89
85
  test(9.5, 0.5);
@@ -1 +1 @@
1
- {"version":3,"file":"getTimeToNextUpdateForUnit.test.js","names":["getTimeToNextUpdateForUnit","describe","it","expect","to","be","undefined","Date","now","should","equal","test","seconds","expected","addOneMs","round"],"sources":["../../source/steps/getTimeToNextUpdateForUnit.test.js"],"sourcesContent":["import getTimeToNextUpdateForUnit from './getTimeToNextUpdateForUnit.js'\r\n\r\ndescribe('getTimeToNextUpdateForUnit', () => {\r\n\tit('should return undefined for unknown units', () => {\r\n\t\texpect(getTimeToNextUpdateForUnit('now', 0, {})).to.be.undefined\r\n\t})\r\n\r\n\tit('should support Date argument', () => {\r\n\t\tgetTimeToNextUpdateForUnit('second', new Date(0), {\r\n\t\t\t// future: false,\r\n\t\t\tnow: 0\r\n\t\t}).should.equal(500)\r\n\t})\r\n\r\n\tit('should get time to next update for unit (future)', () => {\r\n\t\tconst test = (seconds, expected, addOneMs = true) => {\r\n\t\t\tgetTimeToNextUpdateForUnit('second', seconds * 1000, {\r\n\t\t\t\t// future: true,\r\n\t\t\t\tnow: 0\r\n\t\t\t}).should.equal(expected * 1000 + (addOneMs ? 1 : 0))\r\n\t\t}\r\n\r\n\t\ttest(9, 0.5)\r\n\t\ttest(9.1, 0.6)\r\n\t\ttest(9.4, 0.9)\r\n\t\ttest(9.5, 0)\r\n\t\ttest(9.9, 0.4)\r\n\t\ttest(10, 0.5)\r\n\r\n\t\ttest(1.1, 0.6)\r\n\t\ttest(1, 0.5)\r\n\t\ttest(0.9, 0.4)\r\n\t\ttest(0.5, 0)\r\n\t\ttest(0.4, 0.4)\r\n\t\ttest(0, 0.5, false)\r\n\t})\r\n\r\n\tit('should get time to next update for unit (past)', () => {\r\n\t\tconst test = (seconds, expected, addOneMs = true) => {\r\n\t\t\tgetTimeToNextUpdateForUnit('second', -1 * seconds * 1000, {\r\n\t\t\t\t// future: false,\r\n\t\t\t\tnow: 0\r\n\t\t\t}).should.equal(expected * 1000)\r\n\t\t}\r\n\r\n\t\ttest(10, 0.5)\r\n\t\ttest(9.9, 0.6)\r\n\t\ttest(9.5, 1)\r\n\t\ttest(9.4, 0.1)\r\n\t\ttest(9.1, 0.4)\r\n\t\ttest(9, 0.5)\r\n\r\n\t\ttest(0, 0.5, false)\r\n\t\ttest(0.5, 1, false)\r\n\t\ttest(0.9, 0.6, false)\r\n\t\ttest(1, 0.5, false)\r\n\t\ttest(1.1, 0.4, false)\r\n\t})\r\n\r\n\tit('should support \"floor\" rounding (future)', () => {\r\n\t\tconst test = (seconds, expected, addOneMs = true) => {\r\n\t\t\tgetTimeToNextUpdateForUnit('second', seconds * 1000, {\r\n\t\t\t\t// future: true,\r\n\t\t\t\tnow: 0,\r\n\t\t\t\tround: 'floor'\r\n\t\t\t}).should.equal(expected * 1000 + (addOneMs ? 1 : 0))\r\n\t\t}\r\n\r\n\t\ttest(9, 0)\r\n\t\ttest(9.1, 0.1)\r\n\t\ttest(9.4, 0.4)\r\n\t\ttest(9.5, 0.5)\r\n\t\ttest(9.9, 0.9)\r\n\t\ttest(10, 0)\r\n\r\n\t\ttest(1.1, 0.1)\r\n\t\ttest(1, 0)\r\n\t\ttest(0.9, 0.9)\r\n\t\ttest(0.5, 0.5)\r\n\t\ttest(0.1, 0.1)\r\n\t\ttest(0, 1, false)\r\n\t})\r\n\r\n\tit('should support \"floor\" rounding (past)', () => {\r\n\t\tconst test = (seconds, expected) => {\r\n\t\t\tgetTimeToNextUpdateForUnit('second', -1 * seconds * 1000, {\r\n\t\t\t\t// future: false,\r\n\t\t\t\tnow: 0,\r\n\t\t\t\tround: 'floor'\r\n\t\t\t}).should.equal(expected * 1000)\r\n\t\t}\r\n\r\n\t\ttest(10, 1)\r\n\t\ttest(9.9, 0.1)\r\n\t\ttest(9.5, 0.5)\r\n\t\ttest(9.4, 0.6)\r\n\t\ttest(9.1, 0.9)\r\n\t\ttest(9, 1)\r\n\r\n\t\ttest(0, 1)\r\n\t\ttest(0.5, 0.5)\r\n\t\ttest(0.9, 0.1)\r\n\t\ttest(1, 1)\r\n\t\ttest(1.1, 0.9)\r\n\t})\r\n})"],"mappings":"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"}
1
+ {"version":3,"file":"getTimeToNextUpdateForUnit.test.js","names":["getTimeToNextUpdateForUnit","describe","it","expect","to","be","undefined","Date","now","should","equal","test","seconds","expected","addOneMs","arguments","length","round"],"sources":["../../source/steps/getTimeToNextUpdateForUnit.test.js"],"sourcesContent":["import getTimeToNextUpdateForUnit from './getTimeToNextUpdateForUnit.js'\r\n\r\ndescribe('getTimeToNextUpdateForUnit', () => {\r\n\tit('should return undefined for unknown units', () => {\r\n\t\texpect(getTimeToNextUpdateForUnit('now', 0, {})).to.be.undefined\r\n\t})\r\n\r\n\tit('should support Date argument', () => {\r\n\t\tgetTimeToNextUpdateForUnit('second', new Date(0), {\r\n\t\t\t// future: false,\r\n\t\t\tnow: 0\r\n\t\t}).should.equal(500)\r\n\t})\r\n\r\n\tit('should get time to next update for unit (future)', () => {\r\n\t\tconst test = (seconds, expected, addOneMs = true) => {\r\n\t\t\tgetTimeToNextUpdateForUnit('second', seconds * 1000, {\r\n\t\t\t\t// future: true,\r\n\t\t\t\tnow: 0\r\n\t\t\t}).should.equal(expected * 1000 + (addOneMs ? 1 : 0))\r\n\t\t}\r\n\r\n\t\ttest(9, 0.5)\r\n\t\ttest(9.1, 0.6)\r\n\t\ttest(9.4, 0.9)\r\n\t\ttest(9.5, 0)\r\n\t\ttest(9.9, 0.4)\r\n\t\ttest(10, 0.5)\r\n\r\n\t\ttest(1.1, 0.6)\r\n\t\ttest(1, 0.5)\r\n\t\ttest(0.9, 0.4)\r\n\t\ttest(0.5, 0)\r\n\t\ttest(0.4, 0.4)\r\n\t\ttest(0, 0.5, false)\r\n\t})\r\n\r\n\tit('should get time to next update for unit (past)', () => {\r\n\t\tconst test = (seconds, expected, addOneMs = true) => {\r\n\t\t\tgetTimeToNextUpdateForUnit('second', -1 * seconds * 1000, {\r\n\t\t\t\t// future: false,\r\n\t\t\t\tnow: 0\r\n\t\t\t}).should.equal(expected * 1000)\r\n\t\t}\r\n\r\n\t\ttest(10, 0.5)\r\n\t\ttest(9.9, 0.6)\r\n\t\ttest(9.5, 1)\r\n\t\ttest(9.4, 0.1)\r\n\t\ttest(9.1, 0.4)\r\n\t\ttest(9, 0.5)\r\n\r\n\t\ttest(0, 0.5, false)\r\n\t\ttest(0.5, 1, false)\r\n\t\ttest(0.9, 0.6, false)\r\n\t\ttest(1, 0.5, false)\r\n\t\ttest(1.1, 0.4, false)\r\n\t})\r\n\r\n\tit('should support \"floor\" rounding (future)', () => {\r\n\t\tconst test = (seconds, expected, addOneMs = true) => {\r\n\t\t\tgetTimeToNextUpdateForUnit('second', seconds * 1000, {\r\n\t\t\t\t// future: true,\r\n\t\t\t\tnow: 0,\r\n\t\t\t\tround: 'floor'\r\n\t\t\t}).should.equal(expected * 1000 + (addOneMs ? 1 : 0))\r\n\t\t}\r\n\r\n\t\ttest(9, 0)\r\n\t\ttest(9.1, 0.1)\r\n\t\ttest(9.4, 0.4)\r\n\t\ttest(9.5, 0.5)\r\n\t\ttest(9.9, 0.9)\r\n\t\ttest(10, 0)\r\n\r\n\t\ttest(1.1, 0.1)\r\n\t\ttest(1, 0)\r\n\t\ttest(0.9, 0.9)\r\n\t\ttest(0.5, 0.5)\r\n\t\ttest(0.1, 0.1)\r\n\t\ttest(0, 1, false)\r\n\t})\r\n\r\n\tit('should support \"floor\" rounding (past)', () => {\r\n\t\tconst test = (seconds, expected) => {\r\n\t\t\tgetTimeToNextUpdateForUnit('second', -1 * seconds * 1000, {\r\n\t\t\t\t// future: false,\r\n\t\t\t\tnow: 0,\r\n\t\t\t\tround: 'floor'\r\n\t\t\t}).should.equal(expected * 1000)\r\n\t\t}\r\n\r\n\t\ttest(10, 1)\r\n\t\ttest(9.9, 0.1)\r\n\t\ttest(9.5, 0.5)\r\n\t\ttest(9.4, 0.6)\r\n\t\ttest(9.1, 0.9)\r\n\t\ttest(9, 1)\r\n\r\n\t\ttest(0, 1)\r\n\t\ttest(0.5, 0.5)\r\n\t\ttest(0.9, 0.1)\r\n\t\ttest(1, 1)\r\n\t\ttest(1.1, 0.9)\r\n\t})\r\n})"],"mappings":"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","ignoreList":[]}