@zk-tech/bedrock 0.0.1 → 0.1.0

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 (221) hide show
  1. package/dist/async/index.cjs.map +1 -1
  2. package/dist/async/index.d.cts +2 -2
  3. package/dist/async/index.d.ts +2 -2
  4. package/dist/async/index.js.map +1 -1
  5. package/dist/error/index.cjs.map +1 -1
  6. package/dist/error/index.d.cts +19 -19
  7. package/dist/error/index.d.ts +19 -19
  8. package/dist/error/index.js.map +1 -1
  9. package/dist/{error-base-B4zaiJ5m.d.cts → error-base-DOFtBFla.d.cts} +8 -8
  10. package/dist/{error-base-B4zaiJ5m.d.ts → error-base-DOFtBFla.d.ts} +8 -8
  11. package/dist/promise/index.cjs.map +1 -1
  12. package/dist/promise/index.d.cts +4 -4
  13. package/dist/promise/index.d.ts +4 -4
  14. package/dist/promise/index.js.map +1 -1
  15. package/dist/worker/index.cjs.map +1 -1
  16. package/dist/worker/index.d.cts +2 -2
  17. package/dist/worker/index.d.ts +2 -2
  18. package/dist/worker/index.js.map +1 -1
  19. package/package.json +1 -2
  20. package/src/_internal/logger.ts +0 -59
  21. package/src/array/array.test.ts +0 -35
  22. package/src/array/array.ts +0 -25
  23. package/src/array/index.ts +0 -1
  24. package/src/assert/assert.test.ts +0 -86
  25. package/src/assert/assert.ts +0 -42
  26. package/src/assert/index.ts +0 -2
  27. package/src/async/barrier.test.ts +0 -90
  28. package/src/async/barrier.ts +0 -58
  29. package/src/async/cancellation.test.ts +0 -85
  30. package/src/async/cancellation.ts +0 -193
  31. package/src/async/index.ts +0 -18
  32. package/src/async/queue/queue.test.ts +0 -70
  33. package/src/async/queue/queue.ts +0 -56
  34. package/src/async/queue/task.test.ts +0 -155
  35. package/src/async/queue/task.ts +0 -67
  36. package/src/async/utils.test.ts +0 -28
  37. package/src/async/utils.ts +0 -8
  38. package/src/async/wait.ts +0 -9
  39. package/src/byte/format.test.ts +0 -64
  40. package/src/byte/format.ts +0 -44
  41. package/src/byte/index.ts +0 -2
  42. package/src/byte/node_modules/.vitest/results.json +0 -1
  43. package/src/byte/var.ts +0 -11
  44. package/src/cache/index.ts +0 -2
  45. package/src/cache/lru-with-timeout.test.ts +0 -88
  46. package/src/cache/lru-with-timeout.ts +0 -85
  47. package/src/cache/lru.test.ts +0 -56
  48. package/src/cache/lru.ts +0 -59
  49. package/src/context/context.test.ts +0 -17
  50. package/src/context/context.ts +0 -60
  51. package/src/context/index.ts +0 -8
  52. package/src/di/base.ts +0 -73
  53. package/src/di/container-service.test.ts +0 -179
  54. package/src/di/context.web.tsx +0 -41
  55. package/src/di/descriptor.ts +0 -31
  56. package/src/di/idle-value.test.ts +0 -73
  57. package/src/di/idle-value.ts +0 -63
  58. package/src/di/index.common.ts +0 -32
  59. package/src/di/index.ts +0 -2
  60. package/src/di/instantiation-service.interface.ts +0 -46
  61. package/src/di/instantiation-service.test.ts +0 -337
  62. package/src/di/instantiation-service.ts +0 -468
  63. package/src/di/lazy/foo.mock.ts +0 -28
  64. package/src/di/lazy/idle-load.ts +0 -39
  65. package/src/di/lazy/index.ts +0 -4
  66. package/src/di/lazy/lazy-service.test.ts +0 -65
  67. package/src/di/lazy/lazy-service.ts +0 -71
  68. package/src/di/lazy/type.ts +0 -5
  69. package/src/di/node_modules/.vitest/results.json +0 -1
  70. package/src/di/proxy-builder.test.ts +0 -45
  71. package/src/di/proxy-builder.ts +0 -38
  72. package/src/di/service-collection.test.ts +0 -27
  73. package/src/di/service-collection.ts +0 -46
  74. package/src/di/service-ownership-collection.test.ts +0 -39
  75. package/src/di/service-ownership-collection.ts +0 -38
  76. package/src/di/service-registry.test.ts +0 -66
  77. package/src/di/service-registry.ts +0 -99
  78. package/src/di/trace.ts +0 -85
  79. package/src/dispose/disposable-store.test.ts +0 -57
  80. package/src/dispose/disposable-store.ts +0 -80
  81. package/src/dispose/disposable-t.test.ts +0 -123
  82. package/src/dispose/disposable-t.ts +0 -238
  83. package/src/dispose/disposable-utils.test.ts +0 -15
  84. package/src/dispose/disposable-utils.ts +0 -28
  85. package/src/dispose/dispose-base.ts +0 -9
  86. package/src/dispose/index.ts +0 -34
  87. package/src/dispose/logger.test.ts +0 -65
  88. package/src/dispose/logger.ts +0 -39
  89. package/src/dispose/timer.test.ts +0 -30
  90. package/src/dispose/timer.ts +0 -16
  91. package/src/dispose/tracker.test.ts +0 -51
  92. package/src/dispose/tracker.ts +0 -105
  93. package/src/error/error-base.ts +0 -45
  94. package/src/error/error-code.ts +0 -39
  95. package/src/error/error-const.test.ts +0 -30
  96. package/src/error/error-const.ts +0 -16
  97. package/src/error/error-or.test.ts +0 -44
  98. package/src/error/error-or.ts +0 -2
  99. package/src/error/error-t.test.ts +0 -116
  100. package/src/error/error-t.ts +0 -100
  101. package/src/error/index.ts +0 -24
  102. package/src/error/node_modules/.vitest/results.json +0 -1
  103. package/src/event/disposable-linked-list.ts +0 -29
  104. package/src/event/emitter.test.ts +0 -191
  105. package/src/event/emitter.ts +0 -162
  106. package/src/event/error-handler.ts +0 -22
  107. package/src/event/index.ts +0 -34
  108. package/src/event/once.ts +0 -29
  109. package/src/event/phase-emitter.test.ts +0 -212
  110. package/src/event/phase-emitter.ts +0 -209
  111. package/src/event/shortcut-event-utils.ts +0 -33
  112. package/src/event/utils.ts +0 -6
  113. package/src/event/when.ts +0 -40
  114. package/src/function/debounce.test.ts +0 -274
  115. package/src/function/debounce.ts +0 -168
  116. package/src/function/index.ts +0 -2
  117. package/src/function/node_modules/.vitest/results.json +0 -1
  118. package/src/function/throttle.test.ts +0 -179
  119. package/src/function/throttle.ts +0 -26
  120. package/src/hash/hash-t.test.ts +0 -100
  121. package/src/hash/hash-t.ts +0 -51
  122. package/src/hash/index.ts +0 -3
  123. package/src/json/index.ts +0 -1
  124. package/src/json/node_modules/.vitest/results.json +0 -1
  125. package/src/json/parse.ts +0 -19
  126. package/src/launch/abstract-job.ts +0 -45
  127. package/src/launch/cost-recorder.ts +0 -22
  128. package/src/launch/index.ts +0 -2
  129. package/src/launch/job-scheduler.test.ts +0 -122
  130. package/src/launch/job-scheduler.ts +0 -118
  131. package/src/launch/node_modules/.vitest/deps/_metadata.json +0 -8
  132. package/src/launch/node_modules/.vitest/deps/package.json +0 -3
  133. package/src/launch/node_modules/.vitest/results.json +0 -1
  134. package/src/lock/README.md +0 -11
  135. package/src/lock/capability.test.ts +0 -110
  136. package/src/lock/capability.ts +0 -89
  137. package/src/lock/index.ts +0 -15
  138. package/src/lock/node_modules/.vitest/results.json +0 -1
  139. package/src/lock/semaphore.ts +0 -21
  140. package/src/lock/shared-mutex.test.ts +0 -537
  141. package/src/lock/shared-mutex.ts +0 -242
  142. package/src/lock/utils.test.ts +0 -165
  143. package/src/lock/utils.ts +0 -135
  144. package/src/lodash-es/index.ts +0 -1
  145. package/src/math/degree.ts +0 -16
  146. package/src/math/index.ts +0 -7
  147. package/src/math/math.test.ts +0 -40
  148. package/src/math/math.ts +0 -64
  149. package/src/math/node_modules/.vitest/results.json +0 -1
  150. package/src/math/vector.test.ts +0 -73
  151. package/src/math/vector.ts +0 -114
  152. package/src/network/client.interface.ts +0 -104
  153. package/src/network/client.web.ts +0 -24
  154. package/src/network/index.common.ts +0 -10
  155. package/src/network/index.ts +0 -2
  156. package/src/network/plugins/retry.ts +0 -98
  157. package/src/objects/deep-clone.test.ts +0 -40
  158. package/src/objects/deep-clone.ts +0 -13
  159. package/src/objects/deep-equal.test.ts +0 -86
  160. package/src/objects/deep-equal.ts +0 -60
  161. package/src/objects/index.ts +0 -4
  162. package/src/platform/index.ts +0 -64
  163. package/src/promise/index.ts +0 -16
  164. package/src/promise/promise.test.ts +0 -254
  165. package/src/promise/promise.ts +0 -212
  166. package/src/scheduler/callback-token.ts +0 -31
  167. package/src/scheduler/core/actuator-args.test.ts +0 -47
  168. package/src/scheduler/core/actuator.test.ts +0 -82
  169. package/src/scheduler/core/actuator.ts +0 -58
  170. package/src/scheduler/core/chunk-scheduler.test.ts +0 -54
  171. package/src/scheduler/core/chunk-scheduler.ts +0 -28
  172. package/src/scheduler/core/node_modules/.vitest/results.json +0 -1
  173. package/src/scheduler/core/scheduler.test.ts +0 -328
  174. package/src/scheduler/core/scheduler.ts +0 -172
  175. package/src/scheduler/core/task-queue.test.ts +0 -78
  176. package/src/scheduler/core/task-queue.ts +0 -44
  177. package/src/scheduler/core/task.test.ts +0 -34
  178. package/src/scheduler/core/task.ts +0 -52
  179. package/src/scheduler/core/utils.ts +0 -48
  180. package/src/scheduler/executor/abstract-executor.test.ts +0 -44
  181. package/src/scheduler/executor/abstract-executor.ts +0 -38
  182. package/src/scheduler/executor/executor.interface.ts +0 -39
  183. package/src/scheduler/executor/idle-callback-executor.test.ts +0 -70
  184. package/src/scheduler/executor/idle-callback-executor.ts +0 -98
  185. package/src/scheduler/executor/make-executor.ts +0 -18
  186. package/src/scheduler/executor/post-message-executor.test.ts +0 -66
  187. package/src/scheduler/executor/post-message-executor.ts +0 -52
  188. package/src/scheduler/index.ts +0 -15
  189. package/src/scheduler/lv-scheduler-callback.ts +0 -19
  190. package/src/scheduler/lv-scheduler-config.ts +0 -17
  191. package/src/scheduler/type.ts +0 -48
  192. package/src/sprintf/index.ts +0 -2
  193. package/src/sprintf/sprintf.test.ts +0 -95
  194. package/src/sprintf/sprintf.ts +0 -97
  195. package/src/structure/graph.test.ts +0 -181
  196. package/src/structure/graph.ts +0 -105
  197. package/src/structure/index.ts +0 -8
  198. package/src/structure/linked-list.test.ts +0 -74
  199. package/src/structure/linked-list.ts +0 -145
  200. package/src/structure/min-heap.test.ts +0 -71
  201. package/src/structure/min-heap.ts +0 -91
  202. package/src/type/REAME.md +0 -2
  203. package/src/type/distributive-omit.interface.ts +0 -4
  204. package/src/type/index.ts +0 -3
  205. package/src/type/object-key-paths.interface.ts +0 -40
  206. package/src/undo-redo-stack/README.md +0 -61
  207. package/src/undo-redo-stack/action-stack.test.ts +0 -330
  208. package/src/undo-redo-stack/action-stack.ts +0 -150
  209. package/src/undo-redo-stack/element.ts +0 -4
  210. package/src/undo-redo-stack/index.ts +0 -7
  211. package/src/undo-redo-stack/state-stack.test.ts +0 -118
  212. package/src/undo-redo-stack/state-stack.ts +0 -133
  213. package/src/uuid/index.ts +0 -7
  214. package/src/uuid/uuid.ts +0 -86
  215. package/src/worker/cors-worker.ts +0 -38
  216. package/src/worker/index.ts +0 -4
  217. package/src/worker/node_modules/.vitest/results.json +0 -1
  218. package/src/worker/promise-worker-main-thread.test.ts +0 -91
  219. package/src/worker/promise-worker-main-thread.ts +0 -76
  220. package/src/worker/promise-worker-worker-thread.ts +0 -64
  221. package/src/worker/promise-worker.interface.ts +0 -15
