@idlebox/common 1.4.12 → 1.4.13

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 (316) hide show
  1. package/lib/array/arrayDiff.d.ts +18 -0
  2. package/lib/array/arrayDiff.d.ts.map +1 -0
  3. package/lib/array/arrayDiff.js +23 -0
  4. package/lib/array/arrayDiff.js.map +1 -0
  5. package/lib/array/arraySame.d.ts +6 -0
  6. package/lib/array/arraySame.d.ts.map +1 -0
  7. package/lib/array/arraySame.js +16 -0
  8. package/lib/array/arraySame.js.map +1 -0
  9. package/lib/array/arrayUnique.d.ts +21 -0
  10. package/lib/array/arrayUnique.d.ts.map +1 -0
  11. package/lib/array/arrayUnique.js +43 -0
  12. package/lib/array/arrayUnique.js.map +1 -0
  13. package/lib/array/normalizeArray.d.ts +6 -0
  14. package/lib/array/normalizeArray.d.ts.map +1 -0
  15. package/lib/array/normalizeArray.js +14 -0
  16. package/lib/array/normalizeArray.js.map +1 -0
  17. package/lib/array/sortAlpha.d.ts +8 -0
  18. package/lib/array/sortAlpha.d.ts.map +1 -0
  19. package/lib/array/sortAlpha.js +16 -0
  20. package/lib/array/sortAlpha.js.map +1 -0
  21. package/lib/autoindex.d.ts +184 -0
  22. package/lib/autoindex.d.ts.map +1 -0
  23. package/lib/autoindex.js +256 -0
  24. package/lib/autoindex.js.map +1 -0
  25. package/lib/date/consts.d.ts +6 -0
  26. package/lib/date/consts.d.ts.map +1 -0
  27. package/lib/date/consts.js +6 -0
  28. package/lib/date/consts.js.map +1 -0
  29. package/lib/date/isInvalid.d.ts +5 -0
  30. package/lib/date/isInvalid.d.ts.map +1 -0
  31. package/lib/date/isInvalid.js +7 -0
  32. package/lib/date/isInvalid.js.map +1 -0
  33. package/lib/date/sibling.d.ts +8 -0
  34. package/lib/date/sibling.d.ts.map +1 -0
  35. package/lib/date/sibling.js +29 -0
  36. package/lib/date/sibling.js.map +1 -0
  37. package/lib/date/timeString.d.ts +46 -0
  38. package/lib/date/timeString.d.ts.map +1 -0
  39. package/lib/date/timeString.js +126 -0
  40. package/lib/date/timeString.js.map +1 -0
  41. package/lib/date/unix.d.ts +9 -0
  42. package/lib/date/unix.d.ts.map +1 -0
  43. package/lib/date/unix.js +13 -0
  44. package/lib/date/unix.js.map +1 -0
  45. package/lib/debugging/serializable.d.ts +13 -0
  46. package/lib/debugging/serializable.d.ts.map +1 -0
  47. package/lib/debugging/serializable.js +124 -0
  48. package/lib/debugging/serializable.js.map +1 -0
  49. package/lib/debugging/tryInspect.d.ts +6 -0
  50. package/lib/debugging/tryInspect.d.ts.map +1 -0
  51. package/lib/debugging/tryInspect.js +40 -0
  52. package/lib/debugging/tryInspect.js.map +1 -0
  53. package/lib/error/convertUnknown.d.ts +2 -0
  54. package/lib/error/convertUnknown.d.ts.map +1 -0
  55. package/lib/error/convertUnknown.js +9 -0
  56. package/lib/error/convertUnknown.js.map +1 -0
  57. package/lib/error/getFrame.d.ts +6 -0
  58. package/lib/error/getFrame.d.ts.map +1 -0
  59. package/lib/error/getFrame.js +14 -0
  60. package/lib/error/getFrame.js.map +1 -0
  61. package/lib/error/known.d.ts +14 -0
  62. package/lib/error/known.d.ts.map +1 -0
  63. package/lib/error/known.js +34 -0
  64. package/lib/error/known.js.map +1 -0
  65. package/lib/error/pretty.d.ts +39 -0
  66. package/lib/error/pretty.d.ts.map +1 -0
  67. package/lib/error/pretty.js +348 -0
  68. package/lib/error/pretty.js.map +1 -0
  69. package/lib/error/pretty.vscode.d.ts +12 -0
  70. package/lib/error/pretty.vscode.d.ts.map +1 -0
  71. package/lib/error/pretty.vscode.js +95 -0
  72. package/lib/error/pretty.vscode.js.map +1 -0
  73. package/lib/error-wellknown/exit.error.d.ts +10 -0
  74. package/lib/error-wellknown/exit.error.d.ts.map +1 -0
  75. package/lib/error-wellknown/exit.error.js +14 -0
  76. package/lib/error-wellknown/exit.error.js.map +1 -0
  77. package/lib/function/asyncCallbackList.d.ts +29 -0
  78. package/lib/function/asyncCallbackList.d.ts.map +1 -0
  79. package/lib/function/asyncCallbackList.js +63 -0
  80. package/lib/function/asyncCallbackList.js.map +1 -0
  81. package/lib/function/callbackList.d.ts +34 -0
  82. package/lib/function/callbackList.d.ts.map +1 -0
  83. package/lib/function/callbackList.js +74 -0
  84. package/lib/function/callbackList.js.map +1 -0
  85. package/lib/function/delayCallbackList.d.ts +17 -0
  86. package/lib/function/delayCallbackList.d.ts.map +1 -0
  87. package/lib/function/delayCallbackList.js +36 -0
  88. package/lib/function/delayCallbackList.js.map +1 -0
  89. package/lib/function/functionName.d.ts +22 -0
  90. package/lib/function/functionName.d.ts.map +1 -0
  91. package/lib/function/functionName.js +27 -0
  92. package/lib/function/functionName.js.map +1 -0
  93. package/lib/lifecycle/dispose/bridges/rxjs.d.ts +8 -0
  94. package/lib/lifecycle/dispose/bridges/rxjs.d.ts.map +1 -0
  95. package/lib/lifecycle/dispose/bridges/rxjs.js +4 -0
  96. package/lib/lifecycle/dispose/bridges/rxjs.js.map +1 -0
  97. package/lib/lifecycle/dispose/debug.d.ts +7 -0
  98. package/lib/lifecycle/dispose/debug.d.ts.map +1 -0
  99. package/lib/lifecycle/dispose/debug.js +22 -0
  100. package/lib/lifecycle/dispose/debug.js.map +1 -0
  101. package/lib/lifecycle/dispose/disposableEvent.d.ts +17 -0
  102. package/lib/lifecycle/dispose/disposableEvent.d.ts.map +1 -0
  103. package/lib/lifecycle/dispose/disposableEvent.js +75 -0
  104. package/lib/lifecycle/dispose/disposableEvent.js.map +1 -0
  105. package/lib/lifecycle/dispose/disposedError.d.ts +11 -0
  106. package/lib/lifecycle/dispose/disposedError.d.ts.map +1 -0
  107. package/lib/lifecycle/dispose/disposedError.js +28 -0
  108. package/lib/lifecycle/dispose/disposedError.js.map +1 -0
  109. package/lib/lifecycle/dispose/lifecycle.async.d.ts +46 -0
  110. package/lib/lifecycle/dispose/lifecycle.async.d.ts.map +1 -0
  111. package/lib/lifecycle/dispose/lifecycle.async.js +110 -0
  112. package/lib/lifecycle/dispose/lifecycle.async.js.map +1 -0
  113. package/lib/lifecycle/dispose/lifecycle.d.ts +27 -0
  114. package/lib/lifecycle/dispose/lifecycle.d.ts.map +1 -0
  115. package/lib/lifecycle/dispose/lifecycle.global.d.ts +29 -0
  116. package/lib/lifecycle/dispose/lifecycle.global.d.ts.map +1 -0
  117. package/lib/lifecycle/dispose/lifecycle.global.js +57 -0
  118. package/lib/lifecycle/dispose/lifecycle.global.js.map +1 -0
  119. package/lib/lifecycle/dispose/lifecycle.js +42 -0
  120. package/lib/lifecycle/dispose/lifecycle.js.map +1 -0
  121. package/lib/lifecycle/dispose/lifecycle.sync.d.ts +45 -0
  122. package/lib/lifecycle/dispose/lifecycle.sync.d.ts.map +1 -0
  123. package/lib/lifecycle/dispose/lifecycle.sync.js +114 -0
  124. package/lib/lifecycle/dispose/lifecycle.sync.js.map +1 -0
  125. package/lib/lifecycle/event/event.d.ts +53 -0
  126. package/lib/lifecycle/event/event.d.ts.map +1 -0
  127. package/lib/lifecycle/event/event.js +137 -0
  128. package/lib/lifecycle/event/event.js.map +1 -0
  129. package/lib/lifecycle/event/memorized.d.ts +17 -0
  130. package/lib/lifecycle/event/memorized.d.ts.map +1 -0
  131. package/lib/lifecycle/event/memorized.js +34 -0
  132. package/lib/lifecycle/event/memorized.js.map +1 -0
  133. package/lib/lifecycle/promise/cancel.d.ts +10 -0
  134. package/lib/lifecycle/promise/cancel.d.ts.map +1 -0
  135. package/lib/lifecycle/promise/cancel.js +15 -0
  136. package/lib/lifecycle/promise/cancel.js.map +1 -0
  137. package/lib/lifecycle/promise/cancellationToken/driver.browser.d.ts +11 -0
  138. package/lib/lifecycle/promise/cancellationToken/driver.browser.d.ts.map +1 -0
  139. package/lib/lifecycle/promise/cancellationToken/driver.browser.js +42 -0
  140. package/lib/lifecycle/promise/cancellationToken/driver.browser.js.map +1 -0
  141. package/lib/lifecycle/promise/cancellationToken/driver.common.d.ts +11 -0
  142. package/lib/lifecycle/promise/cancellationToken/driver.common.d.ts.map +1 -0
  143. package/lib/lifecycle/promise/cancellationToken/driver.common.js +38 -0
  144. package/lib/lifecycle/promise/cancellationToken/driver.common.js.map +1 -0
  145. package/lib/lifecycle/promise/cancellationToken/source.d.ts +27 -0
  146. package/lib/lifecycle/promise/cancellationToken/source.d.ts.map +1 -0
  147. package/lib/lifecycle/promise/cancellationToken/source.js +26 -0
  148. package/lib/lifecycle/promise/cancellationToken/source.js.map +1 -0
  149. package/lib/lifecycle/promise/deferredPromise.d.ts +55 -0
  150. package/lib/lifecycle/promise/deferredPromise.d.ts.map +1 -0
  151. package/lib/lifecycle/promise/deferredPromise.js +114 -0
  152. package/lib/lifecycle/promise/deferredPromise.js.map +1 -0
  153. package/lib/lifecycle/timeout/interval.d.ts +27 -0
  154. package/lib/lifecycle/timeout/interval.d.ts.map +1 -0
  155. package/lib/lifecycle/timeout/interval.js +58 -0
  156. package/lib/lifecycle/timeout/interval.js.map +1 -0
  157. package/lib/lifecycle/timeout/timeout.d.ts +16 -0
  158. package/lib/lifecycle/timeout/timeout.d.ts.map +1 -0
  159. package/lib/lifecycle/timeout/timeout.js +53 -0
  160. package/lib/lifecycle/timeout/timeout.js.map +1 -0
  161. package/lib/lifecycle/timeout/timeoutError.d.ts +11 -0
  162. package/lib/lifecycle/timeout/timeoutError.d.ts.map +1 -0
  163. package/lib/lifecycle/timeout/timeoutError.js +16 -0
  164. package/lib/lifecycle/timeout/timeoutError.js.map +1 -0
  165. package/lib/log/logger.d.ts +46 -0
  166. package/lib/log/logger.d.ts.map +1 -0
  167. package/lib/log/logger.js +95 -0
  168. package/lib/log/logger.js.map +1 -0
  169. package/lib/mapSet/customSet.d.ts +31 -0
  170. package/lib/mapSet/customSet.d.ts.map +1 -0
  171. package/lib/mapSet/customSet.js +70 -0
  172. package/lib/mapSet/customSet.js.map +1 -0
  173. package/lib/mapSet/extendMap.d.ts +21 -0
  174. package/lib/mapSet/extendMap.d.ts.map +1 -0
  175. package/lib/mapSet/extendMap.js +26 -0
  176. package/lib/mapSet/extendMap.js.map +1 -0
  177. package/lib/misc/assertNotNull.d.ts +12 -0
  178. package/lib/misc/assertNotNull.d.ts.map +1 -0
  179. package/lib/misc/assertNotNull.js +20 -0
  180. package/lib/misc/assertNotNull.js.map +1 -0
  181. package/lib/misc/package.json.d.ts +100 -0
  182. package/lib/misc/package.json.d.ts.map +1 -0
  183. package/lib/misc/package.json.js +37 -0
  184. package/lib/misc/package.json.js.map +1 -0
  185. package/lib/object/definePublicConstant.d.ts +3 -0
  186. package/lib/object/definePublicConstant.d.ts.map +1 -0
  187. package/lib/object/definePublicConstant.js +17 -0
  188. package/lib/object/definePublicConstant.js.map +1 -0
  189. package/lib/object/initOnRead.d.ts +8 -0
  190. package/lib/object/initOnRead.d.ts.map +1 -0
  191. package/lib/object/initOnRead.js +23 -0
  192. package/lib/object/initOnRead.js.map +1 -0
  193. package/lib/object/objectPath.d.ts +6 -0
  194. package/lib/object/objectPath.d.ts.map +1 -0
  195. package/lib/object/objectPath.js +11 -0
  196. package/lib/object/objectPath.js.map +1 -0
  197. package/lib/object/objectSame.d.ts +11 -0
  198. package/lib/object/objectSame.d.ts.map +1 -0
  199. package/lib/object/objectSame.js +51 -0
  200. package/lib/object/objectSame.js.map +1 -0
  201. package/lib/path/isAbsolute.d.ts +10 -0
  202. package/lib/path/isAbsolute.d.ts.map +1 -0
  203. package/lib/path/isAbsolute.js +12 -0
  204. package/lib/path/isAbsolute.js.map +1 -0
  205. package/lib/path/normalizePath.d.ts +23 -0
  206. package/lib/path/normalizePath.d.ts.map +1 -0
  207. package/lib/path/normalizePath.js +125 -0
  208. package/lib/path/normalizePath.js.map +1 -0
  209. package/lib/path/pathArray.d.ts +54 -0
  210. package/lib/path/pathArray.d.ts.map +1 -0
  211. package/lib/path/pathArray.js +135 -0
  212. package/lib/path/pathArray.js.map +1 -0
  213. package/lib/platform/globalObject.d.ts +9 -0
  214. package/lib/platform/globalObject.d.ts.map +1 -0
  215. package/lib/platform/globalObject.js +17 -0
  216. package/lib/platform/globalObject.js.map +1 -0
  217. package/lib/platform/globalSingleton.d.ts +29 -0
  218. package/lib/platform/globalSingleton.d.ts.map +1 -0
  219. package/lib/platform/globalSingleton.js +60 -0
  220. package/lib/platform/globalSingleton.js.map +1 -0
  221. package/lib/platform/globalSymbol.d.ts +13 -0
  222. package/lib/platform/globalSymbol.d.ts.map +1 -0
  223. package/lib/platform/globalSymbol.js +34 -0
  224. package/lib/platform/globalSymbol.js.map +1 -0
  225. package/lib/platform/os.d.ts +17 -0
  226. package/lib/platform/os.d.ts.map +1 -0
  227. package/lib/platform/os.js +57 -0
  228. package/lib/platform/os.js.map +1 -0
  229. package/lib/promise/awaitIterator.d.ts +5 -0
  230. package/lib/promise/awaitIterator.d.ts.map +1 -0
  231. package/lib/promise/awaitIterator.js +22 -0
  232. package/lib/promise/awaitIterator.js.map +1 -0
  233. package/lib/promise/finishAllPromise.d.ts +13 -0
  234. package/lib/promise/finishAllPromise.d.ts.map +1 -0
  235. package/lib/promise/finishAllPromise.js +37 -0
  236. package/lib/promise/finishAllPromise.js.map +1 -0
  237. package/lib/promise/promiseBool.d.ts +6 -0
  238. package/lib/promise/promiseBool.d.ts.map +1 -0
  239. package/lib/promise/promiseBool.js +8 -0
  240. package/lib/promise/promiseBool.js.map +1 -0
  241. package/lib/promise/promiseCollection.d.ts +11 -0
  242. package/lib/promise/promiseCollection.d.ts.map +1 -0
  243. package/lib/promise/promiseCollection.js +34 -0
  244. package/lib/promise/promiseCollection.js.map +1 -0
  245. package/lib/promise/timeoutPromiseCollection.d.ts +7 -0
  246. package/lib/promise/timeoutPromiseCollection.d.ts.map +1 -0
  247. package/lib/promise/timeoutPromiseCollection.js +20 -0
  248. package/lib/promise/timeoutPromiseCollection.js.map +1 -0
  249. package/lib/reflection/classes/hookClass.d.ts +11 -0
  250. package/lib/reflection/classes/hookClass.d.ts.map +1 -0
  251. package/lib/reflection/classes/hookClass.js +34 -0
  252. package/lib/reflection/classes/hookClass.js.map +1 -0
  253. package/lib/reflection/classes/singleton.d.ts +7 -0
  254. package/lib/reflection/classes/singleton.d.ts.map +1 -0
  255. package/lib/reflection/classes/singleton.js +30 -0
  256. package/lib/reflection/classes/singleton.js.map +1 -0
  257. package/lib/reflection/methods/bind.d.ts +5 -0
  258. package/lib/reflection/methods/bind.d.ts.map +1 -0
  259. package/lib/reflection/methods/bind.js +25 -0
  260. package/lib/reflection/methods/bind.js.map +1 -0
  261. package/lib/reflection/methods/initOnRead.d.ts +7 -0
  262. package/lib/reflection/methods/initOnRead.d.ts.map +1 -0
  263. package/lib/reflection/methods/initOnRead.js +11 -0
  264. package/lib/reflection/methods/initOnRead.js.map +1 -0
  265. package/lib/reflection/methods/memorize.d.ts +8 -0
  266. package/lib/reflection/methods/memorize.d.ts.map +1 -0
  267. package/lib/reflection/methods/memorize.js +28 -0
  268. package/lib/reflection/methods/memorize.js.map +1 -0
  269. package/lib/state/StateMachine.d.ts +19 -0
  270. package/lib/state/StateMachine.d.ts.map +1 -0
  271. package/lib/state/StateMachine.js +30 -0
  272. package/lib/state/StateMachine.js.map +1 -0
  273. package/lib/string/castCase.d.ts +17 -0
  274. package/lib/string/castCase.d.ts.map +1 -0
  275. package/lib/string/castCase.js +53 -0
  276. package/lib/string/castCase.js.map +1 -0
  277. package/lib/string/concatType.generated.d.ts +29 -0
  278. package/lib/string/concatType.generated.d.ts.map +1 -0
  279. package/lib/string/concatType.generated.js +17 -0
  280. package/lib/string/concatType.generated.js.map +1 -0
  281. package/lib/string/escapeRegexp.d.ts +3 -0
  282. package/lib/string/escapeRegexp.d.ts.map +1 -0
  283. package/lib/string/escapeRegexp.js +5 -0
  284. package/lib/string/escapeRegexp.js.map +1 -0
  285. package/lib/string/pad2.d.ts +6 -0
  286. package/lib/string/pad2.d.ts.map +1 -0
  287. package/lib/string/pad2.js +11 -0
  288. package/lib/string/pad2.js.map +1 -0
  289. package/lib/string/sizeString.d.ts +13 -0
  290. package/lib/string/sizeString.d.ts.map +1 -0
  291. package/lib/string/sizeString.js +59 -0
  292. package/lib/string/sizeString.js.map +1 -0
  293. package/lib/tsconfig.tsbuildinfo +1 -0
  294. package/lib/typingHelper/deep.partial.d.ts +10 -0
  295. package/lib/typingHelper/deep.partial.d.ts.map +1 -0
  296. package/lib/typingHelper/deep.partial.js +2 -0
  297. package/lib/typingHelper/deep.partial.js.map +1 -0
  298. package/lib/typingHelper/deep.readonly.d.ts +10 -0
  299. package/lib/typingHelper/deep.readonly.d.ts.map +1 -0
  300. package/lib/typingHelper/deep.readonly.js +2 -0
  301. package/lib/typingHelper/deep.readonly.js.map +1 -0
  302. package/lib/typingHelper/deep.required.d.ts +10 -0
  303. package/lib/typingHelper/deep.required.d.ts.map +1 -0
  304. package/lib/typingHelper/deep.required.js +2 -0
  305. package/lib/typingHelper/deep.required.js.map +1 -0
  306. package/lib/typingHelper/deep.writable.d.ts +10 -0
  307. package/lib/typingHelper/deep.writable.d.ts.map +1 -0
  308. package/lib/typingHelper/deep.writable.js +2 -0
  309. package/lib/typingHelper/deep.writable.js.map +1 -0
  310. package/lib/typingHelper/literal.d.ts +2 -0
  311. package/lib/typingHelper/literal.d.ts.map +1 -0
  312. package/lib/typingHelper/literal.js +2 -0
  313. package/lib/typingHelper/literal.js.map +1 -0
  314. package/package.json +3 -3
  315. package/src/autoindex.ts +4 -0
  316. package/src/string/concatType.generated.ts +9 -4
