maoda-commander-tt 0.0.2

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 (222) hide show
  1. package/README.md +168 -0
  2. package/dist/bedrock/assert/assert.d.ts +5 -0
  3. package/dist/bedrock/assert/assert.d.ts.map +1 -0
  4. package/dist/bedrock/assert/assert.js +21 -0
  5. package/dist/bedrock/assert/assert.js.map +1 -0
  6. package/dist/bedrock/assert/index.d.ts +2 -0
  7. package/dist/bedrock/assert/index.d.ts.map +1 -0
  8. package/dist/bedrock/assert/index.js +3 -0
  9. package/dist/bedrock/assert/index.js.map +1 -0
  10. package/dist/bedrock/async/barrier.d.ts +20 -0
  11. package/dist/bedrock/async/barrier.d.ts.map +1 -0
  12. package/dist/bedrock/async/barrier.js +37 -0
  13. package/dist/bedrock/async/barrier.js.map +1 -0
  14. package/dist/bedrock/async/cancellation.d.ts +28 -0
  15. package/dist/bedrock/async/cancellation.d.ts.map +1 -0
  16. package/dist/bedrock/async/cancellation.js +156 -0
  17. package/dist/bedrock/async/cancellation.js.map +1 -0
  18. package/dist/bedrock/async/idle.d.ts +9 -0
  19. package/dist/bedrock/async/idle.d.ts.map +1 -0
  20. package/dist/bedrock/async/idle.js +2 -0
  21. package/dist/bedrock/async/idle.js.map +1 -0
  22. package/dist/bedrock/async/index.d.ts +7 -0
  23. package/dist/bedrock/async/index.d.ts.map +1 -0
  24. package/dist/bedrock/async/index.js +13 -0
  25. package/dist/bedrock/async/index.js.map +1 -0
  26. package/dist/bedrock/async/promise.d.ts +59 -0
  27. package/dist/bedrock/async/promise.d.ts.map +1 -0
  28. package/dist/bedrock/async/promise.js +124 -0
  29. package/dist/bedrock/async/promise.js.map +1 -0
  30. package/dist/bedrock/async/replace-token.d.ts +61 -0
  31. package/dist/bedrock/async/replace-token.d.ts.map +1 -0
  32. package/dist/bedrock/async/replace-token.js +86 -0
  33. package/dist/bedrock/async/replace-token.js.map +1 -0
  34. package/dist/bedrock/async/serial-async-task.d.ts +10 -0
  35. package/dist/bedrock/async/serial-async-task.d.ts.map +1 -0
  36. package/dist/bedrock/async/serial-async-task.js +101 -0
  37. package/dist/bedrock/async/serial-async-task.js.map +1 -0
  38. package/dist/bedrock/async/wait.d.ts +6 -0
  39. package/dist/bedrock/async/wait.d.ts.map +1 -0
  40. package/dist/bedrock/async/wait.js +8 -0
  41. package/dist/bedrock/async/wait.js.map +1 -0
  42. package/dist/bedrock/cache/index.d.ts +2 -0
  43. package/dist/bedrock/cache/index.d.ts.map +1 -0
  44. package/dist/bedrock/cache/index.js +2 -0
  45. package/dist/bedrock/cache/index.js.map +1 -0
  46. package/dist/bedrock/cache/lru.d.ts +14 -0
  47. package/dist/bedrock/cache/lru.d.ts.map +1 -0
  48. package/dist/bedrock/cache/lru.js +44 -0
  49. package/dist/bedrock/cache/lru.js.map +1 -0
  50. package/dist/bedrock/dispose/disposable-linked-list.d.ts +6 -0
  51. package/dist/bedrock/dispose/disposable-linked-list.d.ts.map +1 -0
  52. package/dist/bedrock/dispose/disposable-linked-list.js +26 -0
  53. package/dist/bedrock/dispose/disposable-linked-list.js.map +1 -0
  54. package/dist/bedrock/dispose/disposable-store.d.ts +12 -0
  55. package/dist/bedrock/dispose/disposable-store.d.ts.map +1 -0
  56. package/dist/bedrock/dispose/disposable-store.js +61 -0
  57. package/dist/bedrock/dispose/disposable-store.js.map +1 -0
  58. package/dist/bedrock/dispose/disposable-t.d.ts +25 -0
  59. package/dist/bedrock/dispose/disposable-t.d.ts.map +1 -0
  60. package/dist/bedrock/dispose/disposable-t.js +85 -0
  61. package/dist/bedrock/dispose/disposable-t.js.map +1 -0
  62. package/dist/bedrock/dispose/disposable-utils.d.ts +6 -0
  63. package/dist/bedrock/dispose/disposable-utils.d.ts.map +1 -0
  64. package/dist/bedrock/dispose/disposable-utils.js +12 -0
  65. package/dist/bedrock/dispose/disposable-utils.js.map +1 -0
  66. package/dist/bedrock/dispose/dispose-base.d.ts +5 -0
  67. package/dist/bedrock/dispose/dispose-base.d.ts.map +1 -0
  68. package/dist/bedrock/dispose/dispose-base.js +3 -0
  69. package/dist/bedrock/dispose/dispose-base.js.map +1 -0
  70. package/dist/bedrock/dispose/index.d.ts +11 -0
  71. package/dist/bedrock/dispose/index.d.ts.map +1 -0
  72. package/dist/bedrock/dispose/index.js +8 -0
  73. package/dist/bedrock/dispose/index.js.map +1 -0
  74. package/dist/bedrock/dispose/logger.d.ts +8 -0
  75. package/dist/bedrock/dispose/logger.d.ts.map +1 -0
  76. package/dist/bedrock/dispose/logger.js +26 -0
  77. package/dist/bedrock/dispose/logger.js.map +1 -0
  78. package/dist/bedrock/dispose/tracker.d.ts +13 -0
  79. package/dist/bedrock/dispose/tracker.d.ts.map +1 -0
  80. package/dist/bedrock/dispose/tracker.js +59 -0
  81. package/dist/bedrock/dispose/tracker.js.map +1 -0
  82. package/dist/bedrock/error/error-base.d.ts +23 -0
  83. package/dist/bedrock/error/error-base.d.ts.map +1 -0
  84. package/dist/bedrock/error/error-base.js +5 -0
  85. package/dist/bedrock/error/error-base.js.map +1 -0
  86. package/dist/bedrock/error/error-code.d.ts +34 -0
  87. package/dist/bedrock/error/error-code.d.ts.map +1 -0
  88. package/dist/bedrock/error/error-code.js +36 -0
  89. package/dist/bedrock/error/error-code.js.map +1 -0
  90. package/dist/bedrock/error/error-const.d.ts +2 -0
  91. package/dist/bedrock/error/error-const.d.ts.map +1 -0
  92. package/dist/bedrock/error/error-const.js +16 -0
  93. package/dist/bedrock/error/error-const.js.map +1 -0
  94. package/dist/bedrock/error/error-or.d.ts +2 -0
  95. package/dist/bedrock/error/error-or.d.ts.map +1 -0
  96. package/dist/bedrock/error/error-or.js +3 -0
  97. package/dist/bedrock/error/error-or.js.map +1 -0
  98. package/dist/bedrock/error/error-t.d.ts +7 -0
  99. package/dist/bedrock/error/error-t.d.ts.map +1 -0
  100. package/dist/bedrock/error/error-t.js +76 -0
  101. package/dist/bedrock/error/error-t.js.map +1 -0
  102. package/dist/bedrock/error/index.d.ts +6 -0
  103. package/dist/bedrock/error/index.d.ts.map +1 -0
  104. package/dist/bedrock/error/index.js +6 -0
  105. package/dist/bedrock/error/index.js.map +1 -0
  106. package/dist/bedrock/event/emitter.d.ts +44 -0
  107. package/dist/bedrock/event/emitter.d.ts.map +1 -0
  108. package/dist/bedrock/event/emitter.js +118 -0
  109. package/dist/bedrock/event/emitter.js.map +1 -0
  110. package/dist/bedrock/event/error-handler.d.ts +14 -0
  111. package/dist/bedrock/event/error-handler.d.ts.map +1 -0
  112. package/dist/bedrock/event/error-handler.js +21 -0
  113. package/dist/bedrock/event/error-handler.js.map +1 -0
  114. package/dist/bedrock/event/index.d.ts +12 -0
  115. package/dist/bedrock/event/index.d.ts.map +1 -0
  116. package/dist/bedrock/event/index.js +10 -0
  117. package/dist/bedrock/event/index.js.map +1 -0
  118. package/dist/bedrock/event/once.d.ts +3 -0
  119. package/dist/bedrock/event/once.d.ts.map +1 -0
  120. package/dist/bedrock/event/once.js +26 -0
  121. package/dist/bedrock/event/once.js.map +1 -0
  122. package/dist/bedrock/event/phase-emitter.d.ts +113 -0
  123. package/dist/bedrock/event/phase-emitter.d.ts.map +1 -0
  124. package/dist/bedrock/event/phase-emitter.js +163 -0
  125. package/dist/bedrock/event/phase-emitter.js.map +1 -0
  126. package/dist/bedrock/event/shortcut-event-utils.d.ts +8 -0
  127. package/dist/bedrock/event/shortcut-event-utils.d.ts.map +1 -0
  128. package/dist/bedrock/event/shortcut-event-utils.js +21 -0
  129. package/dist/bedrock/event/shortcut-event-utils.js.map +1 -0
  130. package/dist/bedrock/get-or-create/get-or-create.d.ts +2 -0
  131. package/dist/bedrock/get-or-create/get-or-create.d.ts.map +1 -0
  132. package/dist/bedrock/get-or-create/get-or-create.js +15 -0
  133. package/dist/bedrock/get-or-create/get-or-create.js.map +1 -0
  134. package/dist/bedrock/get-or-create/index.d.ts +2 -0
  135. package/dist/bedrock/get-or-create/index.d.ts.map +1 -0
  136. package/dist/bedrock/get-or-create/index.js +2 -0
  137. package/dist/bedrock/get-or-create/index.js.map +1 -0
  138. package/dist/bedrock/hash/hash-t.d.ts +3 -0
  139. package/dist/bedrock/hash/hash-t.d.ts.map +1 -0
  140. package/dist/bedrock/hash/hash-t.js +12 -0
  141. package/dist/bedrock/hash/hash-t.js.map +1 -0
  142. package/dist/bedrock/hash/index.d.ts +3 -0
  143. package/dist/bedrock/hash/index.d.ts.map +1 -0
  144. package/dist/bedrock/hash/index.js +3 -0
  145. package/dist/bedrock/hash/index.js.map +1 -0
  146. package/dist/bedrock/json/index.d.ts +2 -0
  147. package/dist/bedrock/json/index.d.ts.map +1 -0
  148. package/dist/bedrock/json/index.js +2 -0
  149. package/dist/bedrock/json/index.js.map +1 -0
  150. package/dist/bedrock/json/json.d.ts +3 -0
  151. package/dist/bedrock/json/json.d.ts.map +1 -0
  152. package/dist/bedrock/json/json.js +17 -0
  153. package/dist/bedrock/json/json.js.map +1 -0
  154. package/dist/bedrock/lock/capability.d.ts +41 -0
  155. package/dist/bedrock/lock/capability.d.ts.map +1 -0
  156. package/dist/bedrock/lock/capability.js +76 -0
  157. package/dist/bedrock/lock/capability.js.map +1 -0
  158. package/dist/bedrock/lock/index.d.ts +2 -0
  159. package/dist/bedrock/lock/index.d.ts.map +1 -0
  160. package/dist/bedrock/lock/index.js +3 -0
  161. package/dist/bedrock/lock/index.js.map +1 -0
  162. package/dist/bedrock/lock/semaphore.d.ts +14 -0
  163. package/dist/bedrock/lock/semaphore.d.ts.map +1 -0
  164. package/dist/bedrock/lock/semaphore.js +18 -0
  165. package/dist/bedrock/lock/semaphore.js.map +1 -0
  166. package/dist/bedrock/lock/shared-mutex.d.ts +98 -0
  167. package/dist/bedrock/lock/shared-mutex.d.ts.map +1 -0
  168. package/dist/bedrock/lock/shared-mutex.js +223 -0
  169. package/dist/bedrock/lock/shared-mutex.js.map +1 -0
  170. package/dist/bedrock/response/index.d.ts +2 -0
  171. package/dist/bedrock/response/index.d.ts.map +1 -0
  172. package/dist/bedrock/response/index.js +2 -0
  173. package/dist/bedrock/response/index.js.map +1 -0
  174. package/dist/bedrock/response/response.d.ts +16 -0
  175. package/dist/bedrock/response/response.d.ts.map +1 -0
  176. package/dist/bedrock/response/response.js +14 -0
  177. package/dist/bedrock/response/response.js.map +1 -0
  178. package/dist/bedrock/structure/linked-list.d.ts +22 -0
  179. package/dist/bedrock/structure/linked-list.d.ts.map +1 -0
  180. package/dist/bedrock/structure/linked-list.js +96 -0
  181. package/dist/bedrock/structure/linked-list.js.map +1 -0
  182. package/dist/bedrock/uuid/index.d.ts +2 -0
  183. package/dist/bedrock/uuid/index.d.ts.map +1 -0
  184. package/dist/bedrock/uuid/index.js +2 -0
  185. package/dist/bedrock/uuid/index.js.map +1 -0
  186. package/dist/bedrock/uuid/uuid.d.ts +7 -0
  187. package/dist/bedrock/uuid/uuid.d.ts.map +1 -0
  188. package/dist/bedrock/uuid/uuid.js +59 -0
  189. package/dist/bedrock/uuid/uuid.js.map +1 -0
  190. package/dist/commands/hello-command.d.ts +16 -0
  191. package/dist/commands/hello-command.d.ts.map +1 -0
  192. package/dist/commands/hello-command.js +28 -0
  193. package/dist/commands/hello-command.js.map +1 -0
  194. package/dist/commands/index.d.ts +2 -0
  195. package/dist/commands/index.d.ts.map +1 -0
  196. package/dist/commands/index.js +2 -0
  197. package/dist/commands/index.js.map +1 -0
  198. package/dist/core/base-command.d.ts +27 -0
  199. package/dist/core/base-command.d.ts.map +1 -0
  200. package/dist/core/base-command.js +57 -0
  201. package/dist/core/base-command.js.map +1 -0
  202. package/dist/core/cli-app.d.ts +25 -0
  203. package/dist/core/cli-app.d.ts.map +1 -0
  204. package/dist/core/cli-app.js +52 -0
  205. package/dist/core/cli-app.js.map +1 -0
  206. package/dist/core/command-types.d.ts +6 -0
  207. package/dist/core/command-types.d.ts.map +1 -0
  208. package/dist/core/command-types.js +2 -0
  209. package/dist/core/command-types.js.map +1 -0
  210. package/dist/core/index.d.ts +6 -0
  211. package/dist/core/index.d.ts.map +1 -0
  212. package/dist/core/index.js +3 -0
  213. package/dist/core/index.js.map +1 -0
  214. package/dist/index.d.ts +1 -0
  215. package/dist/index.d.ts.map +1 -0
  216. package/dist/index.js +2 -0
  217. package/dist/index.js.map +1 -0
  218. package/dist/main.d.ts +3 -0
  219. package/dist/main.d.ts.map +1 -0
  220. package/dist/main.js +19 -0
  221. package/dist/main.js.map +1 -0
  222. package/package.json +53 -0