@@ -1,337 +0,0 @@
1
- import { createDecorator } from './base';
2
- import { SyncDescriptor } from './descriptor';
3
- import { getService, InstantiationService } from './instantiation-service';
4
- import { IInstantiationService } from './instantiation-service.interface';
5
- import { ServiceRegistry } from './service-registry';
6
-
7
- let serviceRegistry: ServiceRegistry;
8
-
9
- const IA = createDecorator<A>('a');
10
- const IB = createDecorator<B>('b');
11
- const IC = createDecorator<C>('c');
12
- const IX = createDecorator<X>('x');
13
- const IY = createDecorator<Y>('y');
14
-
15
- class Y {
16
- _serviceBrand: undefined;
17
- name = 'Y';
18
- }
19
-
20
- class X {
21
- _serviceBrand: undefined;
22
- name = 'X';
23
- y: Y;
24
-
25
- constructor(@IY y: Y) {
26
- this.y = y;
27
- }
28
- }
29
-
30
- class C {
31
- _serviceBrand: undefined;
32
- name = 'C';
33
- x: X;
34
-
35
- constructor(@IX x: X) {
36
- this.x = x;
37
- }
38
- }
39
-
40
- class B {
41
- _serviceBrand: undefined;
42
- name = 'B';
43
- c: C;
44
-
45
- constructor(@IC c: C) {
46
- this.c = c;
47
- }
48
- }
49
-
50
- class A {
51
- _serviceBrand: undefined;
52
- name = 'A';
53
- b: B;
54
- x: X;
55
-
56
- constructor(@IB b: B, @IX x: X) {
57
- this.b = b;
58
- this.x = x;
59
- }
60
- }
61
-
62
- describe('createInstance fail', () => {
63
- beforeEach(() => {
64
- serviceRegistry = new ServiceRegistry();
65
- });
66
-
67
- // 出现重复创建服务
68
- // Bar -> Foo
69
- // 当时Foo在创建过程中,动态的创建了Bar
70
- it('repeat', () => {
71
- const IFoo = createDecorator<Foo>('foo');
72
- const IBar = createDecorator<Bar>('bar');
73
-
74
- interface IFoo {
75
- _serviceBrand: undefined;
76
- name: string;
77
- }
78
-
79
- class Bar {
80
- _serviceBrand: undefined;
81
- name = 'Bar';
82
- foo: IFoo;
83
-
84
- constructor(@IFoo foo: IFoo) {
85
- this.foo = foo;
86
- }
87
- }
88
- serviceRegistry.register(IBar, Bar);
89
-
90
- class Foo implements IFoo {
91
- _serviceBrand: undefined;
92
- name = 'Foo';
93
- instantiationService: IInstantiationService;
94
-
95
- constructor(@IInstantiationService instantiationService: IInstantiationService) {
96
- this.instantiationService = instantiationService;
97
- instantiationService.createInstance(Bar);
98
- }
99
- }
100
- serviceRegistry.register(IFoo, Foo);
101
-
102
- const instantiationService = new InstantiationService(serviceRegistry.makeCollection());
103
-
104
- expect(() => {
105
- instantiationService.createInstance(Bar);
106
- }).toThrow(`illegal state - RECURSIVELY instantiating service 'foo'`);
107
- });
108
-
109
- // 服务创建过程中出现环
110
- // Bar -> Foo -> Bar
111
- it('has cyclicDependency', () => {
112
- const IFoo = createDecorator<Foo>('foo');
113
- const IBar = createDecorator<Bar>('bar');
114
-
115
- interface IFoo {
116
- _serviceBrand: undefined;
117
- name: string;
118
- }
119
-
120
- interface IBar {
121
- _serviceBrand: undefined;
122
- name: string;
123
- }
124
-
125
- class Foo implements IFoo {
126
- _serviceBrand: undefined;
127
- name = 'Foo';
128
- bar: IBar;
129
-
130
- constructor(@IBar bar: IBar) {
131
- this.bar = bar;
132
- }
133
- }
134
- serviceRegistry.register(IFoo, Foo);
135
-
136
- class Bar implements IBar {
137
- _serviceBrand: undefined;
138
- name = 'Bar';
139
- foo: IFoo;
140
-
141
- constructor(@IFoo foo: IFoo) {
142
- this.foo = foo;
143
- }
144
- }
145
- serviceRegistry.register(IBar, Bar);
146
-
147
- const instantiationService = new InstantiationService(serviceRegistry.makeCollection());
148
- expect(() => {
149
- instantiationService.createInstance(Bar);
150
- }).toThrow('foo -> bar -> foo');
151
- });
152
-
153
- // 依赖的服务没有注册
154
- it('service unregister', () => {
155
- serviceRegistry.register(IX, X);
156
-
157
- const instantiationService = new InstantiationService(serviceRegistry.makeCollection());
158
- expect(() => {
159
- instantiationService.createInstance(X);
160
- }).toThrow('[createInstance] X depends on UNKNOWN service y.');
161
- });
162
- });
163
-
164
- describe('createInstance success1', () => {
165
- beforeEach(() => {
166
- serviceRegistry = new ServiceRegistry();
167
- });
168
-
169
- // 没有依赖
170
- it('no dependency', () => {
171
- serviceRegistry.register(IY, Y);
172
- const instantiationService = new InstantiationService(serviceRegistry.makeCollection());
173
- let y: undefined | Y;
174
- expect(() => {
175
- y = instantiationService.createInstance(Y);
176
- }).not.toThrow('Cannot register a disposable on itself.');
177
- expect(y).not.toBeUndefined();
178
- expect(y!.name).toBe('Y');
179
- });
180
- });
181
-
182
- describe('createInstance success2', () => {
183
- beforeEach(() => {
184
- serviceRegistry = new ServiceRegistry();
185
- });
186
-
187
- // 存在依赖
188
- // X -> Y
189
- it('has dependency', () => {
190
- serviceRegistry.register(IX, X);
191
- serviceRegistry.register(IY, Y);
192
-
193
- const instantiationService = new InstantiationService(serviceRegistry.makeCollection());
194
- let x: undefined | X;
195
- expect(() => {
196
- x = instantiationService.createInstance(X);
197
- }).not.toThrow('Cannot register a disposable on itself.');
198
- expect(x).not.toBeUndefined();
199
- expect(x!.name).toBe('X');
200
- expect(x!.y.name).toBe('Y');
201
- });
202
-
203
- // 较为复杂的依赖情况
204
- // A -> B -> C -> X -> Y
205
- // A -> X -> Y
206
- it('has dependency2', () => {
207
- serviceRegistry.register(IA, A);
208
- serviceRegistry.register(IB, B);
209
- serviceRegistry.register(IC, C);
210
- serviceRegistry.register(IX, X);
211
- serviceRegistry.register(IY, Y);
212
-
213
- const instantiationService = new InstantiationService(serviceRegistry.makeCollection());
214
- let a: undefined | A;
215
- expect(() => {
216
- a = instantiationService.createInstance(A);
217
- }).not.toThrowError();
218
- expect(a).not.toBeUndefined();
219
- expect(a!.name).toBe('A');
220
- expect(a!.b.name).toBe('B');
221
- expect(a!.b.c.name).toBe('C');
222
- expect(a!.b.c.x.name).toBe('X');
223
- expect(a!.b.c.x.y.name).toBe('Y');
224
- expect(a!.x.name).toBe('X');
225
- expect(a!.x.y.name).toBe('Y');
226
- });
227
-
228
- // 底层依赖了上层
229
- // J(child) -> B(parent)
230
- it('has dependency3', () => {
231
- serviceRegistry.register(IY, Y);
232
- const instantiationService = new InstantiationService(serviceRegistry.makeCollection());
233
-
234
- const IJ = createDecorator<J>('j');
235
-
236
- class J {
237
- _serviceBrand: undefined;
238
- name = 'J';
239
- y: Y;
240
-
241
- constructor(@IY y: Y) {
242
- this.y = y;
243
- }
244
- }
245
- const childRegister = new ServiceRegistry();
246
- childRegister.register(IJ, J);
247
- const childInstantiationService = instantiationService.createChild(childRegister.makeCollection());
248
- let j: undefined | J;
249
- expect(() => {
250
- j = childInstantiationService.createInstance(J);
251
- }).not.toThrowError();
252
- expect(j).not.toBeUndefined();
253
- expect(j!.name).toBe('J');
254
- expect(j!.y.name).toBe('Y');
255
- });
256
- });
257
-
258
- describe('createInstance success3', () => {
259
- beforeEach(() => {
260
- serviceRegistry = new ServiceRegistry();
261
- });
262
-
263
- // 支持静态参数,动态参数,注入的服务参数
264
- it('arguments', () => {
265
- class Foo {
266
- _serviceBrand: undefined;
267
- name = 'Foo';
268
- }
269
- const IFoo = createDecorator<Foo>('foo');
270
- serviceRegistry.register(IFoo, Foo);
271
-
272
- class Bar {
273
- _serviceBrand: undefined;
274
- name = 'Bar';
275
- foo: Foo;
276
- a1: number;
277
- a2: string;
278
-
279
- constructor(a1: number, a2: string, @IFoo foo: Foo) {
280
- this.a1 = a1;
281
- this.a2 = a2;
282
- this.foo = foo;
283
- }
284
- }
285
- const IBar = createDecorator<Bar>('bar');
286
- const descriptor = new SyncDescriptor(Bar, [100]);
287
- serviceRegistry.register(IBar, descriptor);
288
-
289
- const instantiationService = new InstantiationService(serviceRegistry.makeCollection());
290
- let bar: undefined | Bar;
291
- expect(() => {
292
- bar = instantiationService.createInstance(descriptor, '123');
293
- }).not.toThrow('Cannot register a disposable on itself.');
294
- expect(bar).not.toBeUndefined();
295
- expect(bar!.foo.name).toBe('Foo');
296
- expect(bar!.a1).toBe(100);
297
- expect(bar!.a2).toBe('123');
298
- });
299
- });
300
-
301
- describe('get service success', () => {
302
- beforeEach(() => {
303
- serviceRegistry = new ServiceRegistry();
304
- });
305
-
306
- it('get', () => {
307
- const IFoo = createDecorator<Foo>('foo');
308
- const IBar = createDecorator<Bar>('bar');
309
-
310
- interface IFoo {
311
- _serviceBrand: undefined;
312
- name: string;
313
- }
314
-
315
- class Bar {
316
- _serviceBrand: undefined;
317
- name = 'Bar';
318
- foo: IFoo;
319
-
320
- constructor(@IFoo foo: IFoo) {
321
- this.foo = foo;
322
- }
323
- }
324
- serviceRegistry.register(IBar, Bar);
325
-
326
- class Foo implements IFoo {
327
- _serviceBrand: undefined;
328
- name = 'Foo';
329
- }
330
- const foo = new Foo();
331
- serviceRegistry.registerInstance(IFoo, foo);
332
-
333
- const instantiationService = new InstantiationService(serviceRegistry.makeCollection());
334
- expect(getService(instantiationService, IBar)).not.toBeUndefined();
335
- expect(getService(instantiationService, IFoo)).toBe(foo);
336
- });
337
- });