@@ -0,0 +1,74 @@
1
+ import { nameFunction } from './functionName.js';
2
+ /**
3
+ * Manage a list of callback
4
+ */
5
+ export class CallbackList {
6
+ list = [];
7
+ running = false;
8
+ stop = false;
9
+ constructor() {
10
+ this.run = this.run.bind(this);
11
+ }
12
+ count() {
13
+ return this.list.length;
14
+ }
15
+ /**
16
+ * remove all callback
17
+ */
18
+ reset() {
19
+ if (this.running) {
20
+ throw new Error("Can not reset when it's running.");
21
+ }
22
+ this.list.length = 0;
23
+ }
24
+ /**
25
+ * @param name optional name of `item` (will assign displayName to `item`)
26
+ * @returns function list length
27
+ */
28
+ add(item, name) {
29
+ if (this.running) {
30
+ throw new Error("Can not add callback when it's running.");
31
+ }
32
+ if (name) {
33
+ nameFunction(name, item);
34
+ }
35
+ return this.list.push(item);
36
+ }
37
+ /**
38
+ * @returns if removed: return `item`; if did not exists: return null
39
+ */
40
+ remove(item) {
41
+ if (this.running) {
42
+ throw new Error("Can not remove callback when it's running.");
43
+ }
44
+ const found = this.list.indexOf(item);
45
+ if (found !== -1) {
46
+ return this.list.splice(found, 1)[0];
47
+ }
48
+ return null;
49
+ }
50
+ /**
51
+ * in a callback, call this.stopRun() to stop remain callbacks (not by return false)
52
+ * @returns {boolean} true if every callback called, false if stop in middle
53
+ */
54
+ run(...argument) {
55
+ if (this.running) {
56
+ throw new Error("can not run CallbackList in it's callback.");
57
+ }
58
+ this.stop = false;
59
+ this.running = true;
60
+ for (const cb of this.list) {
61
+ if (this.stop)
62
+ break;
63
+ cb(...argument);
64
+ }
65
+ this.running = false;
66
+ const ret = !this.stop;
67
+ this.stop = false;
68
+ return ret;
69
+ }
70
+ stopRun() {
71
+ this.stop = true;
72
+ }
73
+ }
74
+ //# sourceMappingURL=callbackList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"callbackList.js","sourceRoot":"","sources":["../../src/function/callbackList.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAQjD;;GAEG;AACH,MAAM,OAAO,YAAY;IACd,IAAI,GAA2B,EAAE,CAAC;IAClC,OAAO,GAAG,KAAK,CAAC;IAChB,IAAI,GAAG,KAAK,CAAC;IAEvB;QACC,IAAI,CAAC,GAAG,GAAI,IAAI,CAAC,GAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,KAAK;QACJ,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,KAAK;QACJ,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IACtB,CAAC;IAED;;;OAGG;IACH,GAAG,CAAC,IAA0B,EAAE,IAAa;QAC5C,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC5D,CAAC;QACD,IAAI,IAAI,EAAE,CAAC;YACV,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC1B,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,IAA0B;QAChC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAC/D,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC;QACvC,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;OAGG;IACH,GAAG,CAAC,GAAG,QAAkB;QACxB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAElB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5B,IAAI,IAAI,CAAC,IAAI;gBAAE,MAAM;YACrB,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QAErB,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,OAAO,GAAG,CAAC;IACZ,CAAC;IAED,OAAO;QACN,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,CAAC;CACD"}
@@ -0,0 +1,17 @@
1
+ export interface MyDelayCallback<Argument extends unknown[]> {
2
+ displayName?: string;
3
+ (...param: Argument): void;
4
+ }
5
+ /**
6
+ * remember arguments after run
7
+ * run all later added function with memorized argument
8
+ */
9
+ export declare class DelayCallbackList<Argument extends unknown[]> {
10
+ private delayArgument?;
11
+ private delayComplete;
12
+ protected list?: MyDelayCallback<Argument>[];
13
+ count(): number;
14
+ add(item: MyDelayCallback<Argument>, name?: string): void;
15
+ run(argument: Argument): void;
16
+ }
17
+ //# sourceMappingURL=delayCallbackList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delayCallbackList.d.ts","sourceRoot":"","sources":["../../src/function/delayCallbackList.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,eAAe,CAAC,QAAQ,SAAS,OAAO,EAAE;IAC1D,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,CAAC,GAAG,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;CAC3B;AAED;;;GAGG;AACH,qBAAa,iBAAiB,CAAC,QAAQ,SAAS,OAAO,EAAE;IACxD,OAAO,CAAC,aAAa,CAAC,CAAW;IACjC,OAAO,CAAC,aAAa,CAAS;IAE9B,SAAS,CAAC,IAAI,CAAC,EAAE,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAM;IAElD,KAAK;IAIL,GAAG,CAAC,IAAI,EAAE,eAAe,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM;IAWlD,GAAG,CAAC,QAAQ,EAAE,QAAQ;CAWtB"}
@@ -0,0 +1,36 @@
1
+ import { nameFunction } from './functionName.js';
2
+ /**
3
+ * remember arguments after run
4
+ * run all later added function with memorized argument
5
+ */
6
+ export class DelayCallbackList {
7
+ delayArgument;
8
+ delayComplete = false;
9
+ list = [];
10
+ count() {
11
+ return this.list?.length ?? 0;
12
+ }
13
+ add(item, name) {
14
+ if (name) {
15
+ nameFunction(name, item);
16
+ }
17
+ if (this.delayComplete) {
18
+ item(...this.delayArgument);
19
+ }
20
+ else {
21
+ this.list?.push(item);
22
+ }
23
+ }
24
+ run(argument) {
25
+ if (this.delayComplete) {
26
+ throw new Error('call to delay callback twice!');
27
+ }
28
+ this.delayComplete = true;
29
+ this.delayArgument = argument;
30
+ this.list?.forEach((cb) => {
31
+ cb(...argument);
32
+ });
33
+ this.list = undefined;
34
+ }
35
+ }
36
+ //# sourceMappingURL=delayCallbackList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delayCallbackList.js","sourceRoot":"","sources":["../../src/function/delayCallbackList.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAQjD;;;GAGG;AACH,MAAM,OAAO,iBAAiB;IACrB,aAAa,CAAY;IACzB,aAAa,GAAG,KAAK,CAAC;IAEpB,IAAI,GAAiC,EAAE,CAAC;IAElD,KAAK;QACJ,OAAO,IAAI,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,GAAG,CAAC,IAA+B,EAAE,IAAa;QACjD,IAAI,IAAI,EAAE,CAAC;YACV,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC1B,CAAC;QACD,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,IAAI,CAAC,GAAG,IAAI,CAAC,aAAc,CAAC,CAAC;QAC9B,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC;IACF,CAAC;IAED,GAAG,CAAC,QAAkB;QACrB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;QAC9B,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;YACzB,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;IACvB,CAAC;CACD"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Function with displayName
3
+ */
4
+ export interface NamedFunction extends Function {
5
+ displayName: string;
6
+ }
7
+ /**
8
+ * Get displayName/name of a function
9
+ */
10
+ export declare function functionName(func: Function): string;
11
+ /**
12
+ * Set displayName of a function
13
+ */
14
+ export declare function nameFunction<T extends Function>(name: string, func: T): T & NamedFunction;
15
+ export interface MaybeNamedFunction extends Function {
16
+ displayName?: string;
17
+ }
18
+ /**
19
+ * Assert function must have oneof displayName/name property
20
+ */
21
+ export declare function assertFunctionHasName(func: MaybeNamedFunction): void;
22
+ //# sourceMappingURL=functionName.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"functionName.d.ts","sourceRoot":"","sources":["../../src/function/functionName.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,QAAQ;IAC9C,WAAW,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,UAE1C;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,aAAa,CAOzF;AAED,MAAM,WAAW,kBAAmB,SAAQ,QAAQ;IACnD,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,kBAAkB,QAK7D"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Get displayName/name of a function
3
+ */
4
+ export function functionName(func) {
5
+ return func.displayName || func.name;
6
+ }
7
+ /**
8
+ * Set displayName of a function
9
+ */
10
+ export function nameFunction(name, func) {
11
+ return Object.assign(func, {
12
+ displayName: name,
13
+ inspect() {
14
+ return `[Function: ${name}]`;
15
+ },
16
+ });
17
+ }
18
+ /**
19
+ * Assert function must have oneof displayName/name property
20
+ */
21
+ export function assertFunctionHasName(func) {
22
+ if (!func.displayName && !func.name) {
23
+ console.error(func);
24
+ throw new TypeError('function must have name!');
25
+ }
26
+ }
27
+ //# sourceMappingURL=functionName.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"functionName.js","sourceRoot":"","sources":["../../src/function/functionName.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,IAAc;IAC1C,OAAQ,IAAsB,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC;AACzD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAqB,IAAY,EAAE,IAAO;IACrE,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;QAC1B,WAAW,EAAE,IAAI;QACjB,OAAO;YACN,OAAO,cAAc,IAAI,GAAG,CAAC;QAC9B,CAAC;KACD,CAAC,CAAC;AACJ,CAAC;AAMD;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAwB;IAC7D,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACrC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpB,MAAM,IAAI,SAAS,CAAC,0BAA0B,CAAC,CAAC;IACjD,CAAC;AACF,CAAC"}
@@ -0,0 +1,8 @@
1
+ interface Unsubscribable {
2
+ unsubscribe(): void;
3
+ }
4
+ export declare function unsubscribableToDisposable(subscription: Unsubscribable): {
5
+ dispose: () => void;
6
+ };
7
+ export {};
8
+ //# sourceMappingURL=rxjs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rxjs.d.ts","sourceRoot":"","sources":["../../../../src/lifecycle/dispose/bridges/rxjs.ts"],"names":[],"mappings":"AAAA,UAAU,cAAc;IACvB,WAAW,IAAI,IAAI,CAAC;CACpB;AACD,wBAAgB,0BAA0B,CAAC,YAAY,EAAE,cAAc;;EAEtE"}
@@ -0,0 +1,4 @@
1
+ export function unsubscribableToDisposable(subscription) {
2
+ return { dispose: () => subscription.unsubscribe() };
3
+ }
4
+ //# sourceMappingURL=rxjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rxjs.js","sourceRoot":"","sources":["../../../../src/lifecycle/dispose/bridges/rxjs.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,0BAA0B,CAAC,YAA4B;IACtE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,CAAC;AACtD,CAAC"}
@@ -0,0 +1,7 @@
1
+ import debug from 'debug';
2
+ import type { IAsyncDisposable, IDisposable } from './lifecycle.js';
3
+ /** @internal */
4
+ export declare const _debug_dispose: debug.Debugger;
5
+ /** @internal */
6
+ export declare function dispose_name(dis: IDisposable | IAsyncDisposable, defaultName?: string): string;
7
+ //# sourceMappingURL=debug.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../../../src/lifecycle/dispose/debug.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAEpE,gBAAgB;AAChB,eAAO,MAAM,cAAc,gBAAmB,CAAC;AAE/C,gBAAgB;AAChB,wBAAgB,YAAY,CAAC,GAAG,EAAE,WAAW,GAAG,gBAAgB,EAAE,WAAW,SAAc,GAAG,MAAM,CAEnG"}
@@ -0,0 +1,22 @@
1
+ import debug from 'debug';
2
+ /** @internal */
3
+ export const _debug_dispose = debug('dispose');
4
+ /** @internal */
5
+ export function dispose_name(dis, defaultName = '<unknown>') {
6
+ return dis.displayName || dis.name || name_of_func(dis.constructor) || name_of_func(dis.dispose) || defaultName;
7
+ }
8
+ function name_of_func(obj) {
9
+ const name = obj.name;
10
+ if (name === 'Object' ||
11
+ name === 'Function' ||
12
+ name === 'AsyncFunction' ||
13
+ name === 'GeneratorFunction' ||
14
+ name === 'AsyncGeneratorFunction' ||
15
+ name === 'Disposable' ||
16
+ name === 'AsyncDisposable' ||
17
+ name.toLowerCase() === 'dispose') {
18
+ return '';
19
+ }
20
+ return name;
21
+ }
22
+ //# sourceMappingURL=debug.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug.js","sourceRoot":"","sources":["../../../src/lifecycle/dispose/debug.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,gBAAgB;AAChB,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;AAE/C,gBAAgB;AAChB,MAAM,UAAU,YAAY,CAAC,GAAmC,EAAE,WAAW,GAAG,WAAW;IAC1F,OAAO,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,IAAI,IAAI,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,WAAW,CAAC;AACjH,CAAC;AACD,SAAS,YAAY,CAAC,GAAQ;IAC7B,MAAM,IAAI,GAAW,GAAG,CAAC,IAAI,CAAC;IAE9B,IACC,IAAI,KAAK,QAAQ;QACjB,IAAI,KAAK,UAAU;QACnB,IAAI,KAAK,eAAe;QACxB,IAAI,KAAK,mBAAmB;QAC5B,IAAI,KAAK,wBAAwB;QACjC,IAAI,KAAK,YAAY;QACrB,IAAI,KAAK,iBAAiB;QAC1B,IAAI,CAAC,WAAW,EAAE,KAAK,SAAS,EAC/B,CAAC;QACF,OAAO,EAAE,CAAC;IACX,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { IDisposable } from './lifecycle.js';
2
+ export interface IEventListenerOptions {
3
+ capture?: boolean;
4
+ once?: boolean;
5
+ passive?: boolean;
6
+ }
7
+ export interface IEventHostObject<T extends Function> {
8
+ addEventListener(type: string, handler: T, options?: IEventListenerOptions): any;
9
+ removeEventListener(type: string, handler: T, options?: IEventListenerOptions): any;
10
+ }
11
+ export interface IEventEmitterObject<T extends Function> {
12
+ addListener(type: string, handler: T): any;
13
+ removeListener(type: string, handler: T): any;
14
+ }
15
+ export declare function addDisposableEventListener<T extends Function>(target: IEventHostObject<T> | IEventEmitterObject<T>, type: string, options: IEventListenerOptions, handler: T): IDisposable;
16
+ export declare function addDisposableEventListener<T extends Function>(target: IEventHostObject<T> | IEventEmitterObject<T>, type: string, handler: T): IDisposable;
17
+ //# sourceMappingURL=disposableEvent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"disposableEvent.d.ts","sourceRoot":"","sources":["../../../src/lifecycle/dispose/disposableEvent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAIlD,MAAM,WAAW,qBAAqB;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,QAAQ;IACnD,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,GAAG,CAAC;IACjF,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,GAAG,CAAC;CACpF;AAED,MAAM,WAAW,mBAAmB,CAAC,CAAC,SAAS,QAAQ;IACtD,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,GAAG,CAAC;IAC3C,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,GAAG,CAAC;CAC9C;AAED,wBAAgB,0BAA0B,CAAC,CAAC,SAAS,QAAQ,EAC5D,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,EACpD,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,qBAAqB,EAC9B,OAAO,EAAE,CAAC,GACR,WAAW,CAAC;AAEf,wBAAgB,0BAA0B,CAAC,CAAC,SAAS,QAAQ,EAC5D,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,EACpD,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,CAAC,GACR,WAAW,CAAC"}
@@ -0,0 +1,75 @@
1
+ export function addDisposableEventListener(target, type, _options, _handler) {
2
+ if (!_handler) {
3
+ if (typeof _options === 'function') {
4
+ _handler = _options;
5
+ _options = undefined;
6
+ }
7
+ else {
8
+ throw new Error('missing handler');
9
+ }
10
+ }
11
+ const handler = _handler;
12
+ const options = _options;
13
+ let remove;
14
+ if ('addEventListener' in target) {
15
+ if (passiveSupported === undefined || abortSupported === undefined) {
16
+ checkAllSupport(target);
17
+ }
18
+ const [abort, xOptions] = check(options);
19
+ target.addEventListener(type, handler, xOptions);
20
+ if (abort) {
21
+ remove = () => {
22
+ abort;
23
+ };
24
+ }
25
+ else {
26
+ remove = () => {
27
+ target.removeEventListener(type, handler, xOptions);
28
+ };
29
+ }
30
+ }
31
+ else {
32
+ target.addListener(type, handler);
33
+ remove = () => {
34
+ target.removeListener(type, handler);
35
+ };
36
+ }
37
+ return { dispose: remove };
38
+ }
39
+ let passiveSupported;
40
+ let abortSupported;
41
+ function check(options = {}) {
42
+ if (!passiveSupported) {
43
+ return [undefined, (options.capture || false)];
44
+ }
45
+ if (abortSupported) {
46
+ const controller = new AbortController();
47
+ options.signal = controller.signal;
48
+ return [controller, options];
49
+ }
50
+ return [undefined, options];
51
+ }
52
+ function checkAllSupport(ele) {
53
+ passiveSupported = checkSupport('passive', ele);
54
+ abortSupported = typeof AbortController !== 'undefined' && checkSupport('signal', ele);
55
+ }
56
+ function checkSupport(field, ele) {
57
+ let supported = false;
58
+ try {
59
+ const options = {
60
+ get [field]() {
61
+ // This function will be called when the browser
62
+ // attempts to access the passive property.
63
+ supported = true;
64
+ return undefined;
65
+ },
66
+ };
67
+ ele.addEventListener('_test_', null, options);
68
+ ele.removeEventListener('_test_', null, options);
69
+ }
70
+ catch (err) {
71
+ supported = false;
72
+ }
73
+ return supported;
74
+ }
75
+ //# sourceMappingURL=disposableEvent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"disposableEvent.js","sourceRoot":"","sources":["../../../src/lifecycle/dispose/disposableEvent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Error when call dispose() twice
3
+ */
4
+ export declare class DisposedError extends Error {
5
+ readonly previous: Error;
6
+ readonly inspectString: string;
7
+ constructor(object: any, previous: Error);
8
+ tryCreateConsoleWarning(): Promise<void>;
9
+ }
10
+ export declare function isDisposedError(error: any): boolean;
11
+ //# sourceMappingURL=disposedError.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"disposedError.d.ts","sourceRoot":"","sources":["../../../src/lifecycle/dispose/disposedError.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,qBAAa,aAAc,SAAQ,KAAK;aAItB,QAAQ,EAAE,KAAK;IAHhC,SAAgB,aAAa,EAAE,MAAM,CAAC;gBAErC,MAAM,EAAE,GAAG,EACK,QAAQ,EAAE,KAAK;IAWnB,uBAAuB;CAMpC;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAEnD"}
@@ -0,0 +1,28 @@
1
+ import { tryInspect } from '../../debugging/tryInspect.js';
2
+ import { getErrorFrame } from '../../error/getFrame.js';
3
+ import { prettyFormatError } from '../../error/pretty.js';
4
+ /**
5
+ * Error when call dispose() twice
6
+ */
7
+ export class DisposedError extends Error {
8
+ previous;
9
+ inspectString;
10
+ constructor(object, previous) {
11
+ const insp = tryInspect(object);
12
+ super(`Object [${insp}] has already disposed ${getErrorFrame(previous, 2)}.`);
13
+ this.previous = previous;
14
+ this.inspectString = insp;
15
+ this.name = 'Warning';
16
+ this.tryCreateConsoleWarning().catch(() => { });
17
+ }
18
+ async tryCreateConsoleWarning() {
19
+ console.error('DisposedWarning: duplicate dispose.');
20
+ console.error(' * first dispose:\n%s', prettyFormatError(this.previous, false));
21
+ console.error(' * current dispose:\n%s', prettyFormatError(this, false));
22
+ console.error(' * Object: %s', this.inspectString);
23
+ }
24
+ }
25
+ export function isDisposedError(error) {
26
+ return error instanceof DisposedError;
27
+ }
28
+ //# sourceMappingURL=disposedError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"disposedError.js","sourceRoot":"","sources":["../../../src/lifecycle/dispose/disposedError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D;;GAEG;AACH,MAAM,OAAO,aAAc,SAAQ,KAAK;IAItB;IAHD,aAAa,CAAS;IACtC,YACC,MAAW,EACK,QAAe;QAE/B,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QAChC,KAAK,CAAC,WAAW,IAAI,0BAA0B,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;QAH9D,aAAQ,GAAR,QAAQ,CAAO;QAK/B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;QAEtB,IAAI,CAAC,uBAAuB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAChD,CAAC;IAEM,KAAK,CAAC,uBAAuB;QACnC,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACrD,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;QAClF,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QACzE,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IACpD,CAAC;CACD;AAED,MAAM,UAAU,eAAe,CAAC,KAAU;IACzC,OAAO,KAAK,YAAY,aAAa,CAAC;AACvC,CAAC"}
@@ -0,0 +1,46 @@
1
+ import type debug from 'debug';
2
+ import { Emitter, type EventRegister } from '../event/event.js';
3
+ import type { IAsyncDisposable, IDisposableEvents } from './lifecycle.js';
4
+ interface _DOMAsyncDisposable {
5
+ [Symbol.asyncDispose](): Promise<void>;
6
+ }
7
+ /**
8
+ * Async version of Disposable
9
+ * @public
10
+ */
11
+ export declare class AsyncDisposable implements IAsyncDisposable, IDisposableEvents {
12
+ private readonly _disposables;
13
+ protected readonly _onDisposeError: Emitter<Error>;
14
+ readonly onDisposeError: EventRegister<Error>;
15
+ protected readonly _onBeforeDispose: Emitter<void>;
16
+ readonly onBeforeDispose: EventRegister<void>;
17
+ private _disposed?;
18
+ readonly displayName?: string;
19
+ /** @internal */
20
+ protected readonly _logger: debug.Debugger;
21
+ constructor(displayName?: string);
22
+ get hasDisposed(): boolean;
23
+ /**
24
+ * @throws if already disposed
25
+ */
26
+ assertNotDisposed(): void;
27
+ /**
28
+ * register a disposable object
29
+ */
30
+ _register<T extends IAsyncDisposable>(d: T): T;
31
+ _register<T extends IAsyncDisposable & IDisposableEvents>(d: T, autoDereference?: boolean): T;
32
+ _unregister(d: IAsyncDisposable): boolean;
33
+ protected __finalize_dispose(): IAsyncDisposable[];
34
+ [Symbol.asyncDispose](): Promise<void>;
35
+ static fromWeb(disposable: _DOMAsyncDisposable): IAsyncDisposable;
36
+ toWeb(): _DOMAsyncDisposable;
37
+ dispose(): Promise<void>;
38
+ }
39
+ /**
40
+ * @internal
41
+ */
42
+ export declare class AsyncDisposableUnordered extends AsyncDisposable {
43
+ dispose(): Promise<void>;
44
+ }
45
+ export {};
46
+ //# sourceMappingURL=lifecycle.async.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle.async.d.ts","sourceRoot":"","sources":["../../../src/lifecycle/dispose/lifecycle.async.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGhE,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAE1E,UAAU,mBAAmB;IAC5B,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC;AAED;;;GAGG;AACH,qBAAa,eAAgB,YAAW,gBAAgB,EAAE,iBAAiB;IAC1E,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA0B;IAEvD,SAAS,CAAC,QAAQ,CAAC,eAAe,iBAAwB;IAC1D,SAAgB,cAAc,EAAE,aAAa,CAAC,KAAK,CAAC,CAAiC;IAErF,SAAS,CAAC,QAAQ,CAAC,gBAAgB,gBAAuB;IAC1D,SAAgB,eAAe,EAAE,aAAa,CAAC,IAAI,CAAC,CAAkC;IAEtF,OAAO,CAAC,SAAS,CAAC,CAAQ;IAC1B,SAAgB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErC,gBAAgB;IAChB,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC;gBAE/B,WAAW,CAAC,EAAE,MAAM;IAWhC,IAAW,WAAW,YAErB;IAED;;OAEG;IACI,iBAAiB;IAMxB;;OAEG;IACI,SAAS,CAAC,CAAC,SAAS,gBAAgB,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC;IAC9C,SAAS,CAAC,CAAC,SAAS,gBAAgB,GAAG,iBAAiB,EAAE,CAAC,EAAE,CAAC,EAAE,eAAe,CAAC,EAAE,OAAO,GAAG,CAAC;IAa7F,WAAW,CAAC,CAAC,EAAE,gBAAgB;IAKtC,SAAS,CAAC,kBAAkB;IAe5B,CAAC,MAAM,CAAC,YAAY,CAAC;IAGrB,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,mBAAmB,GAAG,gBAAgB;IAMjE,KAAK,IAAI,mBAAmB;IAIf,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAUrC;AAED;;GAEG;AACH,qBAAa,wBAAyB,SAAQ,eAAe;IAC7C,OAAO;CAYtB"}
@@ -0,0 +1,110 @@
1
+ import { convertCatchedError } from '../../error/convertUnknown.js';
2
+ import { Emitter } from '../event/event.js';
3
+ import { _debug_dispose, dispose_name } from './debug.js';
4
+ import { DisposedError } from './disposedError.js';
5
+ /**
6
+ * Async version of Disposable
7
+ * @public
8
+ */
9
+ export class AsyncDisposable {
10
+ _disposables = [];
11
+ _onDisposeError = new Emitter();
12
+ onDisposeError = this._onDisposeError.register;
13
+ _onBeforeDispose = new Emitter();
14
+ onBeforeDispose = this._onBeforeDispose.register;
15
+ _disposed;
16
+ displayName;
17
+ /** @internal */
18
+ _logger;
19
+ constructor(displayName) {
20
+ if (displayName !== undefined) {
21
+ this.displayName = displayName;
22
+ }
23
+ else if (!this.displayName) {
24
+ displayName = dispose_name(this, 'AsyncDisposable');
25
+ this.displayName = displayName;
26
+ }
27
+ this._logger = _debug_dispose.extend(this.displayName);
28
+ }
29
+ get hasDisposed() {
30
+ return !!this._disposed;
31
+ }
32
+ /**
33
+ * @throws if already disposed
34
+ */
35
+ assertNotDisposed() {
36
+ if (this._disposed) {
37
+ throw new DisposedError(this, this._disposed);
38
+ }
39
+ }
40
+ _register(d, deref) {
41
+ if (this._logger.enabled)
42
+ this._logger(`register ${dispose_name(d)}`);
43
+ this.assertNotDisposed();
44
+ this._disposables.unshift(d);
45
+ if (deref) {
46
+ d.onBeforeDispose(() => {
47
+ this._unregister(d);
48
+ });
49
+ }
50
+ return d;
51
+ }
52
+ _unregister(d) {
53
+ if (this._logger.enabled)
54
+ this._logger(`unregister ${dispose_name(d)}`);
55
+ return this._disposables.splice(this._disposables.indexOf(d), 1).length > 0;
56
+ }
57
+ __finalize_dispose() {
58
+ if (this._disposed) {
59
+ console.warn(new DisposedError(this, this._disposed).message);
60
+ return [];
61
+ }
62
+ this._onBeforeDispose.fireNoError();
63
+ this._disposed = new Error('disposed');
64
+ this._disposables.push(this._onBeforeDispose);
65
+ this._disposables.push(this._onDisposeError);
66
+ return this._disposables;
67
+ }
68
+ [Symbol.asyncDispose]() {
69
+ return this.dispose();
70
+ }
71
+ static fromWeb(disposable) {
72
+ if (!('dispose' in disposable)) {
73
+ Object.assign(disposable, { dispose: disposable[Symbol.asyncDispose] });
74
+ }
75
+ return disposable;
76
+ }
77
+ toWeb() {
78
+ return this;
79
+ }
80
+ async dispose() {
81
+ for (const cb of this.__finalize_dispose()) {
82
+ try {
83
+ if (this._logger.enabled)
84
+ this._logger(`dispose ${dispose_name(cb)}`);
85
+ await cb.dispose();
86
+ }
87
+ catch (e) {
88
+ this._onDisposeError.fireNoError(convertCatchedError(e));
89
+ }
90
+ }
91
+ }
92
+ }
93
+ /**
94
+ * @internal
95
+ */
96
+ export class AsyncDisposableUnordered extends AsyncDisposable {
97
+ async dispose() {
98
+ const ps = this.__finalize_dispose().map((d) => {
99
+ if (this._logger.enabled)
100
+ this._logger(`dispose ${dispose_name(d)}`);
101
+ return Promise.resolve()
102
+ .then(() => d.dispose())
103
+ .catch((e) => {
104
+ this._onDisposeError.fireNoError(convertCatchedError(e));
105
+ });
106
+ });
107
+ await Promise.allSettled(ps);
108
+ }
109
+ }
110
+ //# sourceMappingURL=lifecycle.async.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle.async.js","sourceRoot":"","sources":["../../../src/lifecycle/dispose/lifecycle.async.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import type { EventRegister } from '../event/event.js';
2
+ /**
3
+ * @private
4
+ */
5
+ export interface IDisposableEvents {
6
+ onDisposeError: EventRegister<Error>;
7
+ onBeforeDispose: EventRegister<void>;
8
+ readonly hasDisposed: boolean;
9
+ }
10
+ /** @public */
11
+ export interface IDisposable {
12
+ dispose(): void;
13
+ readonly name?: string;
14
+ readonly displayName?: string;
15
+ }
16
+ /** @public */
17
+ export interface IAsyncDisposable {
18
+ dispose(): void | Promise<void>;
19
+ name?: string;
20
+ displayName?: string;
21
+ }
22
+ /**
23
+ * Convert "dispose function" to disposable object
24
+ * @public
25
+ */
26
+ export declare function toDisposable(fn_or_obj: Disposable | AsyncDisposable | (() => void)): IDisposable;
27
+ //# sourceMappingURL=lifecycle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../../src/lifecycle/dispose/lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IACjC,cAAc,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;IACrC,eAAe,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;IACrC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;CAC9B;AAED,cAAc;AACd,MAAM,WAAW,WAAW;IAC3B,OAAO,IAAI,IAAI,CAAC;IAEhB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAK9B;AAED,cAAc;AACd,MAAM,WAAW,gBAAgB;IAChC,OAAO,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CAIrB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,UAAU,GAAG,eAAe,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,WAAW,CAiChG"}