@@ -0,0 +1,25 @@
1
+ import { DisposableStore } from './disposable-store';
2
+ import type { IDisposable } from './dispose-base';
3
+ export declare abstract class Disposable implements IDisposable {
4
+ protected readonly _store: DisposableStore;
5
+ constructor();
6
+ dispose(): void;
7
+ protected _register<T extends IDisposable>(o: T): T;
8
+ }
9
+ export declare class MutableDisposable<T extends IDisposable> implements IDisposable {
10
+ private _value?;
11
+ private _isDisposed;
12
+ constructor(value?: T);
13
+ get value(): T | undefined;
14
+ set value(value: T | undefined);
15
+ clear(): void;
16
+ dispose(): void;
17
+ release(): T | undefined;
18
+ }
19
+ export declare class SafeDisposable<T extends IDisposable> implements IDisposable {
20
+ private _value;
21
+ constructor(value: T);
22
+ isEmpty(): boolean;
23
+ dispose(): void;
24
+ }
25
+ //# sourceMappingURL=disposable-t.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"disposable-t.d.ts","sourceRoot":"","sources":["../../../src/bedrock/dispose/disposable-t.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AASlD,8BAAsB,UAAW,YAAW,WAAW;IACrD,SAAS,CAAC,QAAQ,CAAC,MAAM,kBAAyB;;IAQlD,OAAO,IAAI,IAAI;IAQf,SAAS,CAAC,SAAS,CAAC,CAAC,SAAS,WAAW,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC;CAMpD;AAED,qBAAa,iBAAiB,CAAC,CAAC,SAAS,WAAW,CAAE,YAAW,WAAW;IAC1E,OAAO,CAAC,MAAM,CAAC,CAAI;IACnB,OAAO,CAAC,WAAW,CAAS;gBAEhB,KAAK,CAAC,EAAE,CAAC;IAKrB,IAAI,KAAK,IAAI,CAAC,GAAG,SAAS,CAEzB;IAED,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,SAAS,EAU7B;IAED,KAAK,IAAI,IAAI;IAIb,OAAO,IAAI,IAAI;IAOf,OAAO,IAAI,CAAC,GAAG,SAAS;CAQzB;AAED,qBAAa,cAAc,CAAC,CAAC,SAAS,WAAW,CAAE,YAAW,WAAW;IACvE,OAAO,CAAC,MAAM,CAAkB;gBAEpB,KAAK,EAAE,CAAC;IAKpB,OAAO;IAIP,OAAO;CAQR"}
@@ -0,0 +1,85 @@
1
+ import { DisposableStore } from './disposable-store';
2
+ import { BRANCH_DISPOSE } from './logger';
3
+ import { MARK_AS_DISPOSED, SET_PARENT_OF_DISPOSABLE, TRACK_DISPOSABLE } from './tracker';
4
+ //
5
+ // Disposable基类
6
+ //
7
+ // 自动添加DisposableStore,提供默认的dispose和register方法
8
+ //
9
+ export class Disposable {
10
+ _store = new DisposableStore();
11
+ constructor() {
12
+ TRACK_DISPOSABLE(this);
13
+ SET_PARENT_OF_DISPOSABLE(this._store, this);
14
+ }
15
+ // 销毁该节点和所有的子节点
16
+ dispose() {
17
+ MARK_AS_DISPOSED(this);
18
+ BRANCH_DISPOSE(this.constructor.name, this._store.constructor.name);
19
+ this._store.dispose();
20
+ }
21
+ // 挂载子节点
22
+ _register(o) {
23
+ if (o === this) {
24
+ throw new Error('Cannot register a disposable on itself!');
25
+ }
26
+ return this._store.add(o);
27
+ }
28
+ }
29
+ export class MutableDisposable {
30
+ _value;
31
+ _isDisposed = false;
32
+ constructor(value) {
33
+ TRACK_DISPOSABLE(this);
34
+ this.value = value;
35
+ }
36
+ get value() {
37
+ return this._isDisposed ? undefined : this._value;
38
+ }
39
+ set value(value) {
40
+ if (this._isDisposed || value === this._value) {
41
+ return;
42
+ }
43
+ this._value?.dispose();
44
+ if (value) {
45
+ SET_PARENT_OF_DISPOSABLE(value, this);
46
+ }
47
+ this._value = value;
48
+ }
49
+ clear() {
50
+ this.value = undefined;
51
+ }
52
+ dispose() {
53
+ this._isDisposed = true;
54
+ MARK_AS_DISPOSED(this);
55
+ this._value?.dispose();
56
+ this._value = undefined;
57
+ }
58
+ release() {
59
+ const oldValue = this._value;
60
+ this._value = undefined;
61
+ if (oldValue) {
62
+ SET_PARENT_OF_DISPOSABLE(oldValue, null);
63
+ }
64
+ return oldValue;
65
+ }
66
+ }
67
+ export class SafeDisposable {
68
+ _value = null;
69
+ constructor(value) {
70
+ this._value = value;
71
+ TRACK_DISPOSABLE(this);
72
+ }
73
+ isEmpty() {
74
+ return this._value === null;
75
+ }
76
+ dispose() {
77
+ if (!this._value) {
78
+ return;
79
+ }
80
+ this._value.dispose();
81
+ this._value = null;
82
+ MARK_AS_DISPOSED(this);
83
+ }
84
+ }
85
+ //# sourceMappingURL=disposable-t.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"disposable-t.js","sourceRoot":"","sources":["../../../src/bedrock/dispose/disposable-t.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { SafeDisposable } from './disposable-t';
2
+ export declare function makeSafeDisposable(fn: (...args: any) => any): SafeDisposable<{
3
+ dispose: (...args: any) => any;
4
+ }>;
5
+ export declare function makeEmptyDisposable(): Readonly<import("./dispose-base").IDisposable>;
6
+ //# sourceMappingURL=disposable-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"disposable-utils.d.ts","sourceRoot":"","sources":["../../../src/bedrock/dispose/disposable-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGhD,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,GAAG;uBAAX,GAAG,KAAK,GAAG;GAK3D;AAED,wBAAgB,mBAAmB,mDAElC"}
@@ -0,0 +1,12 @@
1
+ import { SafeDisposable } from './disposable-t';
2
+ import { EmptyDispose } from './dispose-base';
3
+ export function makeSafeDisposable(fn) {
4
+ const disposable = new SafeDisposable({
5
+ dispose: fn,
6
+ });
7
+ return disposable;
8
+ }
9
+ export function makeEmptyDisposable() {
10
+ return EmptyDispose;
11
+ }
12
+ //# sourceMappingURL=disposable-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"disposable-utils.js","sourceRoot":"","sources":["../../../src/bedrock/dispose/disposable-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,MAAM,UAAU,kBAAkB,CAAC,EAAyB;IAC1D,MAAM,UAAU,GAAG,IAAI,cAAc,CAAC;QACpC,OAAO,EAAE,EAAE;KACZ,CAAC,CAAC;IACH,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,OAAO,YAAY,CAAC;AACtB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export interface IDisposable {
2
+ dispose: () => void;
3
+ }
4
+ export declare const EmptyDispose: Readonly<IDisposable>;
5
+ //# sourceMappingURL=dispose-base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispose-base.d.ts","sourceRoot":"","sources":["../../../src/bedrock/dispose/dispose-base.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAGD,eAAO,MAAM,YAAY,uBAA+C,CAAC"}
@@ -0,0 +1,3 @@
1
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
2
+ export const EmptyDispose = Object.freeze({ dispose() { } });
3
+ //# sourceMappingURL=dispose-base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispose-base.js","sourceRoot":"","sources":["../../../src/bedrock/dispose/dispose-base.ts"],"names":[],"mappings":"AAOA,gEAAgE;AAChE,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAc,EAAE,OAAO,KAAI,CAAC,EAAE,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ export type { IDisposable } from './dispose-base';
2
+ export { EmptyDispose } from './dispose-base';
3
+ export { DisposableStore } from './disposable-store';
4
+ export { Disposable, MutableDisposable, SafeDisposable } from './disposable-t';
5
+ export { makeSafeDisposable } from './disposable-utils';
6
+ export { disposeWithLog } from './logger';
7
+ export type { IDisposableLogger } from './logger';
8
+ export { enableTrack } from './tracker';
9
+ export type { IDisposableTracker } from './tracker';
10
+ export { DisposableLinkedList } from './disposable-linked-list';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/bedrock/dispose/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,YAAY,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,YAAY,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,8 @@
1
+ export { EmptyDispose } from './dispose-base';
2
+ export { DisposableStore } from './disposable-store';
3
+ export { Disposable, MutableDisposable, SafeDisposable } from './disposable-t';
4
+ export { makeSafeDisposable } from './disposable-utils';
5
+ export { disposeWithLog } from './logger';
6
+ export { enableTrack } from './tracker';
7
+ export { DisposableLinkedList } from './disposable-linked-list';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/bedrock/dispose/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { IDisposable } from './dispose-base';
2
+ export interface IDisposableLogger {
3
+ branch: (from: string, to: string) => void;
4
+ end: () => void;
5
+ }
6
+ export declare function BRANCH_DISPOSE(from: string, to: string): void;
7
+ export declare function disposeWithLog<T extends IDisposable>(x: T, logger?: IDisposableLogger): void;
8
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/bedrock/dispose/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAIlD,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,GAAG,EAAE,MAAM,IAAI,CAAC;CACjB;AAqBD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAEtD;AAED,wBAAgB,cAAc,CAAC,CAAC,SAAS,WAAW,EAClD,CAAC,EAAE,CAAC,EACJ,MAAM,GAAE,iBAAuC,QAMhD"}
@@ -0,0 +1,26 @@
1
+ let disposableLogger = null;
2
+ function setDisposableLogger(logger) {
3
+ disposableLogger = logger;
4
+ }
5
+ function makeDefaultLogger() {
6
+ return new (class {
7
+ _dep = [];
8
+ branch(from, to) {
9
+ this._dep.push([from, to]);
10
+ }
11
+ end() {
12
+ // console.log(this._dep);
13
+ }
14
+ })();
15
+ }
16
+ // 辅助能力 dispose触发时记录
17
+ export function BRANCH_DISPOSE(from, to) {
18
+ disposableLogger?.branch(from, to);
19
+ }
20
+ export function disposeWithLog(x, logger = makeDefaultLogger()) {
21
+ setDisposableLogger(logger);
22
+ x.dispose();
23
+ logger.end();
24
+ setDisposableLogger(null);
25
+ }
26
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/bedrock/dispose/logger.ts"],"names":[],"mappings":"AAEA,IAAI,gBAAgB,GAA6B,IAAI,CAAC;AAOtD,SAAS,mBAAmB,CAAC,MAAgC;IAC3D,gBAAgB,GAAG,MAAM,CAAC;AAC5B,CAAC;AAED,SAAS,iBAAiB;IACxB,OAAO,IAAI,CAAC;QACO,IAAI,GAAuB,EAAE,CAAC;QAE/C,MAAM,CAAC,IAAY,EAAE,EAAU;YAC7B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;QAC7B,CAAC;QAED,GAAG;YACD,0BAA0B;QAC5B,CAAC;KACF,CAAC,EAAE,CAAC;AACP,CAAC;AAED,oBAAoB;AACpB,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,EAAU;IACrD,gBAAgB,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,CAAI,EACJ,SAA4B,iBAAiB,EAAE;IAE/C,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC,CAAC,OAAO,EAAE,CAAC;IACZ,MAAM,CAAC,GAAG,EAAE,CAAC;IACb,mBAAmB,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { IDisposable } from './dispose-base';
2
+ export interface IDisposableTracker {
3
+ trackDisposable: (disposable: IDisposable) => void;
4
+ setParent: (child: IDisposable, parent: IDisposable | null) => void;
5
+ markAsDisposed: (disposable: IDisposable) => void;
6
+ markAsSingleton: (disposable: IDisposable) => void;
7
+ }
8
+ export declare function enableTrack(tracker?: IDisposableTracker): void;
9
+ export declare function disableTrack(): void;
10
+ export declare function TRACK_DISPOSABLE<T extends IDisposable>(x: T): T;
11
+ export declare function MARK_AS_DISPOSED<T extends IDisposable>(x: T): void;
12
+ export declare function SET_PARENT_OF_DISPOSABLE(child: IDisposable, parent: IDisposable | null): void;
13
+ //# sourceMappingURL=tracker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracker.d.ts","sourceRoot":"","sources":["../../../src/bedrock/dispose/tracker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAGlD,MAAM,WAAW,kBAAkB;IACjC,eAAe,EAAE,CAAC,UAAU,EAAE,WAAW,KAAK,IAAI,CAAC;IAEnD,SAAS,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;IAEpE,cAAc,EAAE,CAAC,UAAU,EAAE,WAAW,KAAK,IAAI,CAAC;IAElD,eAAe,EAAE,CAAC,UAAU,EAAE,WAAW,KAAK,IAAI,CAAC;CACpD;AA4CD,wBAAgB,WAAW,CAAC,OAAO,GAAE,kBAAyC,QAE7E;AAED,wBAAgB,YAAY,SAE3B;AAGD,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,WAAW,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAG/D;AAGD,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,WAAW,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAElE;AAGD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,GAAG,IAAI,CAE7F"}
@@ -0,0 +1,59 @@
1
+ import { EmptyDispose } from './dispose-base';
2
+ let disposableTracker = null;
3
+ function makeDefaultTracker() {
4
+ const __is_disposable_tracked__ = '__is_disposable_tracked__';
5
+ return new (class {
6
+ trackDisposable(x) {
7
+ const stack = new Error('Potentially leaked disposable').stack;
8
+ setTimeout(() => {
9
+ if (!x[__is_disposable_tracked__]) {
10
+ // console.log(stack);
11
+ }
12
+ }, 3000);
13
+ }
14
+ setParent(child, parent) {
15
+ if (child && child !== EmptyDispose) {
16
+ try {
17
+ child[__is_disposable_tracked__] = true;
18
+ }
19
+ catch {
20
+ // noop
21
+ }
22
+ }
23
+ }
24
+ markAsDisposed(disposable) {
25
+ if (disposable && disposable !== EmptyDispose) {
26
+ try {
27
+ disposable[__is_disposable_tracked__] = true;
28
+ }
29
+ catch {
30
+ // noop
31
+ }
32
+ }
33
+ }
34
+ markAsSingleton(disposable) { }
35
+ })();
36
+ }
37
+ function setDisposableTracker(tracker) {
38
+ disposableTracker = tracker;
39
+ }
40
+ export function enableTrack(tracker = makeDefaultTracker()) {
41
+ setDisposableTracker(tracker);
42
+ }
43
+ export function disableTrack() {
44
+ setDisposableTracker(null);
45
+ }
46
+ // 辅助能力 跟踪disposable
47
+ export function TRACK_DISPOSABLE(x) {
48
+ disposableTracker?.trackDisposable(x);
49
+ return x;
50
+ }
51
+ // 辅助能力 标记disposable成功
52
+ export function MARK_AS_DISPOSED(x) {
53
+ disposableTracker?.markAsDisposed(x);
54
+ }
55
+ // 辅助能力 标记disposable关系
56
+ export function SET_PARENT_OF_DISPOSABLE(child, parent) {
57
+ disposableTracker?.setParent(child, parent);
58
+ }
59
+ //# sourceMappingURL=tracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracker.js","sourceRoot":"","sources":["../../../src/bedrock/dispose/tracker.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAY9C,IAAI,iBAAiB,GAA8B,IAAI,CAAC;AAExD,SAAS,kBAAkB;IACzB,MAAM,yBAAyB,GAAG,2BAA2B,CAAC;IAC9D,OAAO,IAAI,CAAC;QACV,eAAe,CAAC,CAAc;YAC5B,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC,KAAM,CAAC;YAChE,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,CAAE,CAAS,CAAC,yBAAyB,CAAC,EAAE,CAAC;oBAC3C,sBAAsB;gBACxB,CAAC;YACH,CAAC,EAAE,IAAI,CAAC,CAAC;QACX,CAAC;QAED,SAAS,CAAC,KAAkB,EAAE,MAA0B;YACtD,IAAI,KAAK,IAAI,KAAK,KAAK,YAAY,EAAE,CAAC;gBACpC,IAAI,CAAC;oBACF,KAAa,CAAC,yBAAyB,CAAC,GAAG,IAAI,CAAC;gBACnD,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO;gBACT,CAAC;YACH,CAAC;QACH,CAAC;QAED,cAAc,CAAC,UAAuB;YACpC,IAAI,UAAU,IAAI,UAAU,KAAK,YAAY,EAAE,CAAC;gBAC9C,IAAI,CAAC;oBACF,UAAkB,CAAC,yBAAyB,CAAC,GAAG,IAAI,CAAC;gBACxD,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO;gBACT,CAAC;YACH,CAAC;QACH,CAAC;QAED,eAAe,CAAC,UAAuB,IAAS,CAAC;KAClD,CAAC,EAAE,CAAC;AACP,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAkC;IAC9D,iBAAiB,GAAG,OAAO,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,UAA8B,kBAAkB,EAAE;IAC5E,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,oBAAoB,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED,oBAAoB;AACpB,MAAM,UAAU,gBAAgB,CAAwB,CAAI;IAC1D,iBAAiB,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;IACtC,OAAO,CAAC,CAAC;AACX,CAAC;AAED,sBAAsB;AACtB,MAAM,UAAU,gBAAgB,CAAwB,CAAI;IAC1D,iBAAiB,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,sBAAsB;AACtB,MAAM,UAAU,wBAAwB,CAAC,KAAkB,EAAE,MAA0B;IACrF,iBAAiB,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC9C,CAAC"}
@@ -0,0 +1,23 @@
1
+ export type ILvErrorRef = ILvErrorOr<never>;
2
+ export interface ILvRealErrorRef {
3
+ readonly ok: false;
4
+ readonly code: number;
5
+ readonly msg: string;
6
+ readonly cause?: ILvErrorRef | Error;
7
+ readonly toString: () => string;
8
+ readonly pair: () => [ILvRealErrorRef, null];
9
+ readonly errorInfo?: unknown;
10
+ }
11
+ export interface ILvValueRef<T> {
12
+ readonly ok: true;
13
+ readonly code: 0;
14
+ readonly msg: '';
15
+ readonly cause?: undefined;
16
+ readonly value: T;
17
+ readonly toString: () => string;
18
+ readonly pair: () => [null, T];
19
+ }
20
+ export type ILvErrorOr<T> = (ILvRealErrorRef | ILvValueRef<T>) & {
21
+ readonly pair: () => [null, T] | [ILvRealErrorRef, null];
22
+ };
23
+ //# sourceMappingURL=error-base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-base.d.ts","sourceRoot":"","sources":["../../../src/bedrock/error/error-base.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;AAE5C,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,GAAG,KAAK,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,MAAM,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;IAC7C,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAC9B;AAKD,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACjB,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC;IACjB,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAClB,QAAQ,CAAC,QAAQ,EAAE,MAAM,MAAM,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;CAChC;AAKD,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG;IAC/D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;CAC1D,CAAC"}
@@ -0,0 +1,5 @@
1
+ //
2
+ // lv项目中使用的错误类型
3
+ //
4
+ export {};
5
+ //# sourceMappingURL=error-base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-base.js","sourceRoot":"","sources":["../../../src/bedrock/error/error-base.ts"],"names":[],"mappings":"AAAA,EAAE;AACF,eAAe;AACf,EAAE"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * 提供了通用的错误码(+1至+256)
3
+ *
4
+ * 注意:这里只是提供了通用的错误码,方便服务使用,但并不是要求服务一定使用如下的错误码来表明某种错误
5
+ */
6
+ export declare enum GenericError {
7
+ Ok = 0,
8
+ Cancelled = 1,// 操作被取消
9
+ TimedOut = 2,// 操作超时
10
+ PermissionDenied = 3,// 无权限
11
+ AlreadyExists = 4,// 已经存在(文件/记录等)
12
+ NotSupported = 5,// 操作不支持
13
+ ResourceUnavailable = 6,// 资源不可用
14
+ OutOfRange = 7,// (参数/结果等)发生越界
15
+ InvalidArgument = 8,// 无效参数
16
+ NetworkFailed = 9,// 网络失败
17
+ Interrupted = 10,// 操作被中断(捕获异常转为错误)
18
+ ResultNil = 11
19
+ }
20
+ /**
21
+ * 通用错误码所对应的编译时常量对象(ErrorConst)
22
+ */
23
+ export declare const cancelledError: (rewrite?: string | Error) => import("./error-base").ILvRealErrorRef;
24
+ export declare const timeoutError: (rewrite?: string | Error) => import("./error-base").ILvRealErrorRef;
25
+ export declare const permissionDeniedError: (rewrite?: string | Error) => import("./error-base").ILvRealErrorRef;
26
+ export declare const alreadyExistsError: (rewrite?: string | Error) => import("./error-base").ILvRealErrorRef;
27
+ export declare const notSupportedError: (rewrite?: string | Error) => import("./error-base").ILvRealErrorRef;
28
+ export declare const resourceUnavailableError: (rewrite?: string | Error) => import("./error-base").ILvRealErrorRef;
29
+ export declare const outOfRangeError: (rewrite?: string | Error) => import("./error-base").ILvRealErrorRef;
30
+ export declare const invalidArgumentError: (rewrite?: string | Error) => import("./error-base").ILvRealErrorRef;
31
+ export declare const networkFailedError: (rewrite?: string | Error) => import("./error-base").ILvRealErrorRef;
32
+ export declare const interruptedError: (rewrite?: string | Error) => import("./error-base").ILvRealErrorRef;
33
+ export declare const resultNilError: (rewrite?: string | Error) => import("./error-base").ILvRealErrorRef;
34
+ //# sourceMappingURL=error-code.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-code.d.ts","sourceRoot":"","sources":["../../../src/bedrock/error/error-code.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,oBAAY,YAAY;IACtB,EAAE,IAAI;IACN,SAAS,IAAI,CAAE,QAAQ;IACvB,QAAQ,IAAI,CAAE,OAAO;IACrB,gBAAgB,IAAI,CAAE,MAAM;IAC5B,aAAa,IAAI,CAAE,eAAe;IAClC,YAAY,IAAI,CAAE,QAAQ;IAC1B,mBAAmB,IAAI,CAAE,QAAQ;IACjC,UAAU,IAAI,CAAE,eAAe;IAC/B,eAAe,IAAI,CAAE,OAAO;IAC5B,aAAa,IAAI,CAAE,OAAO;IAC1B,WAAW,KAAK,CAAE,kBAAkB;IACpC,SAAS,KAAK;CACf;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,sEAAkE,CAAC;AAC9F,eAAO,MAAM,YAAY,sEAAiE,CAAC;AAC3F,eAAO,MAAM,qBAAqB,sEAGjC,CAAC;AACF,eAAO,MAAM,kBAAkB,sEAA8D,CAAC;AAC9F,eAAO,MAAM,iBAAiB,sEAG7B,CAAC;AACF,eAAO,MAAM,wBAAwB,sEAGpC,CAAC;AACF,eAAO,MAAM,eAAe,sEAAyD,CAAC;AACtF,eAAO,MAAM,oBAAoB,sEAGhC,CAAC;AACF,eAAO,MAAM,kBAAkB,sEAA8D,CAAC;AAC9F,eAAO,MAAM,gBAAgB,sEAAyD,CAAC;AACvF,eAAO,MAAM,cAAc,sEAAyD,CAAC"}
@@ -0,0 +1,36 @@
1
+ import { lvErrorConst } from './error-const';
2
+ /**
3
+ * 提供了通用的错误码(+1至+256)
4
+ *
5
+ * 注意:这里只是提供了通用的错误码,方便服务使用,但并不是要求服务一定使用如下的错误码来表明某种错误
6
+ */
7
+ export var GenericError;
8
+ (function (GenericError) {
9
+ GenericError[GenericError["Ok"] = 0] = "Ok";
10
+ GenericError[GenericError["Cancelled"] = 1] = "Cancelled";
11
+ GenericError[GenericError["TimedOut"] = 2] = "TimedOut";
12
+ GenericError[GenericError["PermissionDenied"] = 3] = "PermissionDenied";
13
+ GenericError[GenericError["AlreadyExists"] = 4] = "AlreadyExists";
14
+ GenericError[GenericError["NotSupported"] = 5] = "NotSupported";
15
+ GenericError[GenericError["ResourceUnavailable"] = 6] = "ResourceUnavailable";
16
+ GenericError[GenericError["OutOfRange"] = 7] = "OutOfRange";
17
+ GenericError[GenericError["InvalidArgument"] = 8] = "InvalidArgument";
18
+ GenericError[GenericError["NetworkFailed"] = 9] = "NetworkFailed";
19
+ GenericError[GenericError["Interrupted"] = 10] = "Interrupted";
20
+ GenericError[GenericError["ResultNil"] = 11] = "ResultNil";
21
+ })(GenericError || (GenericError = {}));
22
+ /**
23
+ * 通用错误码所对应的编译时常量对象(ErrorConst)
24
+ */
25
+ export const cancelledError = lvErrorConst(GenericError.Cancelled, 'operation(s) cancelled.');
26
+ export const timeoutError = lvErrorConst(GenericError.TimedOut, 'operation(s) timed out.');
27
+ export const permissionDeniedError = lvErrorConst(GenericError.PermissionDenied, 'permission denied.');
28
+ export const alreadyExistsError = lvErrorConst(GenericError.AlreadyExists, 'already exists.');
29
+ export const notSupportedError = lvErrorConst(GenericError.NotSupported, 'operation(s) not supported.');
30
+ export const resourceUnavailableError = lvErrorConst(GenericError.ResourceUnavailable, 'resource is unavailable.');
31
+ export const outOfRangeError = lvErrorConst(GenericError.OutOfRange, 'out of range.');
32
+ export const invalidArgumentError = lvErrorConst(GenericError.InvalidArgument, 'invalid arguments.');
33
+ export const networkFailedError = lvErrorConst(GenericError.NetworkFailed, 'network failed.');
34
+ export const interruptedError = lvErrorConst(GenericError.Interrupted, 'interrupted.');
35
+ export const resultNilError = lvErrorConst(GenericError.ResultNil, 'result is nil.');
36
+ //# sourceMappingURL=error-code.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-code.js","sourceRoot":"","sources":["../../../src/bedrock/error/error-code.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C;;;;GAIG;AACH,MAAM,CAAN,IAAY,YAaX;AAbD,WAAY,YAAY;IACtB,2CAAM,CAAA;IACN,yDAAa,CAAA;IACb,uDAAY,CAAA;IACZ,uEAAoB,CAAA;IACpB,iEAAiB,CAAA;IACjB,+DAAgB,CAAA;IAChB,6EAAuB,CAAA;IACvB,2DAAc,CAAA;IACd,qEAAmB,CAAA;IACnB,iEAAiB,CAAA;IACjB,8DAAgB,CAAA;IAChB,0DAAc,CAAA;AAChB,CAAC,EAbW,YAAY,KAAZ,YAAY,QAavB;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,YAAY,CAAC,YAAY,CAAC,SAAS,EAAE,yBAAyB,CAAC,CAAC;AAC9F,MAAM,CAAC,MAAM,YAAY,GAAG,YAAY,CAAC,YAAY,CAAC,QAAQ,EAAE,yBAAyB,CAAC,CAAC;AAC3F,MAAM,CAAC,MAAM,qBAAqB,GAAG,YAAY,CAC/C,YAAY,CAAC,gBAAgB,EAC7B,oBAAoB,CACrB,CAAC;AACF,MAAM,CAAC,MAAM,kBAAkB,GAAG,YAAY,CAAC,YAAY,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;AAC9F,MAAM,CAAC,MAAM,iBAAiB,GAAG,YAAY,CAC3C,YAAY,CAAC,YAAY,EACzB,6BAA6B,CAC9B,CAAC;AACF,MAAM,CAAC,MAAM,wBAAwB,GAAG,YAAY,CAClD,YAAY,CAAC,mBAAmB,EAChC,0BAA0B,CAC3B,CAAC;AACF,MAAM,CAAC,MAAM,eAAe,GAAG,YAAY,CAAC,YAAY,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;AACtF,MAAM,CAAC,MAAM,oBAAoB,GAAG,YAAY,CAC9C,YAAY,CAAC,eAAe,EAC5B,oBAAoB,CACrB,CAAC;AACF,MAAM,CAAC,MAAM,kBAAkB,GAAG,YAAY,CAAC,YAAY,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;AAC9F,MAAM,CAAC,MAAM,gBAAgB,GAAG,YAAY,CAAC,YAAY,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;AACvF,MAAM,CAAC,MAAM,cAAc,GAAG,YAAY,CAAC,YAAY,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function lvErrorConst(code: number, msg: string): (rewrite?: string | Error) => import("./error-base").ILvRealErrorRef;
2
+ //# sourceMappingURL=error-const.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-const.d.ts","sourceRoot":"","sources":["../../../src/bedrock/error/error-const.ts"],"names":[],"mappings":"AAKA,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,IAC5C,UAAU,MAAM,GAAG,KAAK,4CASjC"}
@@ -0,0 +1,16 @@
1
+ import { makeError, makeErrorBy } from './error-t';
2
+ //
3
+ // Error编译时错误对象
4
+ //
5
+ export function lvErrorConst(code, msg) {
6
+ return (rewrite) => {
7
+ if (!rewrite) {
8
+ return makeError(code, msg);
9
+ }
10
+ if (typeof rewrite === 'string') {
11
+ return makeError(code, rewrite);
12
+ }
13
+ return makeErrorBy(code, rewrite.message, rewrite);
14
+ };
15
+ }
16
+ //# sourceMappingURL=error-const.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-const.js","sourceRoot":"","sources":["../../../src/bedrock/error/error-const.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAEnD,EAAE;AACF,eAAe;AACf,EAAE;AACF,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,GAAW;IACpD,OAAO,CAAC,OAAwB,EAAE,EAAE;QAClC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC9B,CAAC;QACD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,OAAO,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { makeOkWith } from './error-t';
2
+ //# sourceMappingURL=error-or.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-or.d.ts","sourceRoot":"","sources":["../../../src/bedrock/error/error-or.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,3 @@
1
+ // makeOkWith 依赖内部 lvErrorRefSymbol,先放到 error-t 里面实现,有需要再拆分
2
+ export { makeOkWith } from './error-t';
3
+ //# sourceMappingURL=error-or.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-or.js","sourceRoot":"","sources":["../../../src/bedrock/error/error-or.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { ILvErrorRef, ILvErrorOr, ILvRealErrorRef } from './error-base';
2
+ export declare function makeOk(): ILvErrorOr<never>;
3
+ export declare function makeOkWith<T>(value: T): ILvErrorOr<T>;
4
+ export declare function makeError(code: number, msg: string, errorInfo?: unknown): ILvRealErrorRef;
5
+ export declare function makeErrorBy(code: number, msg: string, cause: ILvErrorRef | Error, errorInfo?: unknown): ILvRealErrorRef;
6
+ export declare function isLvErrorRef(val: unknown): val is ILvErrorRef;
7
+ //# sourceMappingURL=error-t.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-t.d.ts","sourceRoot":"","sources":["../../../src/bedrock/error/error-t.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAgB7E,wBAAgB,MAAM,IAAI,UAAU,CAAC,KAAK,CAAC,CAY1C;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAYrD;AAmCD,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,GAAG,eAAe,CAEzF;AAED,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,WAAW,GAAG,KAAK,EAC1B,SAAS,CAAC,EAAE,OAAO,GAClB,eAAe,CAEjB;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,WAAW,CAE7D"}
@@ -0,0 +1,76 @@
1
+ //
2
+ // Error类
3
+ //
4
+ // 用户给函数签名明确错误
5
+ // function foo(): ILvErrorRef
6
+ // return makeOk(); // 如果没有错误
7
+ // return makeError(code, msg); // 指定错误码和携带消息
8
+ //
9
+ // const SomeError = LvErrorConst(code, msg); // 更推荐用LvErrorConst生成
10
+ // return SomeError();
11
+ //
12
+ const lvErrorRefSymbol = Symbol('lvErrorRef');
13
+ export function makeOk() {
14
+ return {
15
+ ok: true,
16
+ value: null,
17
+ pair() {
18
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return
19
+ return [null, null];
20
+ },
21
+ code: 0,
22
+ msg: '',
23
+ ...{ [lvErrorRefSymbol]: true }, // 跳过类型检测
24
+ };
25
+ }
26
+ export function makeOkWith(value) {
27
+ return {
28
+ ok: true,
29
+ value,
30
+ pair() {
31
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return
32
+ return [null, value];
33
+ },
34
+ code: 0,
35
+ msg: '',
36
+ ...{ [lvErrorRefSymbol]: true }, // 跳过类型检测
37
+ };
38
+ }
39
+ function printCause(cause) {
40
+ if (cause === undefined) {
41
+ return '';
42
+ }
43
+ else if (cause instanceof Error) {
44
+ return `\ncaused by [jsError]${cause.name}-${cause.message}`;
45
+ }
46
+ else {
47
+ return `\ncaused by [${cause.code}]${cause.msg}${cause.ok ? '' : printCause(cause.cause)}`;
48
+ }
49
+ }
50
+ function internalMakeError(code, msg, cause, errorInfo) {
51
+ const errorRef = {
52
+ ok: false,
53
+ code,
54
+ msg,
55
+ cause,
56
+ errorInfo,
57
+ toString() {
58
+ return `[${code}]${msg}.${cause ? printCause(cause) : ''}`;
59
+ },
60
+ pair() {
61
+ return [errorRef, null];
62
+ },
63
+ ...{ [lvErrorRefSymbol]: true }, // 跳过类型检测
64
+ };
65
+ return errorRef;
66
+ }
67
+ export function makeError(code, msg, errorInfo) {
68
+ return internalMakeError(code, msg, undefined, errorInfo);
69
+ }
70
+ export function makeErrorBy(code, msg, cause, errorInfo) {
71
+ return internalMakeError(code, msg, cause, errorInfo);
72
+ }
73
+ export function isLvErrorRef(val) {
74
+ return typeof val === 'object' && val !== null && lvErrorRefSymbol in val;
75
+ }
76
+ //# sourceMappingURL=error-t.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-t.js","sourceRoot":"","sources":["../../../src/bedrock/error/error-t.ts"],"names":[],"mappings":"AAEA,EAAE;AACF,SAAS;AACT,EAAE;AACF,cAAc;AACd,8BAA8B;AAC9B,gCAAgC;AAChC,gDAAgD;AAChD,EAAE;AACF,sEAAsE;AACtE,wBAAwB;AACxB,EAAE;AAEF,MAAM,gBAAgB,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AAE9C,MAAM,UAAU,MAAM;IACpB,OAAO;QACL,EAAE,EAAE,IAAI;QACR,KAAK,EAAE,IAAK;QACZ,IAAI;YACF,+DAA+D;YAC/D,OAAO,CAAC,IAAI,EAAE,IAAK,CAAQ,CAAC;QAC9B,CAAC;QACD,IAAI,EAAE,CAAC;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;KAC3C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU,CAAI,KAAQ;IACpC,OAAO;QACL,EAAE,EAAE,IAAI;QACR,KAAK;QACL,IAAI;YACF,+DAA+D;YAC/D,OAAO,CAAC,IAAI,EAAE,KAAK,CAAQ,CAAC;QAC9B,CAAC;QACD,IAAI,EAAE,CAAC;QACP,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;KAC3C,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,KAAsC;IACxD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,EAAE,CAAC;IACZ,CAAC;SAAM,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAClC,OAAO,wBAAwB,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;IAC/D,CAAC;SAAM,CAAC;QACN,OAAO,gBAAgB,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;IAC7F,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CACxB,IAAY,EACZ,GAAW,EACX,KAA2B,EAC3B,SAAmB;IAEnB,MAAM,QAAQ,GAAoB;QAChC,EAAE,EAAE,KAAK;QACT,IAAI;QACJ,GAAG;QACH,KAAK;QACL,SAAS;QACT,QAAQ;YACN,OAAO,IAAI,IAAI,IAAI,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC7D,CAAC;QACD,IAAI;YACF,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC1B,CAAC;QACD,GAAG,EAAE,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;KAC3C,CAAC;IACF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAY,EAAE,GAAW,EAAE,SAAmB;IACtE,OAAO,iBAAiB,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,IAAY,EACZ,GAAW,EACX,KAA0B,EAC1B,SAAmB;IAEnB,OAAO,iBAAiB,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,GAAY;IACvC,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,gBAAgB,IAAI,GAAG,CAAC;AAC5E,CAAC"}
@@ -0,0 +1,6 @@
1
+ export * from './error-base';
2
+ export * from './error-const';
3
+ export * from './error-or';
4
+ export * from './error-t';
5
+ export * from './error-code';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/bedrock/error/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC"}
@@ -0,0 +1,6 @@
1
+ export * from './error-base';
2
+ export * from './error-const';
3
+ export * from './error-or';
4
+ export * from './error-t';
5
+ export * from './error-code';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/bedrock/error/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC"}