@idlebox/common 1.4.20 → 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 (450) 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 +147 -136
  22. package/lib/autoindex.d.ts.map +1 -1
  23. package/lib/autoindex.js +172 -157
  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/legacy/rename.d.ts +13 -0
  72. package/lib/legacy/rename.d.ts.map +1 -0
  73. package/lib/legacy/rename.js +13 -0
  74. package/lib/legacy/rename.js.map +1 -0
  75. package/lib/lifecycle/cancellation/driver.browser.d.ts.map +1 -0
  76. package/lib/lifecycle/cancellation/driver.browser.js.map +1 -0
  77. package/lib/lifecycle/cancellation/driver.common.d.ts.map +1 -0
  78. package/lib/lifecycle/{promise/cancellationToken → cancellation}/driver.common.js +1 -1
  79. package/lib/lifecycle/cancellation/driver.common.js.map +1 -0
  80. package/lib/lifecycle/{promise/cancellationToken → cancellation}/source.d.ts +3 -3
  81. package/lib/lifecycle/cancellation/source.d.ts.map +1 -0
  82. package/lib/lifecycle/{promise/cancellationToken → cancellation}/source.js +2 -2
  83. package/lib/lifecycle/cancellation/source.js.map +1 -0
  84. package/lib/lifecycle/dispose/async-disposable.d.ts +17 -0
  85. package/lib/lifecycle/dispose/async-disposable.d.ts.map +1 -0
  86. package/lib/lifecycle/dispose/async-disposable.js +42 -0
  87. package/lib/lifecycle/dispose/async-disposable.js.map +1 -0
  88. package/lib/lifecycle/dispose/bridges/function.d.ts +17 -0
  89. package/lib/lifecycle/dispose/bridges/function.d.ts.map +1 -0
  90. package/lib/lifecycle/dispose/bridges/function.js +29 -0
  91. package/lib/lifecycle/dispose/bridges/function.js.map +1 -0
  92. package/lib/lifecycle/dispose/bridges/native.d.ts +10 -0
  93. package/lib/lifecycle/dispose/bridges/native.d.ts.map +1 -0
  94. package/lib/lifecycle/dispose/bridges/native.js +13 -0
  95. package/lib/lifecycle/dispose/bridges/native.js.map +1 -0
  96. package/lib/lifecycle/dispose/bridges/streams.d.ts +21 -0
  97. package/lib/lifecycle/dispose/bridges/streams.d.ts.map +1 -0
  98. package/lib/lifecycle/dispose/bridges/streams.js +60 -0
  99. package/lib/lifecycle/dispose/bridges/streams.js.map +1 -0
  100. package/lib/lifecycle/dispose/debug.js +17 -3
  101. package/lib/lifecycle/dispose/debug.js.map +1 -1
  102. package/lib/lifecycle/dispose/disposable.d.ts +22 -0
  103. package/lib/lifecycle/dispose/disposable.d.ts.map +1 -0
  104. package/lib/lifecycle/dispose/disposable.js +120 -0
  105. package/lib/lifecycle/dispose/disposable.js.map +1 -0
  106. package/lib/lifecycle/dispose/disposableEvent.d.ts +9 -14
  107. package/lib/lifecycle/dispose/disposableEvent.d.ts.map +1 -1
  108. package/lib/lifecycle/dispose/disposableEvent.js +14 -64
  109. package/lib/lifecycle/dispose/disposableEvent.js.map +1 -1
  110. package/lib/lifecycle/dispose/disposedError.d.ts +9 -4
  111. package/lib/lifecycle/dispose/disposedError.d.ts.map +1 -1
  112. package/lib/lifecycle/dispose/disposedError.js +28 -13
  113. package/lib/lifecycle/dispose/disposedError.js.map +1 -1
  114. package/lib/lifecycle/dispose/sync-disposable.d.ts +21 -0
  115. package/lib/lifecycle/dispose/sync-disposable.d.ts.map +1 -0
  116. package/lib/lifecycle/dispose/sync-disposable.js +52 -0
  117. package/lib/lifecycle/dispose/sync-disposable.js.map +1 -0
  118. package/lib/lifecycle/event/event.d.ts +18 -33
  119. package/lib/lifecycle/event/event.d.ts.map +1 -1
  120. package/lib/lifecycle/event/event.js +75 -69
  121. package/lib/lifecycle/event/event.js.map +1 -1
  122. package/lib/lifecycle/event/memorized.d.ts +4 -3
  123. package/lib/lifecycle/event/memorized.d.ts.map +1 -1
  124. package/lib/lifecycle/event/memorized.js +9 -10
  125. package/lib/lifecycle/event/memorized.js.map +1 -1
  126. package/lib/lifecycle/event/type.d.ts +47 -0
  127. package/lib/lifecycle/event/type.d.ts.map +1 -0
  128. package/lib/lifecycle/event/type.js +2 -0
  129. package/lib/lifecycle/event/type.js.map +1 -0
  130. package/lib/lifecycle/{dispose/lifecycle.global.d.ts → global/global-lifecycle.d.ts} +3 -15
  131. package/lib/lifecycle/global/global-lifecycle.d.ts.map +1 -0
  132. package/lib/lifecycle/{dispose/lifecycle.global.js → global/global-lifecycle.js} +8 -21
  133. package/lib/lifecycle/global/global-lifecycle.js.map +1 -0
  134. package/lib/log/logger.js +1 -1
  135. package/lib/log/logger.js.map +1 -1
  136. package/lib/{mapSet/customSet.d.ts → map-and-set/custom-set.d.ts} +4 -8
  137. package/lib/map-and-set/custom-set.d.ts.map +1 -0
  138. package/lib/{mapSet/customSet.js → map-and-set/custom-set.js} +6 -20
  139. package/lib/map-and-set/custom-set.js.map +1 -0
  140. package/lib/map-and-set/required-map.d.ts +28 -0
  141. package/lib/map-and-set/required-map.d.ts.map +1 -0
  142. package/lib/map-and-set/required-map.js +42 -0
  143. package/lib/map-and-set/required-map.js.map +1 -0
  144. package/lib/object/objectSame.js +1 -1
  145. package/lib/object/objectSame.js.map +1 -1
  146. package/lib/path/pathArray.js +1 -1
  147. package/lib/path/pathArray.js.map +1 -1
  148. package/lib/platform/globalSingleton.js +1 -1
  149. package/lib/platform/globalSingleton.js.map +1 -1
  150. package/lib/platform/os.d.ts.map +1 -1
  151. package/lib/platform/os.js +1 -1
  152. package/lib/platform/os.js.map +1 -1
  153. package/lib/promise/{awaitIterator.d.ts → await-iterator.d.ts} +1 -1
  154. package/lib/promise/await-iterator.d.ts.map +1 -0
  155. package/lib/promise/{awaitIterator.js → await-iterator.js} +1 -1
  156. package/lib/promise/await-iterator.js.map +1 -0
  157. package/lib/{lifecycle/promise/deferredPromise.d.ts → promise/deferred-promise.d.ts} +14 -6
  158. package/lib/promise/deferred-promise.d.ts.map +1 -0
  159. package/lib/{lifecycle/promise/deferredPromise.js → promise/deferred-promise.js} +57 -16
  160. package/lib/promise/deferred-promise.js.map +1 -0
  161. package/lib/promise/{promiseBool.d.ts → promise-bool.d.ts} +1 -1
  162. package/lib/promise/promise-bool.d.ts.map +1 -0
  163. package/lib/promise/{promiseBool.js → promise-bool.js} +1 -1
  164. package/lib/promise/promise-bool.js.map +1 -0
  165. package/lib/promise/{promiseCollection.d.ts → promise-list.d.ts} +3 -3
  166. package/lib/promise/promise-list.d.ts.map +1 -0
  167. package/lib/promise/{promiseCollection.js → promise-list.js} +3 -3
  168. package/lib/promise/promise-list.js.map +1 -0
  169. package/lib/reflection/classes/pointer.d.ts +5 -0
  170. package/lib/reflection/classes/pointer.d.ts.map +1 -0
  171. package/lib/reflection/classes/pointer.js +49 -0
  172. package/lib/reflection/classes/pointer.js.map +1 -0
  173. package/lib/reflection/classes/singleton.d.ts +10 -2
  174. package/lib/reflection/classes/singleton.d.ts.map +1 -1
  175. package/lib/reflection/classes/singleton.js +29 -21
  176. package/lib/reflection/classes/singleton.js.map +1 -1
  177. package/lib/reflection/methods/bind.d.ts +1 -4
  178. package/lib/reflection/methods/bind.d.ts.map +1 -1
  179. package/lib/reflection/methods/bind.js +17 -23
  180. package/lib/reflection/methods/bind.js.map +1 -1
  181. package/lib/reflection/methods/memorize.d.ts +7 -4
  182. package/lib/reflection/methods/memorize.d.ts.map +1 -1
  183. package/lib/reflection/methods/memorize.js +27 -23
  184. package/lib/reflection/methods/memorize.js.map +1 -1
  185. package/lib/schedule/extendable-timer.d.ts +16 -0
  186. package/lib/schedule/extendable-timer.d.ts.map +1 -0
  187. package/lib/schedule/extendable-timer.js +45 -0
  188. package/lib/schedule/extendable-timer.js.map +1 -0
  189. package/lib/{lifecycle/timeout → schedule}/interval.d.ts +3 -3
  190. package/lib/schedule/interval.d.ts.map +1 -0
  191. package/lib/{lifecycle/timeout → schedule}/interval.js +3 -3
  192. package/lib/schedule/interval.js.map +1 -0
  193. package/lib/schedule/local-type.d.ts +3 -0
  194. package/lib/schedule/local-type.d.ts.map +1 -0
  195. package/lib/schedule/local-type.js +2 -0
  196. package/lib/schedule/local-type.js.map +1 -0
  197. package/lib/schedule/scheduler.d.ts +4 -0
  198. package/lib/schedule/scheduler.d.ts.map +1 -0
  199. package/lib/schedule/scheduler.js +3 -0
  200. package/lib/schedule/scheduler.js.map +1 -0
  201. package/lib/{lifecycle/timeout → schedule}/timeout.d.ts +2 -3
  202. package/lib/schedule/timeout.d.ts.map +1 -0
  203. package/lib/{lifecycle/timeout → schedule}/timeout.js +5 -11
  204. package/lib/schedule/timeout.js.map +1 -0
  205. package/lib/state/{StateMachine.d.ts → simple-state-machine.d.ts} +1 -1
  206. package/lib/state/simple-state-machine.d.ts.map +1 -0
  207. package/lib/state/{StateMachine.js → simple-state-machine.js} +1 -1
  208. package/lib/state/simple-state-machine.js.map +1 -0
  209. package/lib/string/{castCase.d.ts → case-cast.d.ts} +1 -1
  210. package/lib/string/case-cast.d.ts.map +1 -0
  211. package/lib/string/{castCase.js → case-cast.js} +1 -1
  212. package/lib/string/case-cast.js.map +1 -0
  213. package/lib/string/{escapeRegexp.d.ts → escape-regexp.d.ts} +1 -1
  214. package/lib/string/escape-regexp.d.ts.map +1 -0
  215. package/lib/string/{escapeRegexp.js → escape-regexp.js} +1 -1
  216. package/lib/string/escape-regexp.js.map +1 -0
  217. package/lib/string/{sizeString.d.ts → human-bytes.d.ts} +1 -1
  218. package/lib/string/human-bytes.d.ts.map +1 -0
  219. package/lib/string/{sizeString.js → human-bytes.js} +1 -1
  220. package/lib/string/human-bytes.js.map +1 -0
  221. package/lib/tsconfig.tsbuildinfo +1 -1
  222. package/lib/typing-helper/callback.d.ts +5 -0
  223. package/lib/typing-helper/callback.d.ts.map +1 -0
  224. package/lib/typing-helper/callback.js +2 -0
  225. package/lib/typing-helper/callback.js.map +1 -0
  226. package/lib/typing-helper/deep.partial.d.ts.map +1 -0
  227. package/lib/typing-helper/deep.partial.js.map +1 -0
  228. package/lib/typing-helper/deep.readonly.d.ts.map +1 -0
  229. package/lib/typing-helper/deep.readonly.js.map +1 -0
  230. package/lib/typing-helper/deep.required.d.ts.map +1 -0
  231. package/lib/typing-helper/deep.required.js.map +1 -0
  232. package/lib/typing-helper/deep.writable.d.ts.map +1 -0
  233. package/lib/typing-helper/deep.writable.js.map +1 -0
  234. package/lib/typing-helper/literal.d.ts.map +1 -0
  235. package/lib/{typingHelper → typing-helper}/literal.js.map +1 -1
  236. package/package.json +5 -4
  237. package/src/autoindex.ts +236 -219
  238. package/src/date/{timeString.ts → to-string.ts} +28 -29
  239. package/src/debugging/{tryInspect.ts → inspect.ts} +1 -1
  240. package/src/debugging/object-with-name.ts +64 -0
  241. package/src/debugging/serializable.ts +1 -1
  242. package/src/error/convert-unknown.ts +9 -0
  243. package/src/error/{getFrame.ts → get-frame.ts} +1 -1
  244. package/src/error/{pretty.ts → pretty.nodejs.ts} +3 -2
  245. package/src/function/{asyncCallbackList.ts → callback-list.async.ts} +2 -7
  246. package/src/function/callback-list.delay.ts +29 -0
  247. package/src/function/{callbackList.ts → callback-list.ts} +1 -1
  248. package/src/legacy/rename.ts +15 -0
  249. package/src/lifecycle/{promise/cancellationToken → cancellation}/driver.browser.ts +3 -4
  250. package/src/lifecycle/{promise/cancellationToken → cancellation}/driver.common.ts +3 -2
  251. package/src/lifecycle/{promise/cancellationToken → cancellation}/source.ts +4 -4
  252. package/src/lifecycle/dispose/async-disposable.ts +41 -0
  253. package/src/lifecycle/dispose/bridges/function.ts +31 -0
  254. package/src/lifecycle/dispose/bridges/native.ts +23 -0
  255. package/src/lifecycle/dispose/bridges/streams.ts +70 -0
  256. package/src/lifecycle/dispose/debug.ts +22 -4
  257. package/src/lifecycle/dispose/disposable.ts +162 -0
  258. package/src/lifecycle/dispose/disposableEvent.ts +20 -86
  259. package/src/lifecycle/dispose/disposedError.ts +34 -17
  260. package/src/lifecycle/dispose/sync-disposable.ts +53 -0
  261. package/src/lifecycle/event/event.ts +84 -81
  262. package/src/lifecycle/event/memorized.ts +13 -12
  263. package/src/lifecycle/event/type.ts +55 -0
  264. package/src/lifecycle/global/global-lifecycle.ts +49 -0
  265. package/src/log/logger.ts +1 -1
  266. package/src/{mapSet/customSet.ts → map-and-set/custom-set.ts} +7 -26
  267. package/src/{mapSet/extendMap.ts → map-and-set/required-map.ts} +21 -6
  268. package/src/object/objectSame.ts +1 -1
  269. package/src/path/pathArray.ts +1 -1
  270. package/src/platform/globalSingleton.ts +1 -1
  271. package/src/platform/os.ts +1 -1
  272. package/src/{lifecycle/promise/deferredPromise.ts → promise/deferred-promise.ts} +68 -27
  273. package/src/promise/{promiseCollection.ts → promise-list.ts} +2 -2
  274. package/src/reflection/classes/pointer.ts +54 -0
  275. package/src/reflection/classes/singleton.ts +30 -21
  276. package/src/reflection/methods/bind.ts +15 -23
  277. package/src/reflection/methods/memorize.ts +30 -23
  278. package/src/schedule/extendable-timer.ts +49 -0
  279. package/src/{lifecycle/timeout → schedule}/interval.ts +4 -4
  280. package/src/schedule/local-type.ts +2 -0
  281. package/src/schedule/scheduler.ts +8 -0
  282. package/src/{lifecycle/timeout → schedule}/timeout.ts +7 -13
  283. package/src/state/{StateMachine.ts → simple-state-machine.ts} +3 -4
  284. package/src/tsconfig.json +3 -1
  285. package/src/typing-helper/callback.ts +4 -0
  286. package/lib/array/arrayDiff.d.ts.map +0 -1
  287. package/lib/array/arrayDiff.js.map +0 -1
  288. package/lib/array/arraySame.d.ts.map +0 -1
  289. package/lib/array/arraySame.js.map +0 -1
  290. package/lib/array/arrayUnique.d.ts.map +0 -1
  291. package/lib/array/arrayUnique.js.map +0 -1
  292. package/lib/array/normalizeArray.d.ts.map +0 -1
  293. package/lib/array/normalizeArray.js.map +0 -1
  294. package/lib/array/sortAlpha.d.ts.map +0 -1
  295. package/lib/array/sortAlpha.js.map +0 -1
  296. package/lib/date/isInvalid.d.ts.map +0 -1
  297. package/lib/date/isInvalid.js.map +0 -1
  298. package/lib/date/timeString.d.ts.map +0 -1
  299. package/lib/date/timeString.js.map +0 -1
  300. package/lib/debugging/tryInspect.d.ts.map +0 -1
  301. package/lib/debugging/tryInspect.js.map +0 -1
  302. package/lib/error/convertUnknown.d.ts +0 -2
  303. package/lib/error/convertUnknown.d.ts.map +0 -1
  304. package/lib/error/convertUnknown.js +0 -9
  305. package/lib/error/convertUnknown.js.map +0 -1
  306. package/lib/error/getFrame.d.ts.map +0 -1
  307. package/lib/error/getFrame.js.map +0 -1
  308. package/lib/error/pretty.d.ts.map +0 -1
  309. package/lib/error/pretty.js.map +0 -1
  310. package/lib/error/stackTrace.d.ts.map +0 -1
  311. package/lib/error/stackTrace.js.map +0 -1
  312. package/lib/function/asyncCallbackList.d.ts.map +0 -1
  313. package/lib/function/asyncCallbackList.js.map +0 -1
  314. package/lib/function/callbackList.d.ts.map +0 -1
  315. package/lib/function/callbackList.js.map +0 -1
  316. package/lib/function/delayCallbackList.d.ts +0 -17
  317. package/lib/function/delayCallbackList.d.ts.map +0 -1
  318. package/lib/function/delayCallbackList.js +0 -36
  319. package/lib/function/delayCallbackList.js.map +0 -1
  320. package/lib/function/functionName.d.ts +0 -26
  321. package/lib/function/functionName.d.ts.map +0 -1
  322. package/lib/function/functionName.js +0 -27
  323. package/lib/function/functionName.js.map +0 -1
  324. package/lib/lifecycle/dispose/bridges/rxjs.d.ts +0 -8
  325. package/lib/lifecycle/dispose/bridges/rxjs.d.ts.map +0 -1
  326. package/lib/lifecycle/dispose/bridges/rxjs.js +0 -4
  327. package/lib/lifecycle/dispose/bridges/rxjs.js.map +0 -1
  328. package/lib/lifecycle/dispose/lifecycle.async.d.ts +0 -37
  329. package/lib/lifecycle/dispose/lifecycle.async.d.ts.map +0 -1
  330. package/lib/lifecycle/dispose/lifecycle.async.js +0 -111
  331. package/lib/lifecycle/dispose/lifecycle.async.js.map +0 -1
  332. package/lib/lifecycle/dispose/lifecycle.d.ts +0 -32
  333. package/lib/lifecycle/dispose/lifecycle.d.ts.map +0 -1
  334. package/lib/lifecycle/dispose/lifecycle.global.d.ts.map +0 -1
  335. package/lib/lifecycle/dispose/lifecycle.global.js.map +0 -1
  336. package/lib/lifecycle/dispose/lifecycle.js +0 -67
  337. package/lib/lifecycle/dispose/lifecycle.js.map +0 -1
  338. package/lib/lifecycle/dispose/lifecycle.sync.d.ts +0 -45
  339. package/lib/lifecycle/dispose/lifecycle.sync.d.ts.map +0 -1
  340. package/lib/lifecycle/dispose/lifecycle.sync.js +0 -115
  341. package/lib/lifecycle/dispose/lifecycle.sync.js.map +0 -1
  342. package/lib/lifecycle/promise/cancel.d.ts +0 -10
  343. package/lib/lifecycle/promise/cancel.d.ts.map +0 -1
  344. package/lib/lifecycle/promise/cancel.js +0 -15
  345. package/lib/lifecycle/promise/cancel.js.map +0 -1
  346. package/lib/lifecycle/promise/cancellationToken/driver.browser.d.ts.map +0 -1
  347. package/lib/lifecycle/promise/cancellationToken/driver.browser.js.map +0 -1
  348. package/lib/lifecycle/promise/cancellationToken/driver.common.d.ts.map +0 -1
  349. package/lib/lifecycle/promise/cancellationToken/driver.common.js.map +0 -1
  350. package/lib/lifecycle/promise/cancellationToken/source.d.ts.map +0 -1
  351. package/lib/lifecycle/promise/cancellationToken/source.js.map +0 -1
  352. package/lib/lifecycle/promise/deferredPromise.d.ts.map +0 -1
  353. package/lib/lifecycle/promise/deferredPromise.js.map +0 -1
  354. package/lib/lifecycle/timeout/interval.d.ts.map +0 -1
  355. package/lib/lifecycle/timeout/interval.js.map +0 -1
  356. package/lib/lifecycle/timeout/timeout.d.ts.map +0 -1
  357. package/lib/lifecycle/timeout/timeout.js.map +0 -1
  358. package/lib/lifecycle/timeout/timeoutError.d.ts +0 -11
  359. package/lib/lifecycle/timeout/timeoutError.d.ts.map +0 -1
  360. package/lib/lifecycle/timeout/timeoutError.js +0 -16
  361. package/lib/lifecycle/timeout/timeoutError.js.map +0 -1
  362. package/lib/mapSet/customSet.d.ts.map +0 -1
  363. package/lib/mapSet/customSet.js.map +0 -1
  364. package/lib/mapSet/extendMap.d.ts +0 -21
  365. package/lib/mapSet/extendMap.d.ts.map +0 -1
  366. package/lib/mapSet/extendMap.js +0 -26
  367. package/lib/mapSet/extendMap.js.map +0 -1
  368. package/lib/promise/awaitIterator.d.ts.map +0 -1
  369. package/lib/promise/awaitIterator.js.map +0 -1
  370. package/lib/promise/finishAllPromise.d.ts +0 -13
  371. package/lib/promise/finishAllPromise.d.ts.map +0 -1
  372. package/lib/promise/finishAllPromise.js +0 -37
  373. package/lib/promise/finishAllPromise.js.map +0 -1
  374. package/lib/promise/promiseBool.d.ts.map +0 -1
  375. package/lib/promise/promiseBool.js.map +0 -1
  376. package/lib/promise/promiseCollection.d.ts.map +0 -1
  377. package/lib/promise/promiseCollection.js.map +0 -1
  378. package/lib/promise/timeoutPromiseCollection.d.ts +0 -7
  379. package/lib/promise/timeoutPromiseCollection.d.ts.map +0 -1
  380. package/lib/promise/timeoutPromiseCollection.js +0 -20
  381. package/lib/promise/timeoutPromiseCollection.js.map +0 -1
  382. package/lib/reflection/classes/hookClass.d.ts +0 -11
  383. package/lib/reflection/classes/hookClass.d.ts.map +0 -1
  384. package/lib/reflection/classes/hookClass.js +0 -34
  385. package/lib/reflection/classes/hookClass.js.map +0 -1
  386. package/lib/reflection/methods/initOnRead.d.ts +0 -7
  387. package/lib/reflection/methods/initOnRead.d.ts.map +0 -1
  388. package/lib/reflection/methods/initOnRead.js +0 -11
  389. package/lib/reflection/methods/initOnRead.js.map +0 -1
  390. package/lib/state/StateMachine.d.ts.map +0 -1
  391. package/lib/state/StateMachine.js.map +0 -1
  392. package/lib/string/castCase.d.ts.map +0 -1
  393. package/lib/string/castCase.js.map +0 -1
  394. package/lib/string/escapeRegexp.d.ts.map +0 -1
  395. package/lib/string/escapeRegexp.js.map +0 -1
  396. package/lib/string/sizeString.d.ts.map +0 -1
  397. package/lib/string/sizeString.js.map +0 -1
  398. package/lib/typingHelper/deep.partial.d.ts.map +0 -1
  399. package/lib/typingHelper/deep.partial.js.map +0 -1
  400. package/lib/typingHelper/deep.readonly.d.ts.map +0 -1
  401. package/lib/typingHelper/deep.readonly.js.map +0 -1
  402. package/lib/typingHelper/deep.required.d.ts.map +0 -1
  403. package/lib/typingHelper/deep.required.js.map +0 -1
  404. package/lib/typingHelper/deep.writable.d.ts.map +0 -1
  405. package/lib/typingHelper/deep.writable.js.map +0 -1
  406. package/lib/typingHelper/literal.d.ts.map +0 -1
  407. package/src/error/convertUnknown.ts +0 -9
  408. package/src/function/delayCallbackList.ts +0 -45
  409. package/src/function/functionName.ts +0 -44
  410. package/src/lifecycle/dispose/bridges/rxjs.ts +0 -6
  411. package/src/lifecycle/dispose/lifecycle.async.ts +0 -134
  412. package/src/lifecycle/dispose/lifecycle.global.ts +0 -66
  413. package/src/lifecycle/dispose/lifecycle.sync.ts +0 -133
  414. package/src/lifecycle/dispose/lifecycle.ts +0 -94
  415. package/src/lifecycle/promise/cancel.ts +0 -16
  416. package/src/lifecycle/timeout/timeoutError.ts +0 -18
  417. package/src/promise/finishAllPromise.ts +0 -50
  418. package/src/promise/timeoutPromiseCollection.ts +0 -22
  419. package/src/reflection/classes/hookClass.ts +0 -47
  420. package/src/reflection/methods/initOnRead.ts +0 -11
  421. /package/lib/lifecycle/{promise/cancellationToken → cancellation}/driver.browser.d.ts +0 -0
  422. /package/lib/lifecycle/{promise/cancellationToken → cancellation}/driver.browser.js +0 -0
  423. /package/lib/lifecycle/{promise/cancellationToken → cancellation}/driver.common.d.ts +0 -0
  424. /package/lib/{typingHelper → typing-helper}/deep.partial.d.ts +0 -0
  425. /package/lib/{typingHelper → typing-helper}/deep.partial.js +0 -0
  426. /package/lib/{typingHelper → typing-helper}/deep.readonly.d.ts +0 -0
  427. /package/lib/{typingHelper → typing-helper}/deep.readonly.js +0 -0
  428. /package/lib/{typingHelper → typing-helper}/deep.required.d.ts +0 -0
  429. /package/lib/{typingHelper → typing-helper}/deep.required.js +0 -0
  430. /package/lib/{typingHelper → typing-helper}/deep.writable.d.ts +0 -0
  431. /package/lib/{typingHelper → typing-helper}/deep.writable.js +0 -0
  432. /package/lib/{typingHelper → typing-helper}/literal.d.ts +0 -0
  433. /package/lib/{typingHelper → typing-helper}/literal.js +0 -0
  434. /package/src/array/{arrayDiff.ts → diff.ts} +0 -0
  435. /package/src/array/{arraySame.ts → is-same.ts} +0 -0
  436. /package/src/array/{normalizeArray.ts → normalize.ts} +0 -0
  437. /package/src/array/{sortAlpha.ts → sort-alpha.ts} +0 -0
  438. /package/src/array/{arrayUnique.ts → unique.ts} +0 -0
  439. /package/src/date/{isInvalid.ts → is-invalid.ts} +0 -0
  440. /package/src/error/{stackTrace.ts → stack-trace.ts} +0 -0
  441. /package/src/promise/{awaitIterator.ts → await-iterator.ts} +0 -0
  442. /package/src/promise/{promiseBool.ts → promise-bool.ts} +0 -0
  443. /package/src/string/{castCase.ts → case-cast.ts} +0 -0
  444. /package/src/string/{escapeRegexp.ts → escape-regexp.ts} +0 -0
  445. /package/src/string/{sizeString.ts → human-bytes.ts} +0 -0
  446. /package/src/{typingHelper → typing-helper}/deep.partial.ts +0 -0
  447. /package/src/{typingHelper → typing-helper}/deep.readonly.ts +0 -0
  448. /package/src/{typingHelper → typing-helper}/deep.required.ts +0 -0
  449. /package/src/{typingHelper → typing-helper}/deep.writable.ts +0 -0
  450. /package/src/{typingHelper → typing-helper}/literal.ts +0 -0
