@idlebox/common 1.4.19 → 1.4.21

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 (476) hide show
  1. package/lib/array/{arrayDiff.d.ts → diff.d.ts} +1 -1
  2. package/lib/array/diff.d.ts.map +1 -0
  3. package/lib/array/{arrayDiff.js → diff.js} +1 -1
  4. package/lib/array/diff.js.map +1 -0
  5. package/lib/array/{arraySame.d.ts → is-same.d.ts} +1 -1
  6. package/lib/array/is-same.d.ts.map +1 -0
  7. package/lib/array/{arraySame.js → is-same.js} +1 -1
  8. package/lib/array/is-same.js.map +1 -0
  9. package/lib/array/{normalizeArray.d.ts → normalize.d.ts} +1 -1
  10. package/lib/array/normalize.d.ts.map +1 -0
  11. package/lib/array/{normalizeArray.js → normalize.js} +1 -1
  12. package/lib/array/normalize.js.map +1 -0
  13. package/lib/array/{sortAlpha.d.ts → sort-alpha.d.ts} +1 -1
  14. package/lib/array/sort-alpha.d.ts.map +1 -0
  15. package/lib/array/{sortAlpha.js → sort-alpha.js} +1 -1
  16. package/lib/array/sort-alpha.js.map +1 -0
  17. package/lib/array/{arrayUnique.d.ts → unique.d.ts} +1 -1
  18. package/lib/array/unique.d.ts.map +1 -0
  19. package/lib/array/{arrayUnique.js → unique.js} +1 -1
  20. package/lib/array/unique.js.map +1 -0
  21. package/lib/autoindex.d.ts +148 -135
  22. package/lib/autoindex.d.ts.map +1 -1
  23. package/lib/autoindex.js +177 -153
  24. package/lib/autoindex.js.map +1 -1
  25. package/lib/date/{isInvalid.d.ts → is-invalid.d.ts} +1 -1
  26. package/lib/date/is-invalid.d.ts.map +1 -0
  27. package/lib/date/{isInvalid.js → is-invalid.js} +1 -1
  28. package/lib/date/is-invalid.js.map +1 -0
  29. package/lib/date/{timeString.d.ts → to-string.d.ts} +5 -5
  30. package/lib/date/to-string.d.ts.map +1 -0
  31. package/lib/date/{timeString.js → to-string.js} +24 -25
  32. package/lib/date/to-string.js.map +1 -0
  33. package/lib/debugging/{tryInspect.d.ts → inspect.d.ts} +2 -2
  34. package/lib/debugging/inspect.d.ts.map +1 -0
  35. package/lib/debugging/{tryInspect.js → inspect.js} +1 -1
  36. package/lib/debugging/inspect.js.map +1 -0
  37. package/lib/debugging/object-with-name.d.ts +38 -0
  38. package/lib/debugging/object-with-name.d.ts.map +1 -0
  39. package/lib/debugging/object-with-name.js +41 -0
  40. package/lib/debugging/object-with-name.js.map +1 -0
  41. package/lib/debugging/serializable.js +1 -1
  42. package/lib/debugging/serializable.js.map +1 -1
  43. package/lib/error/convert-unknown.d.ts +2 -0
  44. package/lib/error/convert-unknown.d.ts.map +1 -0
  45. package/lib/error/convert-unknown.js +9 -0
  46. package/lib/error/convert-unknown.js.map +1 -0
  47. package/lib/error/{getFrame.d.ts → get-frame.d.ts} +2 -2
  48. package/lib/error/get-frame.d.ts.map +1 -0
  49. package/lib/error/{getFrame.js → get-frame.js} +1 -1
  50. package/lib/error/get-frame.js.map +1 -0
  51. package/lib/error/{pretty.d.ts → pretty.nodejs.d.ts} +2 -1
  52. package/lib/error/pretty.nodejs.d.ts.map +1 -0
  53. package/lib/error/{pretty.js → pretty.nodejs.js} +3 -3
  54. package/lib/error/pretty.nodejs.js.map +1 -0
  55. package/lib/error/{stackTrace.d.ts → stack-trace.d.ts} +1 -1
  56. package/lib/error/stack-trace.d.ts.map +1 -0
  57. package/lib/error/{stackTrace.js → stack-trace.js} +1 -1
  58. package/lib/error/stack-trace.js.map +1 -0
  59. package/lib/function/{asyncCallbackList.d.ts → callback-list.async.d.ts} +3 -3
  60. package/lib/function/callback-list.async.d.ts.map +1 -0
  61. package/lib/function/{asyncCallbackList.js → callback-list.async.js} +3 -7
  62. package/lib/function/callback-list.async.js.map +1 -0
  63. package/lib/function/{callbackList.d.ts → callback-list.d.ts} +1 -1
  64. package/lib/function/callback-list.d.ts.map +1 -0
  65. package/lib/function/callback-list.delay.d.ts +15 -0
  66. package/lib/function/callback-list.delay.d.ts.map +1 -0
  67. package/lib/function/callback-list.delay.js +22 -0
  68. package/lib/function/callback-list.delay.js.map +1 -0
  69. package/lib/function/{callbackList.js → callback-list.js} +2 -2
  70. package/lib/function/callback-list.js.map +1 -0
  71. package/lib/function/noop.d.ts +2 -0
  72. package/lib/function/noop.d.ts.map +1 -0
  73. package/lib/function/noop.js +2 -0
  74. package/lib/function/noop.js.map +1 -0
  75. package/lib/legacy/rename.d.ts +13 -0
  76. package/lib/legacy/rename.d.ts.map +1 -0
  77. package/lib/legacy/rename.js +13 -0
  78. package/lib/legacy/rename.js.map +1 -0
  79. package/lib/lifecycle/cancellation/driver.browser.d.ts.map +1 -0
  80. package/lib/lifecycle/cancellation/driver.browser.js.map +1 -0
  81. package/lib/lifecycle/cancellation/driver.common.d.ts.map +1 -0
  82. package/lib/lifecycle/{promise/cancellationToken → cancellation}/driver.common.js +1 -1
  83. package/lib/lifecycle/cancellation/driver.common.js.map +1 -0
  84. package/lib/lifecycle/{promise/cancellationToken → cancellation}/source.d.ts +3 -3
  85. package/lib/lifecycle/cancellation/source.d.ts.map +1 -0
  86. package/lib/lifecycle/{promise/cancellationToken → cancellation}/source.js +2 -2
  87. package/lib/lifecycle/cancellation/source.js.map +1 -0
  88. package/lib/lifecycle/dispose/async-disposable.d.ts +17 -0
  89. package/lib/lifecycle/dispose/async-disposable.d.ts.map +1 -0
  90. package/lib/lifecycle/dispose/async-disposable.js +42 -0
  91. package/lib/lifecycle/dispose/async-disposable.js.map +1 -0
  92. package/lib/lifecycle/dispose/bridges/function.d.ts +17 -0
  93. package/lib/lifecycle/dispose/bridges/function.d.ts.map +1 -0
  94. package/lib/lifecycle/dispose/bridges/function.js +29 -0
  95. package/lib/lifecycle/dispose/bridges/function.js.map +1 -0
  96. package/lib/lifecycle/dispose/bridges/native.d.ts +10 -0
  97. package/lib/lifecycle/dispose/bridges/native.d.ts.map +1 -0
  98. package/lib/lifecycle/dispose/bridges/native.js +13 -0
  99. package/lib/lifecycle/dispose/bridges/native.js.map +1 -0
  100. package/lib/lifecycle/dispose/bridges/streams.d.ts +21 -0
  101. package/lib/lifecycle/dispose/bridges/streams.d.ts.map +1 -0
  102. package/lib/lifecycle/dispose/bridges/streams.js +60 -0
  103. package/lib/lifecycle/dispose/bridges/streams.js.map +1 -0
  104. package/lib/lifecycle/dispose/debug.js +17 -3
  105. package/lib/lifecycle/dispose/debug.js.map +1 -1
  106. package/lib/lifecycle/dispose/disposable.d.ts +22 -0
  107. package/lib/lifecycle/dispose/disposable.d.ts.map +1 -0
  108. package/lib/lifecycle/dispose/disposable.js +120 -0
  109. package/lib/lifecycle/dispose/disposable.js.map +1 -0
  110. package/lib/lifecycle/dispose/disposableEvent.d.ts +9 -14
  111. package/lib/lifecycle/dispose/disposableEvent.d.ts.map +1 -1
  112. package/lib/lifecycle/dispose/disposableEvent.js +14 -64
  113. package/lib/lifecycle/dispose/disposableEvent.js.map +1 -1
  114. package/lib/lifecycle/dispose/disposedError.d.ts +9 -4
  115. package/lib/lifecycle/dispose/disposedError.d.ts.map +1 -1
  116. package/lib/lifecycle/dispose/disposedError.js +28 -13
  117. package/lib/lifecycle/dispose/disposedError.js.map +1 -1
  118. package/lib/lifecycle/dispose/sync-disposable.d.ts +21 -0
  119. package/lib/lifecycle/dispose/sync-disposable.d.ts.map +1 -0
  120. package/lib/lifecycle/dispose/sync-disposable.js +52 -0
  121. package/lib/lifecycle/dispose/sync-disposable.js.map +1 -0
  122. package/lib/lifecycle/event/event.d.ts +18 -33
  123. package/lib/lifecycle/event/event.d.ts.map +1 -1
  124. package/lib/lifecycle/event/event.js +75 -64
  125. package/lib/lifecycle/event/event.js.map +1 -1
  126. package/lib/lifecycle/event/memorized.d.ts +4 -3
  127. package/lib/lifecycle/event/memorized.d.ts.map +1 -1
  128. package/lib/lifecycle/event/memorized.js +9 -10
  129. package/lib/lifecycle/event/memorized.js.map +1 -1
  130. package/lib/lifecycle/event/type.d.ts +47 -0
  131. package/lib/lifecycle/event/type.d.ts.map +1 -0
  132. package/lib/lifecycle/event/type.js +2 -0
  133. package/lib/lifecycle/event/type.js.map +1 -0
  134. package/lib/lifecycle/{dispose/lifecycle.global.d.ts → global/global-lifecycle.d.ts} +3 -15
  135. package/lib/lifecycle/global/global-lifecycle.d.ts.map +1 -0
  136. package/lib/lifecycle/{dispose/lifecycle.global.js → global/global-lifecycle.js} +8 -21
  137. package/lib/lifecycle/global/global-lifecycle.js.map +1 -0
  138. package/lib/log/logger.js +1 -1
  139. package/lib/log/logger.js.map +1 -1
  140. package/lib/{mapSet/customSet.d.ts → map-and-set/custom-set.d.ts} +4 -8
  141. package/lib/map-and-set/custom-set.d.ts.map +1 -0
  142. package/lib/{mapSet/customSet.js → map-and-set/custom-set.js} +6 -20
  143. package/lib/map-and-set/custom-set.js.map +1 -0
  144. package/lib/map-and-set/required-map.d.ts +28 -0
  145. package/lib/map-and-set/required-map.d.ts.map +1 -0
  146. package/lib/map-and-set/required-map.js +42 -0
  147. package/lib/map-and-set/required-map.js.map +1 -0
  148. package/lib/object/objectSame.js +1 -1
  149. package/lib/object/objectSame.js.map +1 -1
  150. package/lib/path/pathArray.js +1 -1
  151. package/lib/path/pathArray.js.map +1 -1
  152. package/lib/path/pathCalc.d.ts +10 -0
  153. package/lib/path/pathCalc.d.ts.map +1 -0
  154. package/lib/path/pathCalc.js +17 -0
  155. package/lib/path/pathCalc.js.map +1 -0
  156. package/lib/platform/compile.d.ts +7 -0
  157. package/lib/platform/compile.d.ts.map +1 -0
  158. package/lib/platform/compile.js +2 -0
  159. package/lib/platform/compile.js.map +1 -0
  160. package/lib/platform/globalSingleton.js +1 -1
  161. package/lib/platform/globalSingleton.js.map +1 -1
  162. package/lib/platform/os.d.ts.map +1 -1
  163. package/lib/platform/os.js +1 -1
  164. package/lib/platform/os.js.map +1 -1
  165. package/lib/promise/{awaitIterator.d.ts → await-iterator.d.ts} +1 -1
  166. package/lib/promise/await-iterator.d.ts.map +1 -0
  167. package/lib/promise/{awaitIterator.js → await-iterator.js} +1 -1
  168. package/lib/promise/await-iterator.js.map +1 -0
  169. package/lib/{lifecycle/promise/deferredPromise.d.ts → promise/deferred-promise.d.ts} +14 -6
  170. package/lib/promise/deferred-promise.d.ts.map +1 -0
  171. package/lib/{lifecycle/promise/deferredPromise.js → promise/deferred-promise.js} +57 -16
  172. package/lib/promise/deferred-promise.js.map +1 -0
  173. package/lib/promise/{promiseBool.d.ts → promise-bool.d.ts} +1 -1
  174. package/lib/promise/promise-bool.d.ts.map +1 -0
  175. package/lib/promise/{promiseBool.js → promise-bool.js} +1 -1
  176. package/lib/promise/promise-bool.js.map +1 -0
  177. package/lib/promise/{promiseCollection.d.ts → promise-list.d.ts} +3 -3
  178. package/lib/promise/promise-list.d.ts.map +1 -0
  179. package/lib/promise/{promiseCollection.js → promise-list.js} +3 -3
  180. package/lib/promise/promise-list.js.map +1 -0
  181. package/lib/re-export.d.ts +2 -0
  182. package/lib/re-export.d.ts.map +1 -0
  183. package/lib/re-export.js +2 -0
  184. package/lib/re-export.js.map +1 -0
  185. package/lib/reflection/classes/pointer.d.ts +5 -0
  186. package/lib/reflection/classes/pointer.d.ts.map +1 -0
  187. package/lib/reflection/classes/pointer.js +49 -0
  188. package/lib/reflection/classes/pointer.js.map +1 -0
  189. package/lib/reflection/classes/singleton.d.ts +10 -2
  190. package/lib/reflection/classes/singleton.d.ts.map +1 -1
  191. package/lib/reflection/classes/singleton.js +29 -21
  192. package/lib/reflection/classes/singleton.js.map +1 -1
  193. package/lib/reflection/methods/bind.d.ts +1 -4
  194. package/lib/reflection/methods/bind.d.ts.map +1 -1
  195. package/lib/reflection/methods/bind.js +17 -23
  196. package/lib/reflection/methods/bind.js.map +1 -1
  197. package/lib/reflection/methods/memorize.d.ts +7 -4
  198. package/lib/reflection/methods/memorize.d.ts.map +1 -1
  199. package/lib/reflection/methods/memorize.js +27 -23
  200. package/lib/reflection/methods/memorize.js.map +1 -1
  201. package/lib/schedule/extendable-timer.d.ts +16 -0
  202. package/lib/schedule/extendable-timer.d.ts.map +1 -0
  203. package/lib/schedule/extendable-timer.js +45 -0
  204. package/lib/schedule/extendable-timer.js.map +1 -0
  205. package/lib/{lifecycle/timeout → schedule}/interval.d.ts +3 -3
  206. package/lib/schedule/interval.d.ts.map +1 -0
  207. package/lib/{lifecycle/timeout → schedule}/interval.js +3 -3
  208. package/lib/schedule/interval.js.map +1 -0
  209. package/lib/schedule/local-type.d.ts +3 -0
  210. package/lib/schedule/local-type.d.ts.map +1 -0
  211. package/lib/schedule/local-type.js +2 -0
  212. package/lib/schedule/local-type.js.map +1 -0
  213. package/lib/schedule/scheduler.d.ts +4 -0
  214. package/lib/schedule/scheduler.d.ts.map +1 -0
  215. package/lib/schedule/scheduler.js +3 -0
  216. package/lib/schedule/scheduler.js.map +1 -0
  217. package/lib/{lifecycle/timeout → schedule}/timeout.d.ts +2 -3
  218. package/lib/schedule/timeout.d.ts.map +1 -0
  219. package/lib/{lifecycle/timeout → schedule}/timeout.js +5 -11
  220. package/lib/schedule/timeout.js.map +1 -0
  221. package/lib/state/{StateMachine.d.ts → simple-state-machine.d.ts} +1 -1
  222. package/lib/state/simple-state-machine.d.ts.map +1 -0
  223. package/lib/state/{StateMachine.js → simple-state-machine.js} +1 -1
  224. package/lib/state/simple-state-machine.js.map +1 -0
  225. package/lib/string/{castCase.d.ts → case-cast.d.ts} +1 -1
  226. package/lib/string/case-cast.d.ts.map +1 -0
  227. package/lib/string/{castCase.js → case-cast.js} +1 -1
  228. package/lib/string/case-cast.js.map +1 -0
  229. package/lib/string/{escapeRegexp.d.ts → escape-regexp.d.ts} +1 -1
  230. package/lib/string/escape-regexp.d.ts.map +1 -0
  231. package/lib/string/{escapeRegexp.js → escape-regexp.js} +1 -1
  232. package/lib/string/escape-regexp.js.map +1 -0
  233. package/lib/string/{sizeString.d.ts → human-bytes.d.ts} +1 -1
  234. package/lib/string/human-bytes.d.ts.map +1 -0
  235. package/lib/string/{sizeString.js → human-bytes.js} +1 -1
  236. package/lib/string/human-bytes.js.map +1 -0
  237. package/lib/tsconfig.tsbuildinfo +1 -1
  238. package/lib/typing-helper/callback.d.ts +5 -0
  239. package/lib/typing-helper/callback.d.ts.map +1 -0
  240. package/lib/typing-helper/callback.js +2 -0
  241. package/lib/typing-helper/callback.js.map +1 -0
  242. package/lib/typing-helper/deep.partial.d.ts.map +1 -0
  243. package/lib/typing-helper/deep.partial.js.map +1 -0
  244. package/lib/typing-helper/deep.readonly.d.ts.map +1 -0
  245. package/lib/typing-helper/deep.readonly.js.map +1 -0
  246. package/lib/typing-helper/deep.required.d.ts.map +1 -0
  247. package/lib/typing-helper/deep.required.js.map +1 -0
  248. package/lib/typing-helper/deep.writable.d.ts.map +1 -0
  249. package/lib/typing-helper/deep.writable.js.map +1 -0
  250. package/lib/typing-helper/literal.d.ts.map +1 -0
  251. package/lib/{typingHelper → typing-helper}/literal.js.map +1 -1
  252. package/package.json +8 -7
  253. package/src/autoindex.ts +239 -213
  254. package/src/date/{timeString.ts → to-string.ts} +28 -29
  255. package/src/debugging/{tryInspect.ts → inspect.ts} +1 -1
  256. package/src/debugging/object-with-name.ts +64 -0
  257. package/src/debugging/serializable.ts +1 -1
  258. package/src/error/convert-unknown.ts +9 -0
  259. package/src/error/{getFrame.ts → get-frame.ts} +1 -1
  260. package/src/error/{pretty.ts → pretty.nodejs.ts} +3 -2
  261. package/src/function/{asyncCallbackList.ts → callback-list.async.ts} +2 -7
  262. package/src/function/callback-list.delay.ts +29 -0
  263. package/src/function/{callbackList.ts → callback-list.ts} +1 -1
  264. package/src/function/noop.ts +1 -0
  265. package/src/global.d.ts +10 -0
  266. package/src/legacy/rename.ts +15 -0
  267. package/src/lifecycle/{promise/cancellationToken → cancellation}/driver.browser.ts +3 -4
  268. package/src/lifecycle/{promise/cancellationToken → cancellation}/driver.common.ts +3 -2
  269. package/src/lifecycle/{promise/cancellationToken → cancellation}/source.ts +4 -4
  270. package/src/lifecycle/dispose/async-disposable.ts +41 -0
  271. package/src/lifecycle/dispose/bridges/function.ts +31 -0
  272. package/src/lifecycle/dispose/bridges/native.ts +23 -0
  273. package/src/lifecycle/dispose/bridges/streams.ts +70 -0
  274. package/src/lifecycle/dispose/debug.ts +22 -4
  275. package/src/lifecycle/dispose/disposable.ts +162 -0
  276. package/src/lifecycle/dispose/disposableEvent.ts +20 -86
  277. package/src/lifecycle/dispose/disposedError.ts +36 -19
  278. package/src/lifecycle/dispose/sync-disposable.ts +53 -0
  279. package/src/lifecycle/event/event.ts +83 -76
  280. package/src/lifecycle/event/memorized.ts +13 -12
  281. package/src/lifecycle/event/type.ts +55 -0
  282. package/src/lifecycle/global/global-lifecycle.ts +49 -0
  283. package/src/log/logger.ts +1 -1
  284. package/src/{mapSet/customSet.ts → map-and-set/custom-set.ts} +7 -26
  285. package/src/{mapSet/extendMap.ts → map-and-set/required-map.ts} +21 -6
  286. package/src/object/objectSame.ts +1 -1
  287. package/src/path/pathArray.ts +1 -1
  288. package/src/path/pathCalc.ts +18 -0
  289. package/src/platform/compile.ts +6 -0
  290. package/src/platform/globalSingleton.ts +1 -1
  291. package/src/platform/os.ts +1 -1
  292. package/src/{lifecycle/promise/deferredPromise.ts → promise/deferred-promise.ts} +68 -27
  293. package/src/promise/{promiseCollection.ts → promise-list.ts} +2 -2
  294. package/src/re-export.ts +1 -0
  295. package/src/reflection/classes/pointer.ts +54 -0
  296. package/src/reflection/classes/singleton.ts +30 -21
  297. package/src/reflection/methods/bind.ts +15 -23
  298. package/src/reflection/methods/memorize.ts +30 -23
  299. package/src/schedule/extendable-timer.ts +49 -0
  300. package/src/{lifecycle/timeout → schedule}/interval.ts +4 -4
  301. package/src/schedule/local-type.ts +2 -0
  302. package/src/schedule/scheduler.ts +8 -0
  303. package/src/{lifecycle/timeout → schedule}/timeout.ts +7 -13
  304. package/src/state/{StateMachine.ts → simple-state-machine.ts} +3 -4
  305. package/src/tsconfig.json +3 -1
  306. package/src/typing-helper/callback.ts +4 -0
  307. package/lib/array/arrayDiff.d.ts.map +0 -1
  308. package/lib/array/arrayDiff.js.map +0 -1
  309. package/lib/array/arraySame.d.ts.map +0 -1
  310. package/lib/array/arraySame.js.map +0 -1
  311. package/lib/array/arrayUnique.d.ts.map +0 -1
  312. package/lib/array/arrayUnique.js.map +0 -1
  313. package/lib/array/normalizeArray.d.ts.map +0 -1
  314. package/lib/array/normalizeArray.js.map +0 -1
  315. package/lib/array/sortAlpha.d.ts.map +0 -1
  316. package/lib/array/sortAlpha.js.map +0 -1
  317. package/lib/date/isInvalid.d.ts.map +0 -1
  318. package/lib/date/isInvalid.js.map +0 -1
  319. package/lib/date/timeString.d.ts.map +0 -1
  320. package/lib/date/timeString.js.map +0 -1
  321. package/lib/debugging/tryInspect.d.ts.map +0 -1
  322. package/lib/debugging/tryInspect.js.map +0 -1
  323. package/lib/error/convertUnknown.d.ts +0 -2
  324. package/lib/error/convertUnknown.d.ts.map +0 -1
  325. package/lib/error/convertUnknown.js +0 -9
  326. package/lib/error/convertUnknown.js.map +0 -1
  327. package/lib/error/getFrame.d.ts.map +0 -1
  328. package/lib/error/getFrame.js.map +0 -1
  329. package/lib/error/pretty.d.ts.map +0 -1
  330. package/lib/error/pretty.js.map +0 -1
  331. package/lib/error/stackTrace.d.ts.map +0 -1
  332. package/lib/error/stackTrace.js.map +0 -1
  333. package/lib/error-wellknown/exit.error.d.ts +0 -13
  334. package/lib/error-wellknown/exit.error.d.ts.map +0 -1
  335. package/lib/error-wellknown/exit.error.js +0 -20
  336. package/lib/error-wellknown/exit.error.js.map +0 -1
  337. package/lib/function/asyncCallbackList.d.ts.map +0 -1
  338. package/lib/function/asyncCallbackList.js.map +0 -1
  339. package/lib/function/callbackList.d.ts.map +0 -1
  340. package/lib/function/callbackList.js.map +0 -1
  341. package/lib/function/delayCallbackList.d.ts +0 -17
  342. package/lib/function/delayCallbackList.d.ts.map +0 -1
  343. package/lib/function/delayCallbackList.js +0 -36
  344. package/lib/function/delayCallbackList.js.map +0 -1
  345. package/lib/function/functionName.d.ts +0 -26
  346. package/lib/function/functionName.d.ts.map +0 -1
  347. package/lib/function/functionName.js +0 -27
  348. package/lib/function/functionName.js.map +0 -1
  349. package/lib/lifecycle/dispose/bridges/rxjs.d.ts +0 -8
  350. package/lib/lifecycle/dispose/bridges/rxjs.d.ts.map +0 -1
  351. package/lib/lifecycle/dispose/bridges/rxjs.js +0 -4
  352. package/lib/lifecycle/dispose/bridges/rxjs.js.map +0 -1
  353. package/lib/lifecycle/dispose/lifecycle.async.d.ts +0 -37
  354. package/lib/lifecycle/dispose/lifecycle.async.d.ts.map +0 -1
  355. package/lib/lifecycle/dispose/lifecycle.async.js +0 -111
  356. package/lib/lifecycle/dispose/lifecycle.async.js.map +0 -1
  357. package/lib/lifecycle/dispose/lifecycle.d.ts +0 -32
  358. package/lib/lifecycle/dispose/lifecycle.d.ts.map +0 -1
  359. package/lib/lifecycle/dispose/lifecycle.global.d.ts.map +0 -1
  360. package/lib/lifecycle/dispose/lifecycle.global.js.map +0 -1
  361. package/lib/lifecycle/dispose/lifecycle.js +0 -67
  362. package/lib/lifecycle/dispose/lifecycle.js.map +0 -1
  363. package/lib/lifecycle/dispose/lifecycle.sync.d.ts +0 -45
  364. package/lib/lifecycle/dispose/lifecycle.sync.d.ts.map +0 -1
  365. package/lib/lifecycle/dispose/lifecycle.sync.js +0 -115
  366. package/lib/lifecycle/dispose/lifecycle.sync.js.map +0 -1
  367. package/lib/lifecycle/promise/cancel.d.ts +0 -10
  368. package/lib/lifecycle/promise/cancel.d.ts.map +0 -1
  369. package/lib/lifecycle/promise/cancel.js +0 -15
  370. package/lib/lifecycle/promise/cancel.js.map +0 -1
  371. package/lib/lifecycle/promise/cancellationToken/driver.browser.d.ts.map +0 -1
  372. package/lib/lifecycle/promise/cancellationToken/driver.browser.js.map +0 -1
  373. package/lib/lifecycle/promise/cancellationToken/driver.common.d.ts.map +0 -1
  374. package/lib/lifecycle/promise/cancellationToken/driver.common.js.map +0 -1
  375. package/lib/lifecycle/promise/cancellationToken/source.d.ts.map +0 -1
  376. package/lib/lifecycle/promise/cancellationToken/source.js.map +0 -1
  377. package/lib/lifecycle/promise/deferredPromise.d.ts.map +0 -1
  378. package/lib/lifecycle/promise/deferredPromise.js.map +0 -1
  379. package/lib/lifecycle/timeout/interval.d.ts.map +0 -1
  380. package/lib/lifecycle/timeout/interval.js.map +0 -1
  381. package/lib/lifecycle/timeout/timeout.d.ts.map +0 -1
  382. package/lib/lifecycle/timeout/timeout.js.map +0 -1
  383. package/lib/lifecycle/timeout/timeoutError.d.ts +0 -11
  384. package/lib/lifecycle/timeout/timeoutError.d.ts.map +0 -1
  385. package/lib/lifecycle/timeout/timeoutError.js +0 -16
  386. package/lib/lifecycle/timeout/timeoutError.js.map +0 -1
  387. package/lib/mapSet/customSet.d.ts.map +0 -1
  388. package/lib/mapSet/customSet.js.map +0 -1
  389. package/lib/mapSet/extendMap.d.ts +0 -21
  390. package/lib/mapSet/extendMap.d.ts.map +0 -1
  391. package/lib/mapSet/extendMap.js +0 -26
  392. package/lib/mapSet/extendMap.js.map +0 -1
  393. package/lib/promise/awaitIterator.d.ts.map +0 -1
  394. package/lib/promise/awaitIterator.js.map +0 -1
  395. package/lib/promise/finishAllPromise.d.ts +0 -13
  396. package/lib/promise/finishAllPromise.d.ts.map +0 -1
  397. package/lib/promise/finishAllPromise.js +0 -37
  398. package/lib/promise/finishAllPromise.js.map +0 -1
  399. package/lib/promise/promiseBool.d.ts.map +0 -1
  400. package/lib/promise/promiseBool.js.map +0 -1
  401. package/lib/promise/promiseCollection.d.ts.map +0 -1
  402. package/lib/promise/promiseCollection.js.map +0 -1
  403. package/lib/promise/timeoutPromiseCollection.d.ts +0 -7
  404. package/lib/promise/timeoutPromiseCollection.d.ts.map +0 -1
  405. package/lib/promise/timeoutPromiseCollection.js +0 -20
  406. package/lib/promise/timeoutPromiseCollection.js.map +0 -1
  407. package/lib/reflection/classes/hookClass.d.ts +0 -11
  408. package/lib/reflection/classes/hookClass.d.ts.map +0 -1
  409. package/lib/reflection/classes/hookClass.js +0 -34
  410. package/lib/reflection/classes/hookClass.js.map +0 -1
  411. package/lib/reflection/methods/initOnRead.d.ts +0 -7
  412. package/lib/reflection/methods/initOnRead.d.ts.map +0 -1
  413. package/lib/reflection/methods/initOnRead.js +0 -11
  414. package/lib/reflection/methods/initOnRead.js.map +0 -1
  415. package/lib/state/StateMachine.d.ts.map +0 -1
  416. package/lib/state/StateMachine.js.map +0 -1
  417. package/lib/string/castCase.d.ts.map +0 -1
  418. package/lib/string/castCase.js.map +0 -1
  419. package/lib/string/escapeRegexp.d.ts.map +0 -1
  420. package/lib/string/escapeRegexp.js.map +0 -1
  421. package/lib/string/sizeString.d.ts.map +0 -1
  422. package/lib/string/sizeString.js.map +0 -1
  423. package/lib/typingHelper/deep.partial.d.ts.map +0 -1
  424. package/lib/typingHelper/deep.partial.js.map +0 -1
  425. package/lib/typingHelper/deep.readonly.d.ts.map +0 -1
  426. package/lib/typingHelper/deep.readonly.js.map +0 -1
  427. package/lib/typingHelper/deep.required.d.ts.map +0 -1
  428. package/lib/typingHelper/deep.required.js.map +0 -1
  429. package/lib/typingHelper/deep.writable.d.ts.map +0 -1
  430. package/lib/typingHelper/deep.writable.js.map +0 -1
  431. package/lib/typingHelper/literal.d.ts.map +0 -1
  432. package/src/error/convertUnknown.ts +0 -9
  433. package/src/error-wellknown/exit.error.ts +0 -21
  434. package/src/function/delayCallbackList.ts +0 -45
  435. package/src/function/functionName.ts +0 -44
  436. package/src/lifecycle/dispose/bridges/rxjs.ts +0 -6
  437. package/src/lifecycle/dispose/lifecycle.async.ts +0 -134
  438. package/src/lifecycle/dispose/lifecycle.global.ts +0 -66
  439. package/src/lifecycle/dispose/lifecycle.sync.ts +0 -133
  440. package/src/lifecycle/dispose/lifecycle.ts +0 -94
  441. package/src/lifecycle/promise/cancel.ts +0 -16
  442. package/src/lifecycle/timeout/timeoutError.ts +0 -18
  443. package/src/promise/finishAllPromise.ts +0 -50
  444. package/src/promise/timeoutPromiseCollection.ts +0 -22
  445. package/src/reflection/classes/hookClass.ts +0 -47
  446. package/src/reflection/methods/initOnRead.ts +0 -11
  447. /package/lib/lifecycle/{promise/cancellationToken → cancellation}/driver.browser.d.ts +0 -0
  448. /package/lib/lifecycle/{promise/cancellationToken → cancellation}/driver.browser.js +0 -0
  449. /package/lib/lifecycle/{promise/cancellationToken → cancellation}/driver.common.d.ts +0 -0
  450. /package/lib/{typingHelper → typing-helper}/deep.partial.d.ts +0 -0
  451. /package/lib/{typingHelper → typing-helper}/deep.partial.js +0 -0
  452. /package/lib/{typingHelper → typing-helper}/deep.readonly.d.ts +0 -0
  453. /package/lib/{typingHelper → typing-helper}/deep.readonly.js +0 -0
  454. /package/lib/{typingHelper → typing-helper}/deep.required.d.ts +0 -0
  455. /package/lib/{typingHelper → typing-helper}/deep.required.js +0 -0
  456. /package/lib/{typingHelper → typing-helper}/deep.writable.d.ts +0 -0
  457. /package/lib/{typingHelper → typing-helper}/deep.writable.js +0 -0
  458. /package/lib/{typingHelper → typing-helper}/literal.d.ts +0 -0
  459. /package/lib/{typingHelper → typing-helper}/literal.js +0 -0
  460. /package/src/array/{arrayDiff.ts → diff.ts} +0 -0
  461. /package/src/array/{arraySame.ts → is-same.ts} +0 -0
  462. /package/src/array/{normalizeArray.ts → normalize.ts} +0 -0
  463. /package/src/array/{sortAlpha.ts → sort-alpha.ts} +0 -0
  464. /package/src/array/{arrayUnique.ts → unique.ts} +0 -0
  465. /package/src/date/{isInvalid.ts → is-invalid.ts} +0 -0
  466. /package/src/error/{stackTrace.ts → stack-trace.ts} +0 -0
  467. /package/src/promise/{awaitIterator.ts → await-iterator.ts} +0 -0
  468. /package/src/promise/{promiseBool.ts → promise-bool.ts} +0 -0
  469. /package/src/string/{castCase.ts → case-cast.ts} +0 -0
  470. /package/src/string/{escapeRegexp.ts → escape-regexp.ts} +0 -0
  471. /package/src/string/{sizeString.ts → human-bytes.ts} +0 -0
  472. /package/src/{typingHelper → typing-helper}/deep.partial.ts +0 -0
  473. /package/src/{typingHelper → typing-helper}/deep.readonly.ts +0 -0
  474. /package/src/{typingHelper → typing-helper}/deep.required.ts +0 -0
  475. /package/src/{typingHelper → typing-helper}/deep.writable.ts +0 -0
  476. /package/src/{typingHelper → typing-helper}/literal.ts +0 -0