@@ -74,27 +74,25 @@ export namespace humanDate {
74
74
 
75
75
  /**
76
76
  * format time delta (in ms) to string, like: '1d'
77
- * when ms<=0, returns '0s'
77
+ * when delta<=0, returns '0s'
78
78
  *
79
79
  * format can set by `setLocaleFormatter`
80
80
  * day is the largest unit
81
81
  */
82
82
  export function deltaTiny(from: number, to: number): string;
83
83
  export function deltaTiny(ms: number): string;
84
- export function deltaTiny(ms: number, to?: number) {
85
- if (arguments.length === 2) {
86
- ms = to! - ms;
87
- }
88
- if (ms > oneDay) {
89
- return formatters.d(Math.floor(ms / oneDay));
90
- } else if (ms > oneHour) {
91
- return formatters.h(Math.floor(ms / oneHour));
92
- } else if (ms > oneMinute) {
93
- return formatters.m(Math.floor(ms / oneMinute));
94
- } else if (ms > oneSecond) {
95
- return formatters.s(Math.floor(ms / oneSecond));
96
- } else if (ms > 0) {
97
- return formatters.ms(ms);
84
+ export function deltaTiny(from: number, to?: number) {
85
+ const delta = to !== undefined ? from - to : from;
86
+ if (delta > oneDay) {
87
+ return formatters.d(Math.floor(delta / oneDay));
88
+ } else if (delta > oneHour) {
89
+ return formatters.h(Math.floor(delta / oneHour));
90
+ } else if (delta > oneMinute) {
91
+ return formatters.m(Math.floor(delta / oneMinute));
92
+ } else if (delta > oneSecond) {
93
+ return formatters.s(Math.floor(delta / oneSecond));
94
+ } else if (delta > 0) {
95
+ return formatters.ms(Math.floor(delta));
98
96
  } else {
99
97
  return '0s';
100
98
  }
@@ -102,27 +100,21 @@ export namespace humanDate {
102
100
 
103
101
  /**
104
102
  * format time delta (in ms) to string, like: '1d10m42s'
105
- * only return XXXms when ms<1000
106
- * when ms<=0, returns '0s'
103
+ * only return XXXms when delta<1min
104
+ * when delta<=0, returns '0s'
107
105
  *
108
106
  * format can set by `setLocaleFormatter`
109
107
  * day is the largest unit
110
108
  */
111
109
  export function delta(from: number, to: number): string;
112
- export function delta(ms: number): string;
113
- export function delta(ms: number, to?: number) {
114
- if (arguments.length === 2) {
115
- ms = to! - ms;
116
- }
117
- if (ms <= 0) {
110
+ export function delta(deltaMs: number): string;
111
+ export function delta(from: number, to?: number) {
112
+ const delta = to !== undefined ? from - to : from;
113
+ if (delta <= 0) {
118
114
  return '0s';
119
115
  }
120
116
 
121
- // ms
122
- if (ms < oneSecond) {
123
- return formatters.ms(ms);
124
- }
125
-
117
+ let ms = delta;
126
118
  let ret = '';
127
119
  if (ms > oneDay) {
128
120
  ret += formatters.d(Math.floor(ms / oneDay));
@@ -136,7 +128,14 @@ export namespace humanDate {
136
128
  ret += formatters.m(Math.floor(ms / oneMinute));
137
129
  ms = ms % oneMinute;
138
130
  }
139
- ret += formatters.s(Math.floor(ms / oneSecond));
131
+ if (ms > oneSecond) {
132
+ ret += formatters.s(Math.floor(ms / oneSecond));
133
+ ms = ms % oneSecond;
134
+ }
135
+ if (ms > 0 && delta < oneMinute) {
136
+ ret += formatters.ms(Math.floor(ms));
137
+ }
138
+
140
139
  return ret;
141
140
  }
142
141
  }
@@ -16,7 +16,7 @@ function tryGetSymbol() {
16
16
  * try to call `inspect` method of an object, if not exists, call `toString`.
17
17
  * @returns {string}
18
18
  */
19
- export function tryInspect(object: any) {
19
+ export function tryInspect(object: any): string {
20
20
  if (!object || typeof object !== 'object') {
21
21
  return JSON.stringify(object);
22
22
  }
@@ -0,0 +1,64 @@
1
+ import { definePrivateConstant } from '../autoindex.js';
2
+
3
+ export interface NamedObject {
4
+ displayName: string;
5
+ }
6
+
7
+ /**
8
+ * Get displayName/name of a object
9
+ */
10
+ export function objectName<T = unknown>(func: NonNullable<T>) {
11
+ return (func as MaybeNamed).displayName || (func as MaybeNamed).name;
12
+ }
13
+
14
+ /**
15
+ * Set displayName of a object
16
+ */
17
+ export function nameObject<T extends {} = any>(name: string, object: T): T & NamedObject {
18
+ if (typeof object === 'function') {
19
+ definePrivateConstant(object, 'name', name);
20
+ } else if ('name' in object) {
21
+ definePrivateConstant(object, 'displayName', name);
22
+ } else {
23
+ definePrivateConstant(object, 'name', name);
24
+ }
25
+ definePrivateConstant(object, Symbol.toStringTag, `${object.constructor.name}: ${name}`);
26
+ return object as any;
27
+ }
28
+
29
+ export interface MaybeNamed {
30
+ readonly name?: string;
31
+ readonly displayName?: string;
32
+ }
33
+
34
+ /**
35
+ * Assert function must have oneof displayName/name property
36
+ */
37
+ export function assertObjectHasName<T = unknown>(func: NonNullable<T>): asserts func is T & NamedObject {
38
+ if (!(func as MaybeNamed).displayName && !(func as MaybeNamed).name) {
39
+ console.error(func);
40
+ throw new TypeError('object must have name!');
41
+ }
42
+ }
43
+
44
+ /**
45
+ * Function with displayName
46
+ */
47
+ export interface NamedFunction extends Function {
48
+ displayName: string;
49
+ }
50
+ /**
51
+ * Function with displayName
52
+ */
53
+ export interface MaybeNamedFunction extends Function {
54
+ displayName?: string;
55
+ }
56
+
57
+ /** like objectName but return <anonymous> */
58
+ export function functionName(func: Function) {
59
+ return objectName(func) || '<anonymous>';
60
+ }
61
+ /** @deprecated use nameObject */
62
+ export const nameFunction = nameObject;
63
+ /** @deprecated use assertObjectHasName */
64
+ export const assertFunctionHasName = assertObjectHasName;
@@ -32,11 +32,11 @@ export function isSerializable(value: any): SerializableKind {
32
32
  const t = typeof value;
33
33
  switch (t) {
34
34
  case 'bigint':
35
- // @ts-expect-error
36
35
  case 'number':
37
36
  if (Number.isNaN(value) || Number.POSITIVE_INFINITY === value || Number.NEGATIVE_INFINITY === value) {
38
37
  return SerializableKind.Invalid;
39
38
  }
39
+ return SerializableKind.Primitive;
40
40
  case 'boolean':
41
41
  case 'string':
42
42
  case 'undefined':
@@ -0,0 +1,9 @@
1
+ import { getErrorFrame } from './get-frame.js';
2
+
3
+ export function convertCaughtError(e: unknown): Error {
4
+ if (e instanceof Error) {
5
+ return e;
6
+ }
7
+ console.error('Caught invalid error at %s, type %s, value %s.', getErrorFrame(new Error(), 1), typeof e, e);
8
+ return new Error(`Invalid: ${e}`);
9
+ }
@@ -1,4 +1,4 @@
1
- import type { IWithStack } from './stackTrace.js';
1
+ import type { IWithStack } from './stack-trace.js';
2
2
 
3
3
  /**
4
4
  * Get nth line of Error.stack
@@ -3,7 +3,7 @@ import { relativePath } from '../path/normalizePath.js';
3
3
  import { globalObject } from '../platform/globalObject.js';
4
4
  import { isNative } from '../platform/os.js';
5
5
  import { vscEscapeValue } from './pretty.vscode.js';
6
- import { createStackTraceHolder } from './stackTrace.js';
6
+ import { createStackTraceHolder } from './stack-trace.js';
7
7
 
8
8
  const process = globalObject.process;
9
9
  const window = globalObject.window;
@@ -338,13 +338,14 @@ const regErrorClassName = /^(\S+):/;
338
338
 
339
339
  /**
340
340
  * Pretty formats an error object.
341
+ * only meanfull in nodejs
341
342
  * @param e The error object to format.
342
343
  * @param withMessage Whether to include the error message.
343
344
  */
344
345
  export function prettyFormatError<ErrorType extends IError = IError>(e: ErrorType, withMessage?: boolean): string;
345
346
  /** @internal */
346
347
  export function prettyFormatError<ErrorType extends IError = IError>(e: ErrorType, withMessage?: boolean, boundary?: CallableFunction): string;
347
- export function prettyFormatError<ErrorType extends IError = IError>(e: ErrorType, withMessage = true, boundary: CallableFunction = prettyPrintError) {
348
+ export function prettyFormatError<ErrorType extends IError = IError>(e: ErrorType, withMessage = true, boundary: CallableFunction = prettyFormatError) {
348
349
  if (!e || !e.stack) {
349
350
  if (withMessage) {
350
351
  const msg = e?.message || 'Unknown Error';
@@ -1,5 +1,3 @@
1
- import { nameFunction } from './functionName.js';
2
-
3
1
  export interface MyAsyncCallback<Argument extends unknown[]> {
4
2
  displayName?: string;
5
3
 
@@ -7,7 +5,7 @@ export interface MyAsyncCallback<Argument extends unknown[]> {
7
5
  }
8
6
 
9
7
  /**
10
- * like CallbackList, but async
8
+ * like CallbackList, but async run one by one
11
9
  */
12
10
  export class AsyncCallbackList<Argument extends unknown[]> {
13
11
  protected list: MyAsyncCallback<Argument>[] = [];
@@ -32,13 +30,10 @@ export class AsyncCallbackList<Argument extends unknown[]> {
32
30
  * @param name optional name of `item` (will assign displayName to `item`)
33
31
  * @returns function list length
34
32
  */
35
- add(item: MyAsyncCallback<Argument>, name?: string): number {
33
+ add(item: MyAsyncCallback<Argument>): number {
36
34
  if (this.running) {
37
35
  throw new Error("Can not add callback when it's running.");
38
36
  }
39
- if (name) {
40
- nameFunction(name, item);
41
- }
42
37
  return this.list.push(item);
43
38
  }
44
39
 
@@ -0,0 +1,29 @@
1
+ export interface MyDelayCallback<Argument extends unknown[]> {
2
+ displayName?: string;
3
+ (...param: Argument): void;
4
+ }
5
+
6
+ /**
7
+ * remember arguments after run
8
+ * run all later added function with memorized argument
9
+ */
10
+ export class MemorizedOnceCallbackList<Argument extends unknown[]> {
11
+ protected list: MyDelayCallback<Argument>[] = [];
12
+
13
+ count() {
14
+ return this.list.length;
15
+ }
16
+
17
+ add(item: MyDelayCallback<Argument>) {
18
+ this.list.push(item);
19
+ }
20
+
21
+ run(...args: Argument) {
22
+ this.add = (item) => {
23
+ item(...args);
24
+ };
25
+ for (const item of this.list) {
26
+ item(...args);
27
+ }
28
+ }
29
+ }
@@ -1,4 +1,4 @@
1
- import { nameFunction } from './functionName.js';
1
+ import { nameFunction } from '../debugging/object-with-name.js';
2
2
 
3
3
  export type MyCallback<Argument extends unknown[]> = (...param: Argument) => boolean | undefined | void;
4
4
 
@@ -0,0 +1,15 @@
1
+ import { convertCaughtError } from '../error/convert-unknown.js';
2
+ import { functionToDisposable } from '../lifecycle/dispose/bridges/function.js';
3
+ import { EnhancedAsyncDisposable } from '../lifecycle/dispose/async-disposable.js';
4
+ import { EnhancedDisposable } from '../lifecycle/dispose/sync-disposable.js';
5
+
6
+ /** @deprecated use functionToDisposable */
7
+ export const toDisposable = functionToDisposable;
8
+
9
+ /** @deprecated use EnhancedAsyncDisposable */
10
+ export const AsyncDisposable = EnhancedAsyncDisposable;
11
+ /** @deprecated use EnhancedDisposable */
12
+ export const Disposable = EnhancedDisposable;
13
+
14
+ /** @deprecated use convertCaughtError */
15
+ export const convertCatchedError = convertCaughtError;
@@ -1,9 +1,8 @@
1
- import type { EventHandler } from '../../event/event.js';
2
-
1
+ import type { EventHandler } from '../event/type.js';
3
2
  import type { CancellationDriver, __CancellationToken } from './source.js';
4
3
 
5
- declare const AbortController: any; // TODO
6
- declare type AbortController = any; // TODO
4
+ declare const AbortController: any;
5
+ declare type AbortController = any;
7
6
 
8
7
  /** @internal */
9
8
  export class CancellationDriverBrowser implements CancellationDriver {
@@ -1,5 +1,6 @@
1
- import type { IDisposable } from '../../dispose/lifecycle.js';
2
- import { Emitter, type EventHandler } from '../../event/event.js';
1
+ import type { IDisposable } from '../dispose/disposable.js';
2
+ import { Emitter } from '../event/event.js';
3
+ import type { EventHandler } from '../event/type.js';
3
4
 
4
5
  import type { CancellationDriver, __CancellationToken } from './source.js';
5
6
 
@@ -1,7 +1,7 @@
1
- import { globalObject } from '../../../platform/globalObject.js';
2
- import type { IDisposable } from '../../dispose/lifecycle.js';
3
- import { DisposableOnce } from '../../dispose/lifecycle.sync.js';
4
- import type { EventHandler } from '../../event/event.js';
1
+ import { globalObject } from '../../platform/globalObject.js';
2
+ import type { IDisposable } from '../dispose/disposable.js';
3
+ import { DisposableOnce } from '../dispose/sync-disposable.js';
4
+ import type { EventHandler } from '../event/type.js';
5
5
  import { CancellationDriverBrowser } from './driver.browser.js';
6
6
  import { CancellationDriverCommon } from './driver.common.js';
7
7
 
@@ -0,0 +1,41 @@
1
+ import { convertCaughtError } from '../../autoindex.js';
2
+ import { dispose_name } from './debug.js';
3
+ import { AbstractEnhancedDisposable, type IAsyncDisposable } from './disposable.js';
4
+
5
+ /**
6
+ * Async version of Disposable
7
+ * @public
8
+ */
9
+ export class EnhancedAsyncDisposable extends AbstractEnhancedDisposable<true> implements IAsyncDisposable {
10
+ protected override async _dispose(disposables: readonly IAsyncDisposable[]): Promise<void> {
11
+ for (const d of disposables) {
12
+ try {
13
+ if (this._logger.enabled) this._logger(`dispose ${dispose_name(d)}`);
14
+ await d.dispose();
15
+ } catch (e) {
16
+ this._onDisposeError.fireNoError(convertCaughtError(e));
17
+ }
18
+ }
19
+ }
20
+
21
+ [Symbol.asyncDispose] = this.dispose;
22
+ }
23
+
24
+ /**
25
+ * Disposable everything in same time
26
+ * @public
27
+ */
28
+ export class UnorderedAsyncDisposable extends EnhancedAsyncDisposable {
29
+ protected override async _dispose(disposables: readonly IAsyncDisposable[]) {
30
+ const ps = disposables.map(async (d) => {
31
+ try {
32
+ if (this._logger.enabled) this._logger(`dispose ${dispose_name(d)}`);
33
+ await d.dispose();
34
+ } catch (e) {
35
+ this._onDisposeError.fireNoError(convertCaughtError(e));
36
+ }
37
+ });
38
+
39
+ await Promise.allSettled(ps);
40
+ }
41
+ }
@@ -0,0 +1,31 @@
1
+ import { functionName, nameObject } from '../../../debugging/object-with-name.js';
2
+ import { dispose_name } from '../debug.js';
3
+ import type { IAsyncDisposable, IDisposable } from '../disposable.js';
4
+
5
+ /**
6
+ * Convert "dispose function" to disposable object
7
+ * @public
8
+ */
9
+ export function functionToDisposable<RT>(fn: () => RT): RT extends Promise<any> ? IAsyncDisposable : IDisposable {
10
+ return {
11
+ get displayName() {
12
+ return `disposeFn(${functionName(fn)})`;
13
+ },
14
+ dispose: fn,
15
+ } as any;
16
+ }
17
+
18
+ /**
19
+ * convert disposable object to function
20
+ * eg.
21
+ *
22
+ * useEffect(() => {
23
+ * const disposable = new Xyz();
24
+ * return toFunction(disposable);
25
+ * }, [])
26
+ */
27
+ export function disposerFunction<T extends IDisposable | IAsyncDisposable>(obj: T): T extends IAsyncDisposable ? () => Promise<void> : () => void {
28
+ return nameObject(dispose_name(obj), () => {
29
+ obj.dispose();
30
+ }) as any;
31
+ }
@@ -0,0 +1,23 @@
1
+ import type { IAsyncDisposable, IDisposable } from '../disposable.js';
2
+
3
+ /**
4
+ * 把原生的Disposable/AsyncDisposable对象转换为本包可以使用的版本
5
+ */
6
+ export function fromNativeDisposable<T extends AsyncDisposable>(disposable: T): T & IAsyncDisposable;
7
+ export function fromNativeDisposable<T extends Disposable>(disposable: T): T & IDisposable;
8
+ export function fromNativeDisposable<T extends AsyncDisposable | Disposable>(disposable: T): T & IAsyncDisposable & IDisposable;
9
+ export function fromNativeDisposable(disposable: any): any {
10
+ if (!('dispose' in disposable)) {
11
+ Object.assign(disposable, { dispose: disposable[Symbol.asyncDispose] ?? disposable[Symbol.dispose] });
12
+ }
13
+ return disposable as any;
14
+ }
15
+
16
+ export function toNativeDisposable(disposable: IAsyncDisposable): AsyncDisposable;
17
+ export function toNativeDisposable(disposable: IDisposable): Disposable;
18
+ export function toNativeDisposable(disposable: any): any {
19
+ if (!('dispose' in disposable)) {
20
+ Object.assign(disposable, { dispose: disposable[Symbol.asyncDispose] ?? disposable[Symbol.dispose] });
21
+ }
22
+ return disposable as any;
23
+ }
@@ -0,0 +1,70 @@
1
+ import { objectName } from '../../../debugging/object-with-name.js';
2
+ import type { IAsyncDisposable } from '../disposable.js';
3
+
4
+ type ClosableAsync = {
5
+ close(): Promise<any>;
6
+ close(cb: (e?: Error) => void): void;
7
+ };
8
+
9
+ /**
10
+ * Convert "dispose function" to disposable object
11
+ * @public
12
+ */
13
+ export function closableToDisposable<T extends ClosableAsync>(closable: T): IAsyncDisposable {
14
+ const promised = closable.close.length === 0;
15
+
16
+ return {
17
+ get displayName() {
18
+ return `closable(${objectName(closable) || 'unknown'})`;
19
+ },
20
+ dispose() {
21
+ if (promised) {
22
+ return closable.close();
23
+ } else {
24
+ return new Promise<void>((resolve, reject) => {
25
+ return closable.close((error) => {
26
+ if (error) {
27
+ reject(error);
28
+ } else {
29
+ resolve();
30
+ }
31
+ });
32
+ });
33
+ }
34
+ },
35
+ };
36
+ }
37
+
38
+ type EndableAsync = {
39
+ end(): Promise<any>;
40
+ end(cb: (e?: Error) => void): void;
41
+ };
42
+
43
+ /**
44
+ * Convert "dispose function" to disposable object
45
+ * @public
46
+ */
47
+ export function endableToDisposable<T extends EndableAsync>(endable: T): IAsyncDisposable {
48
+ const promised = endable.end.length === 0;
49
+
50
+ return {
51
+ get displayName() {
52
+ return `endable(${objectName(endable) || 'unknown'})`;
53
+ },
54
+ dispose() {
55
+ if (promised) {
56
+ return endable.end();
57
+ } else {
58
+ return new Promise<void>((resolve, reject) => {
59
+ return endable.end((error) => {
60
+ if (error) {
61
+ reject(error);
62
+ } else {
63
+ resolve();
64
+ }
65
+ });
66
+ });
67
+ }
68
+ },
69
+ };
70
+ }
@@ -1,17 +1,35 @@
1
1
  import debug from 'debug';
2
- import type { IAsyncDisposable, IDisposable } from './lifecycle.js';
2
+ import type { IAsyncDisposable, IDisposable } from './disposable.js';
3
3
 
4
4
  /** @internal */
5
5
  export const _debug_dispose = debug('dispose');
6
6
 
7
7
  /** @internal */
8
- export function dispose_name(dis: IDisposable | IAsyncDisposable, defaultName = '<unknown>'): string {
9
- return dis.displayName || dis.name || name_of_func(dis.constructor) || name_of_func(dis.dispose) || defaultName;
8
+ export function dispose_name(disposable: IDisposable | IAsyncDisposable | AsyncDisposable | Disposable, defaultName = '<unknown>'): string {
9
+ const dis = disposable as any;
10
+ return (
11
+ dis.displayName ||
12
+ dis.name ||
13
+ name_of_func(dis.constructor) ||
14
+ name_of_func(dis.dispose) ||
15
+ name_of_func(dis[Symbol.dispose]) ||
16
+ name_of_func(dis[Symbol.asyncDispose]) ||
17
+ defaultName
18
+ );
10
19
  }
11
20
  function name_of_func(obj: any) {
12
21
  const name: string = obj.name;
13
22
 
14
- if (name === 'Object' || name === 'Function' || name === 'AsyncFunction' || name === 'GeneratorFunction' || name === 'AsyncGeneratorFunction' || name === 'Disposable' || name === 'AsyncDisposable' || name.toLowerCase() === 'dispose') {
23
+ if (
24
+ name === 'Object' ||
25
+ name === 'Function' ||
26
+ name === 'AsyncFunction' ||
27
+ name === 'GeneratorFunction' ||
28
+ name === 'AsyncGeneratorFunction' ||
29
+ name === 'Disposable' ||
30
+ name === 'AsyncDisposable' ||
31
+ name.toLowerCase() === 'dispose'
32
+ ) {
15
33
  return '';
16
34
  }
17
35