@@ -1,25 +1,29 @@
1
- import { CanceledError } from './cancel.js';
1
+ import { CanceledError, TimeoutError } from '@idlebox/errors';
2
+ import { scheduler } from '../schedule/scheduler.js';
2
3
  /**
3
4
  * a promise can resolve or reject later
4
5
  * @public
5
6
  */
6
7
  export class DeferredPromise {
7
- p;
8
+ promise;
8
9
  #completeCallback;
9
10
  #errorCallback;
10
11
  #success;
11
12
  #progressList = [];
12
13
  constructor() {
13
- this.p = Object.assign(new Promise((c, e) => {
14
- this.#completeCallback = c;
15
- this.#errorCallback = e;
16
- }), {
14
+ const { promise, resolve, reject } = Promise.withResolvers();
15
+ this.#completeCallback = resolve;
16
+ this.#errorCallback = reject;
17
+ this.promise = Object.assign(promise, {
17
18
  progress: (fn) => {
18
19
  this.progress(fn);
19
20
  return this.p;
20
21
  },
21
22
  });
22
23
  }
24
+ get p() {
25
+ return this.promise;
26
+ }
23
27
  /**
24
28
  * notify progress to callbacks
25
29
  * @param progress argument
@@ -29,14 +33,13 @@ export class DeferredPromise {
29
33
  if (this.#success !== undefined)
30
34
  throw new Error('no more event after settled');
31
35
  for (const cb of this.#progressList) {
32
- cb(progress);
36
+ scheduler(cb.bind(undefined, progress));
33
37
  }
34
38
  return this;
35
39
  }
36
40
  /**
37
41
  * register a progress callback
38
42
  * @param fn progress callback function, will be called when notify is called
39
- * @returns
40
43
  */
41
44
  progress(fn) {
42
45
  if (this.#success !== undefined)
@@ -59,9 +62,15 @@ export class DeferredPromise {
59
62
  return this.#success === undefined;
60
63
  }
61
64
  /**
62
- * whether the promise is completed (resolved or rejected)
65
+ * @deprecated use settled
63
66
  */
64
67
  get completed() {
68
+ return this.settled;
69
+ }
70
+ /**
71
+ * whether the promise is settled (resolved or rejected)
72
+ */
73
+ get settled() {
65
74
  return this.#success !== undefined;
66
75
  }
67
76
  get resolved() {
@@ -74,28 +83,60 @@ export class DeferredPromise {
74
83
  * resolve the promise
75
84
  */
76
85
  complete(value) {
86
+ if (this.settled)
87
+ return;
77
88
  this.#success = true;
89
+ this.#after_settled();
78
90
  this.#completeCallback(value);
79
- this.#no_more_progress();
80
91
  }
81
92
  /**
82
93
  * reject the promise
83
94
  */
84
95
  error(err) {
96
+ if (this.settled)
97
+ return;
85
98
  this.#success = false;
99
+ this.#after_settled();
86
100
  this.#errorCallback(err);
87
- this.#no_more_progress();
88
101
  }
89
102
  /**
90
103
  * reject the deferred with {CancelError}
91
104
  */
92
105
  cancel() {
93
- this.#success = false;
94
- this.#errorCallback(new CanceledError());
95
- this.#no_more_progress();
106
+ this.error(new CanceledError());
96
107
  }
97
- #no_more_progress() {
108
+ #after_settled() {
98
109
  this.#progressList.length = 0;
110
+ this.#cancel_timeout();
111
+ }
112
+ get callback() {
113
+ if (this.#success !== undefined)
114
+ throw new Error('can not generate callback after settled');
115
+ return (error, data) => {
116
+ if (error) {
117
+ this.error(error);
118
+ }
119
+ else {
120
+ this.complete(data);
121
+ }
122
+ };
123
+ }
124
+ #timer;
125
+ #cancel_timeout() {
126
+ if (this.#timer) {
127
+ clearTimeout(this.#timer);
128
+ this.#timer = undefined;
129
+ }
130
+ }
131
+ timeout(ms) {
132
+ if (this.settled)
133
+ throw new Error('no more timeout after settled');
134
+ this.#timer = setTimeout(() => {
135
+ this.error(new TimeoutError(ms, 'promise not settled'));
136
+ }, ms);
137
+ return {
138
+ dispose: () => this.#cancel_timeout(),
139
+ };
99
140
  }
100
141
  /**
101
142
  * Convert promise into deferred
@@ -111,4 +152,4 @@ export class DeferredPromise {
111
152
  return p;
112
153
  }
113
154
  }
114
- //# sourceMappingURL=deferredPromise.js.map
155
+ //# sourceMappingURL=deferred-promise.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deferred-promise.js","sourceRoot":"","sources":["../../src/promise/deferred-promise.ts"],"names":[],"mappings":"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"}
@@ -3,4 +3,4 @@
3
3
  * resolve with false when `p` reject (and drop error)
4
4
  */
5
5
  export declare function promiseBool(p: Promise<any>): Promise<boolean>;
6
- //# sourceMappingURL=promiseBool.d.ts.map
6
+ //# sourceMappingURL=promise-bool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promise-bool.d.ts","sourceRoot":"","sources":["../../src/promise/promise-bool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAK7D"}
@@ -5,4 +5,4 @@
5
5
  export function promiseBool(p) {
6
6
  return p.then(() => true, () => false);
7
7
  }
8
- //# sourceMappingURL=promiseBool.js.map
8
+ //# sourceMappingURL=promise-bool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promise-bool.js","sourceRoot":"","sources":["../../src/promise/promise-bool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,CAAe;IAC1C,OAAO,CAAC,CAAC,IAAI,CACZ,GAAG,EAAE,CAAC,IAAI,EACV,GAAG,EAAE,CAAC,KAAK,CACX,CAAC;AACH,CAAC"}
@@ -1,11 +1,11 @@
1
- import { DeferredPromise } from '../lifecycle/promise/deferredPromise.js';
1
+ import { DeferredPromise } from './deferred-promise.js';
2
2
  export declare class PromiseCollection {
3
3
  protected readonly promiseList: Record<string, DeferredPromise<any>>;
4
4
  size(): number;
5
- create(id: string): Promise<any> & import("../autoindex.js").IProgressHolder<any, any>;
5
+ create(id: string): Promise<any> & import("./deferred-promise.js").IProgressHolder<any, any>;
6
6
  has(id: string): boolean;
7
7
  done(id: string, data: any): void;
8
8
  error(id: string, e: Error): void;
9
9
  dispose(): void;
10
10
  }
11
- //# sourceMappingURL=promiseCollection.d.ts.map
11
+ //# sourceMappingURL=promise-list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promise-list.d.ts","sourceRoot":"","sources":["../../src/promise/promise-list.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,qBAAa,iBAAiB;IAC7B,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAM;IAE1E,IAAI;IAIJ,MAAM,CAAC,EAAE,EAAE,MAAM;IASjB,GAAG,CAAC,EAAE,EAAE,MAAM;IAId,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG;IAK1B,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK;IAK1B,OAAO;CAMP"}
@@ -1,5 +1,5 @@
1
- import { CanceledError } from '../lifecycle/promise/cancel.js';
2
- import { DeferredPromise } from '../lifecycle/promise/deferredPromise.js';
1
+ import { CanceledError } from '@idlebox/errors';
2
+ import { DeferredPromise } from './deferred-promise.js';
3
3
  export class PromiseCollection {
4
4
  promiseList = {};
5
5
  size() {
@@ -31,4 +31,4 @@ export class PromiseCollection {
31
31
  }
32
32
  }
33
33
  }
34
- //# sourceMappingURL=promiseCollection.js.map
34
+ //# sourceMappingURL=promise-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promise-list.js","sourceRoot":"","sources":["../../src/promise/promise-list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,MAAM,OAAO,iBAAiB;IACV,WAAW,GAAyC,EAAE,CAAC;IAE1E,IAAI;QACH,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC;IAC7C,CAAC;IAED,MAAM,CAAC,EAAU;QAChB,IAAI,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,6BAA6B,EAAE,EAAE,CAAC,CAAC;QACpD,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,eAAe,EAAO,CAAC;QACvC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;QAC3B,OAAO,GAAG,CAAC,CAAC,CAAC;IACd,CAAC;IAED,GAAG,CAAC,EAAU;QACb,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,CAAC,EAAU,EAAE,IAAS;QACzB,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,EAAU,EAAE,CAAQ;QACzB,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC;IAED,OAAO;QACN,MAAM,CAAC,GAAG,IAAI,aAAa,EAAE,CAAC;QAC9B,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YAChD,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACnB,CAAC;IACF,CAAC;CACD"}
@@ -0,0 +1,2 @@
1
+ export * from '@idlebox/errors';
2
+ //# sourceMappingURL=re-export.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"re-export.d.ts","sourceRoot":"","sources":["../src/re-export.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from '@idlebox/errors';
2
+ //# sourceMappingURL=re-export.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"re-export.js","sourceRoot":"","sources":["../src/re-export.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export type Ref<T = any> = {
2
+ reference: T;
3
+ };
4
+ export declare function Pointer<T>(_object: Ref<T>): T;
5
+ //# sourceMappingURL=pointer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pointer.d.ts","sourceRoot":"","sources":["../../../src/reflection/classes/pointer.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI;IAAE,SAAS,EAAE,CAAC,CAAA;CAAE,CAAC;AAE5C,wBAAgB,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAmD7C"}
@@ -0,0 +1,49 @@
1
+ export function Pointer(_object) {
2
+ const object = _object;
3
+ return new Proxy({}, {
4
+ apply(_, thisArg, argArray) {
5
+ return Reflect.apply(object.reference, thisArg, argArray);
6
+ },
7
+ construct(_, argArray, new_) {
8
+ return Reflect.construct(object.reference, argArray, new_);
9
+ },
10
+ defineProperty(_, property, attributes) {
11
+ return Reflect.defineProperty(object.reference, property, attributes);
12
+ },
13
+ deleteProperty(_, p) {
14
+ return Reflect.deleteProperty(object.reference, p);
15
+ },
16
+ get(_, p, _receiver) {
17
+ const value = object.reference[p];
18
+ if (typeof value === 'function') {
19
+ return value.bind(object.reference);
20
+ }
21
+ return value;
22
+ },
23
+ getOwnPropertyDescriptor(_, p) {
24
+ return Reflect.getOwnPropertyDescriptor(object.reference, p);
25
+ },
26
+ getPrototypeOf(_) {
27
+ return Reflect.getPrototypeOf(object);
28
+ },
29
+ has(_, p) {
30
+ return Reflect.has(object.reference, p);
31
+ },
32
+ isExtensible(_) {
33
+ return Reflect.isExtensible(object);
34
+ },
35
+ ownKeys(_) {
36
+ return Reflect.ownKeys(object);
37
+ },
38
+ preventExtensions(_) {
39
+ return Reflect.preventExtensions(object);
40
+ },
41
+ set(_, p, newValue, receiver) {
42
+ return Reflect.set(object.reference, p, newValue, receiver);
43
+ },
44
+ setPrototypeOf(_, v) {
45
+ return Reflect.setPrototypeOf(object.reference, v);
46
+ },
47
+ });
48
+ }
49
+ //# sourceMappingURL=pointer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pointer.js","sourceRoot":"","sources":["../../../src/reflection/classes/pointer.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,OAAO,CAAI,OAAe;IACzC,MAAM,MAAM,GAAG,OAAc,CAAC;IAE9B,OAAO,IAAI,KAAK,CACf,EAAE,EACF;QACC,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ;YACzB,OAAO,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC3D,CAAC;QACD,SAAS,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI;YAC1B,OAAO,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC5D,CAAC;QACD,cAAc,CAAC,CAAC,EAAE,QAAQ,EAAE,UAAU;YACrC,OAAO,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;QACvE,CAAC;QACD,cAAc,CAAC,CAAC,EAAE,CAAC;YAClB,OAAO,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QACpD,CAAC;QACD,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS;YAClB,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAClC,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;gBACjC,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACrC,CAAC;YACD,OAAO,KAAK,CAAC;QACd,CAAC;QACD,wBAAwB,CAAC,CAAC,EAAE,CAAC;YAC5B,OAAO,OAAO,CAAC,wBAAwB,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QAC9D,CAAC;QACD,cAAc,CAAC,CAAC;YACf,OAAO,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC;QACD,GAAG,CAAC,CAAC,EAAE,CAAC;YACP,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QACzC,CAAC;QACD,YAAY,CAAC,CAAC;YACb,OAAO,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,CAAC,CAAC;YACR,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC;QACD,iBAAiB,CAAC,CAAC;YAClB,OAAO,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC1C,CAAC;QACD,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ;YAC3B,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC7D,CAAC;QACD,cAAc,CAAC,CAAC,EAAE,CAAC;YAClB,OAAO,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QACpD,CAAC;KACD,CACM,CAAC;AACV,CAAC"}
@@ -1,7 +1,15 @@
1
1
  export declare const singletonSymbol: unique symbol;
2
2
  export declare enum SingletonType {
3
3
  Throw = 0,
4
- Return = 1
4
+ ReturnSame = 1
5
5
  }
6
- export declare function singleton(type?: SingletonType): ClassDecorator;
6
+ type AnyClass = new (...args: any) => any;
7
+ /**
8
+ * 单例类修饰器
9
+ * @param type
10
+ * @returns
11
+ */
12
+ export declare function singleton(type?: SingletonType): <T extends AnyClass>(Class: T, ctx: ClassDecoratorContext) => T;
13
+ export declare function createSingleton<T>(Class: new () => T): T;
14
+ export {};
7
15
  //# sourceMappingURL=singleton.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"singleton.d.ts","sourceRoot":"","sources":["../../../src/reflection/classes/singleton.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe,eAA6B,CAAC;AAE1D,oBAAY,aAAa;IACxB,KAAK,IAAI;IACT,MAAM,IAAI;CACV;AAED,wBAAgB,SAAS,CAAC,IAAI,GAAE,aAAoC,GAAG,cAAc,CAsBpF"}
1
+ {"version":3,"file":"singleton.d.ts","sourceRoot":"","sources":["../../../src/reflection/classes/singleton.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe,eAA+B,CAAC;AAE5D,oBAAY,aAAa;IACxB,KAAK,IAAI;IACT,UAAU,IAAI;CACd;AAED,KAAK,QAAQ,GAAG,KAAK,GAAG,IAAI,EAAE,GAAG,KAAK,GAAG,CAAC;AAE1C;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,IAAI,GAAE,aAAwC,IAC/D,CAAC,SAAS,QAAQ,EAAE,OAAO,CAAC,EAAE,KAAK,qBAAqB,KAAG,CAAC,CAgBpE;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,CAKxD"}
@@ -1,30 +1,38 @@
1
- import { hookClass } from './hookClass.js';
2
- export const singletonSymbol = Symbol('@gongt/singleton');
1
+ import { definePrivateConstant } from '../../autoindex.js';
2
+ export const singletonSymbol = Symbol('@idlebox/singleton');
3
3
  export var SingletonType;
4
4
  (function (SingletonType) {
5
5
  SingletonType[SingletonType["Throw"] = 0] = "Throw";
6
- SingletonType[SingletonType["Return"] = 1] = "Return";
6
+ SingletonType[SingletonType["ReturnSame"] = 1] = "ReturnSame";
7
7
  })(SingletonType || (SingletonType = {}));
8
- export function singleton(type = SingletonType.Return) {
9
- return (target) => {
10
- const hook = hookClass(target);
11
- if (!hook.beforeConstruct) {
12
- hook.beforeConstruct = [];
13
- }
14
- if (!hook.afterConstruct) {
15
- hook.afterConstruct = [];
16
- }
17
- hook.beforeConstruct.push((cls) => {
18
- if (cls[singletonSymbol]) {
19
- if (type === SingletonType.Return) {
20
- return cls[singletonSymbol];
8
+ /**
9
+ * 单例类修饰器
10
+ * @param type
11
+ * @returns
12
+ */
13
+ export function singleton(type = SingletonType.ReturnSame) {
14
+ return (Class, ctx) => {
15
+ if (ctx.kind !== 'class')
16
+ throw new Error(`this decorator can only be applied to classes`);
17
+ const name = ctx.name;
18
+ return new Proxy(Class, {
19
+ construct(target, args) {
20
+ const exists = Class[singletonSymbol];
21
+ if (exists) {
22
+ if (type === SingletonType.Throw)
23
+ throw new Error(`can not recreate singleton class #${name}`);
24
+ return exists;
21
25
  }
22
- throw new Error(`Duplicate new singleton class [${target.name}]`);
23
- }
24
- });
25
- hook.afterConstruct.push((obj) => {
26
- target[singletonSymbol] = obj;
26
+ const instance = Reflect.construct(target, args);
27
+ return instance;
28
+ },
27
29
  });
28
30
  };
29
31
  }
32
+ export function createSingleton(Class) {
33
+ if (!Class[singletonSymbol]) {
34
+ definePrivateConstant(Class, singletonSymbol, new Class());
35
+ }
36
+ return Class[singletonSymbol];
37
+ }
30
38
  //# sourceMappingURL=singleton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"singleton.js","sourceRoot":"","sources":["../../../src/reflection/classes/singleton.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAE1D,MAAM,CAAN,IAAY,aAGX;AAHD,WAAY,aAAa;IACxB,mDAAS,CAAA;IACT,qDAAU,CAAA;AACX,CAAC,EAHW,aAAa,KAAb,aAAa,QAGxB;AAED,MAAM,UAAU,SAAS,CAAC,OAAsB,aAAa,CAAC,MAAM;IACnE,OAAO,CAAC,MAAW,EAAO,EAAE;QAC3B,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC3B,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC3B,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YAC1B,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QAC1B,CAAC;QAED,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;YACjC,IAAI,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC;gBAC1B,IAAI,IAAI,KAAK,aAAa,CAAC,MAAM,EAAE,CAAC;oBACnC,OAAO,GAAG,CAAC,eAAe,CAAC,CAAC;gBAC7B,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,kCAAkC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC;YACnE,CAAC;QACF,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;YAChC,MAAM,CAAC,eAAe,CAAC,GAAG,GAAG,CAAC;QAC/B,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"singleton.js","sourceRoot":"","sources":["../../../src/reflection/classes/singleton.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;AAE5D,MAAM,CAAN,IAAY,aAGX;AAHD,WAAY,aAAa;IACxB,mDAAS,CAAA;IACT,6DAAc,CAAA;AACf,CAAC,EAHW,aAAa,KAAb,aAAa,QAGxB;AAID;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,OAAsB,aAAa,CAAC,UAAU;IACvE,OAAO,CAAqB,KAAQ,EAAE,GAA0B,EAAK,EAAE;QACtE,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QAE3F,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QACtB,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE;YACvB,SAAS,CAAC,MAAM,EAAE,IAAI;gBACrB,MAAM,MAAM,GAAI,KAAa,CAAC,eAAe,CAAC,CAAC;gBAC/C,IAAI,MAAM,EAAE,CAAC;oBACZ,IAAI,IAAI,KAAK,aAAa,CAAC,KAAK;wBAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,IAAI,EAAE,CAAC,CAAC;oBAC/F,OAAO,MAAM,CAAC;gBACf,CAAC;gBACD,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBACjD,OAAO,QAAQ,CAAC;YACjB,CAAC;SACD,CAAC,CAAC;IACJ,CAAC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAI,KAAkB;IACpD,IAAI,CAAE,KAAa,CAAC,eAAe,CAAC,EAAE,CAAC;QACtC,qBAAqB,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,KAAK,EAAE,CAAC,CAAC;IAC5D,CAAC;IACD,OAAQ,KAAa,CAAC,eAAe,CAAC,CAAC;AACxC,CAAC"}
@@ -1,5 +1,2 @@
1
- /**
2
- * Auto bind `this` to class method
3
- */
4
- export declare const bindThis: MethodDecorator;
1
+ export declare function bindThis(method: Function, context: ClassMethodDecoratorContext): (((this: any, ...args: any[]) => any) & import("../../autoindex.js").NamedObject) | undefined;
5
2
  //# sourceMappingURL=bind.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bind.d.ts","sourceRoot":"","sources":["../../../src/reflection/methods/bind.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,eAqBtB,CAAC"}
1
+ {"version":3,"file":"bind.d.ts","sourceRoot":"","sources":["../../../src/reflection/methods/bind.ts"],"names":[],"mappings":"AAEA,wBAAgB,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,2BAA2B,YAKL,GAAG,WAAW,GAAG,EAAE,kEAS5F"}
@@ -1,25 +1,19 @@
1
- /**
2
- * Auto bind `this` to class method
3
- */
4
- export const bindThis = (_target, propertyKey, descriptor) => {
5
- const oldFunc = descriptor.value;
6
- if (typeof oldFunc === 'function') {
7
- return {
8
- enumerable: true,
9
- configurable: true,
10
- get: function () {
11
- delete this[propertyKey];
12
- const fn = oldFunc.bind(this);
13
- Object.defineProperty(this, propertyKey, {
14
- value: fn,
15
- writable: false,
16
- enumerable: true,
17
- configurable: false,
18
- });
19
- return fn;
20
- },
21
- };
1
+ import { nameObject } from '../../autoindex.js';
2
+ export function bindThis(method, context) {
3
+ if (context.kind !== 'method')
4
+ throw new Error(`this decorator can only be applied to classes`);
5
+ if (context.static)
6
+ throw new TypeError('this decorator not supported on static methods.');
7
+ if (context.private) {
8
+ return nameObject(`${context.name.toString()}.bounded`, function (...args) {
9
+ return method.apply(this, args);
10
+ });
22
11
  }
23
- throw new TypeError('@bindThis can only use with method, but not property.');
24
- };
12
+ else {
13
+ context.addInitializer(function () {
14
+ this[context.name] = nameObject(`${context.name.toString()}.bounded`, method.bind(this));
15
+ });
16
+ return undefined;
17
+ }
18
+ }
25
19
  //# sourceMappingURL=bind.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bind.js","sourceRoot":"","sources":["../../../src/reflection/methods/bind.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAoB,CAAI,OAAe,EAAE,WAA4B,EAAE,UAAsC,EAAE,EAAE;IACrI,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC;IACjC,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;QACnC,OAAO;YACN,UAAU,EAAE,IAAI;YAChB,YAAY,EAAE,IAAI;YAClB,GAAG,EAAE;gBACJ,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC;gBAEzB,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC9B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE;oBACxC,KAAK,EAAE,EAAE;oBACT,QAAQ,EAAE,KAAK;oBACf,UAAU,EAAE,IAAI;oBAChB,YAAY,EAAE,KAAK;iBACnB,CAAC,CAAC;gBACH,OAAO,EAAE,CAAC;YACX,CAAC;SACD,CAAC;IACH,CAAC;IACD,MAAM,IAAI,SAAS,CAAC,uDAAuD,CAAC,CAAC;AAC9E,CAAC,CAAC"}
1
+ {"version":3,"file":"bind.js","sourceRoot":"","sources":["../../../src/reflection/methods/bind.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,MAAM,UAAU,QAAQ,CAAC,MAAgB,EAAE,OAAoC;IAC9E,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IAEhG,IAAI,OAAO,CAAC,MAAM;QAAE,MAAM,IAAI,SAAS,CAAC,iDAAiD,CAAC,CAAC;IAC3F,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACrB,OAAO,UAAU,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAqB,GAAG,IAAW;YAC1F,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACJ,CAAC;SAAM,CAAC;QACP,OAAO,CAAC,cAAc,CAAC;YACtB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1F,CAAC,CAAC,CAAC;QACH,OAAO,SAAS,CAAC;IAClB,CAAC;AACF,CAAC"}
@@ -1,8 +1,11 @@
1
- export declare const memorizeValueSymbol: unique symbol;
2
1
  /**
3
- * Decorate class method/getter
2
+ * Decorate class method
4
3
  *
5
- * remember first return value of method/getter, directlly return memorized value when call it again
4
+ * remember first return value of method, directly return memorized value when call it again
6
5
  */
7
- export declare const memo: MethodDecorator;
6
+ export declare function memo<T extends (...args: any[]) => any>(method: T, context: ClassMethodDecoratorContext): T;
7
+ /**
8
+ * remove memo from object
9
+ */
10
+ export declare function forgetMemorized<T>(self: T, methodName: keyof T): void;
8
11
  //# sourceMappingURL=memorize.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"memorize.d.ts","sourceRoot":"","sources":["../../../src/reflection/methods/memorize.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,eAAiC,CAAC;AAElE;;;;GAIG;AACH,eAAO,MAAM,IAAI,EAAE,eAqBlB,CAAC"}
1
+ {"version":3,"file":"memorize.d.ts","sourceRoot":"","sources":["../../../src/reflection/methods/memorize.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,2BAA2B,GAAG,CAAC,CAe1G;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,GAAG,IAAI,CAMrE"}
@@ -1,28 +1,32 @@
1
- export const memorizeValueSymbol = Symbol('@gongt/memorizeValue');
1
+ import { definePrivateConstant, nameObject } from '../../autoindex.js';
2
+ const memoizeSymbol = Symbol('@gongt/memorize');
2
3
  /**
3
- * Decorate class method/getter
4
+ * Decorate class method
4
5
  *
5
- * remember first return value of method/getter, directlly return memorized value when call it again
6
+ * remember first return value of method, directly return memorized value when call it again
6
7
  */
7
- export const memo = (_target, propertyKey, descriptor) => {
8
- const original = (descriptor.value ? descriptor.value : descriptor.get);
9
- if (descriptor.set || typeof original !== 'function') {
10
- throw new TypeError('@memo should only use on method, or getter. Not property and setter.');
11
- }
12
- if (descriptor.get) {
13
- descriptor.get = function memo_getter() {
14
- const value = original.call(this, arguments);
15
- Object.defineProperty(this, propertyKey, { value });
16
- return value;
17
- };
18
- }
19
- else {
20
- descriptor.value = function memo_method() {
21
- const value = original.call(this, arguments);
22
- Object.defineProperty(this, propertyKey, { value: () => value });
23
- return value;
24
- };
8
+ export function memo(method, context) {
9
+ context.addInitializer(function () {
10
+ definePrivateConstant(this, memoizeSymbol, {});
11
+ });
12
+ const wrapMethod = nameObject(context.name.toString(), function (...args) {
13
+ if (!this[memoizeSymbol][context.name]) {
14
+ const val = method.apply(this, args);
15
+ this[memoizeSymbol][context.name] = val;
16
+ }
17
+ return this[memoizeSymbol][context.name];
18
+ });
19
+ definePrivateConstant(wrapMethod, memoizeSymbol, true);
20
+ return wrapMethod;
21
+ }
22
+ /**
23
+ * remove memo from object
24
+ */
25
+ export function forgetMemorized(self, methodName) {
26
+ const method = self[methodName];
27
+ if (!method[memoizeSymbol]) {
28
+ throw new Error('Method is not decorated by @memo');
25
29
  }
26
- return descriptor;
27
- };
30
+ delete self[memoizeSymbol][methodName];
31
+ }
28
32
  //# sourceMappingURL=memorize.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"memorize.js","sourceRoot":"","sources":["../../../src/reflection/methods/memorize.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC;AAElE;;;;GAIG;AACH,MAAM,CAAC,MAAM,IAAI,GAAoB,CAAI,OAAe,EAAE,WAA4B,EAAE,UAAsC,EAAE,EAAE;IACjI,MAAM,QAAQ,GAAa,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAQ,CAAC;IACzF,IAAI,UAAU,CAAC,GAAG,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;QACtD,MAAM,IAAI,SAAS,CAAC,sEAAsE,CAAC,CAAC;IAC7F,CAAC;IAED,IAAI,UAAU,CAAC,GAAG,EAAE,CAAC;QACpB,UAAU,CAAC,GAAG,GAAG,SAAS,WAAW;YACpC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YAC7C,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YACpD,OAAO,KAAK,CAAC;QACd,CAAC,CAAC;IACH,CAAC;SAAM,CAAC;QACP,UAAU,CAAC,KAAK,GAAG,SAAS,WAAW;YACtC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YAC7C,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;YACjE,OAAO,KAAK,CAAC;QACd,CAAQ,CAAC;IACV,CAAC;IAED,OAAO,UAAU,CAAC;AACnB,CAAC,CAAC"}
1
+ {"version":3,"file":"memorize.js","sourceRoot":"","sources":["../../../src/reflection/methods/memorize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEvE,MAAM,aAAa,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAEhD;;;;GAIG;AACH,MAAM,UAAU,IAAI,CAAoC,MAAS,EAAE,OAAoC;IACtG,OAAO,CAAC,cAAc,CAAC;QACtB,qBAAqB,CAAC,IAAI,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,UAAqB,GAAG,IAAS;QACvF,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACxC,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACrC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;QACzC,CAAC;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,qBAAqB,CAAC,UAAU,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;IACvD,OAAO,UAAiB,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAI,IAAO,EAAE,UAAmB;IAC9D,MAAM,MAAM,GAAQ,IAAI,CAAC,UAAU,CAAC,CAAC;IACrC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACrD,CAAC;IACD,OAAQ,IAAY,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,CAAC;AACjD,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * 反复推迟的 setTimeout
3
+ */
4
+ export declare class ExtendableTimer {
5
+ private readonly durationMs;
6
+ private readonly dfd;
7
+ private tmr?;
8
+ constructor(durationMs: number);
9
+ start(): void;
10
+ renew(): void;
11
+ private _set;
12
+ cancel(): void;
13
+ get p(): Promise<void>;
14
+ get onSchedule(): <TResult1 = void, TResult2 = never>(onfulfilled?: ((value: void) => TResult1 | PromiseLike<TResult1>) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined) => Promise<TResult1 | TResult2>;
15
+ }
16
+ //# sourceMappingURL=extendable-timer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extendable-timer.d.ts","sourceRoot":"","sources":["../../src/schedule/extendable-timer.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,qBAAa,eAAe;IAIf,OAAO,CAAC,QAAQ,CAAC,UAAU;IAHvC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA+B;IACnD,OAAO,CAAC,GAAG,CAAC,CAAc;gBAEG,UAAU,EAAE,MAAM;IAE/C,KAAK;IAQL,KAAK;IAOL,OAAO,CAAC,IAAI;IAMZ,MAAM;IAON,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAErB;IAED,IAAI,UAAU,mPAGb;CACD"}
@@ -0,0 +1,45 @@
1
+ import { DeferredPromise } from '../promise/deferred-promise.js';
2
+ /**
3
+ * 反复推迟的 setTimeout
4
+ */
5
+ export class ExtendableTimer {
6
+ durationMs;
7
+ dfd = new DeferredPromise();
8
+ tmr;
9
+ constructor(durationMs) {
10
+ this.durationMs = durationMs;
11
+ }
12
+ start() {
13
+ if (this.tmr) {
14
+ this.renew();
15
+ }
16
+ else {
17
+ this._set();
18
+ }
19
+ }
20
+ renew() {
21
+ if (!this.tmr)
22
+ return;
23
+ clearTimeout(this.tmr);
24
+ this._set();
25
+ }
26
+ _set() {
27
+ this.tmr = setTimeout(() => {
28
+ this.dfd.complete();
29
+ }, this.durationMs);
30
+ }
31
+ cancel() {
32
+ if (this.tmr) {
33
+ clearTimeout(this.tmr);
34
+ this.tmr = undefined;
35
+ }
36
+ }
37
+ get p() {
38
+ return this.dfd.p;
39
+ }
40
+ get onSchedule() {
41
+ const p = this.dfd.p;
42
+ return p.then.bind(p);
43
+ }
44
+ }
45
+ //# sourceMappingURL=extendable-timer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extendable-timer.js","sourceRoot":"","sources":["../../src/schedule/extendable-timer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAGjE;;GAEG;AACH,MAAM,OAAO,eAAe;IAIE;IAHZ,GAAG,GAAG,IAAI,eAAe,EAAQ,CAAC;IAC3C,GAAG,CAAe;IAE1B,YAA6B,UAAkB;QAAlB,eAAU,GAAV,UAAU,CAAQ;IAAG,CAAC;IAEnD,KAAK;QACJ,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACd,IAAI,CAAC,KAAK,EAAE,CAAC;QACd,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,IAAI,EAAE,CAAC;QACb,CAAC;IACF,CAAC;IAED,KAAK;QACJ,IAAI,CAAC,IAAI,CAAC,GAAG;YAAE,OAAO;QAEtB,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,IAAI,EAAE,CAAC;IACb,CAAC;IAEO,IAAI;QACX,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE;YAC1B,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QACrB,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACrB,CAAC;IAED,MAAM;QACL,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACd,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACvB,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC;QACtB,CAAC;IACF,CAAC;IAED,IAAI,CAAC;QACJ,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACnB,CAAC;IAED,IAAI,UAAU;QACb,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACrB,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;CACD"}