@bluelibs/runner 3.4.0 → 3.4.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.
- package/README.md +129 -320
- package/dist/define.d.ts +67 -3
- package/dist/define.js +84 -20
- package/dist/define.js.map +1 -1
- package/dist/models/Store.d.ts +3 -1
- package/dist/models/Store.js +6 -0
- package/dist/models/Store.js.map +1 -1
- package/dist/models/StoreRegistry.d.ts +3 -1
- package/dist/models/StoreRegistry.js +16 -0
- package/dist/models/StoreRegistry.js.map +1 -1
- package/dist/tools/getCallerFile.js +16 -6
- package/dist/tools/getCallerFile.js.map +1 -1
- package/package.json +1 -1
- package/src/__tests__/globalEvents.test.ts +1 -1
- package/src/__tests__/models/Store.test.ts +57 -0
- package/src/__tests__/run.anonymous.test.ts +27 -0
- package/src/__tests__/tools/getCallerFile.test.ts +20 -5
- package/src/define.ts +101 -25
- package/src/models/Store.ts +9 -0
- package/src/models/StoreRegistry.ts +25 -0
- package/src/tools/getCallerFile.ts +18 -7
package/dist/define.d.ts
CHANGED
|
@@ -6,6 +6,23 @@
|
|
|
6
6
|
* events, and global middleware flags. See README for high-level concepts.
|
|
7
7
|
*/
|
|
8
8
|
import { ITask, ITaskDefinition, IResource, IResourceWithConfig, IResourceDefinition, IEventDefinition, IMiddlewareDefinition, DependencyMapType, DependencyValuesType, IMiddleware, IEvent, RegisterableItems, ITag, ITagDefinition, ITaskMeta, IResourceMeta } from "./defs";
|
|
9
|
+
/**
|
|
10
|
+
* Define a task.
|
|
11
|
+
* Generates a strongly-typed task object with id, lifecycle events, dependencies,
|
|
12
|
+
* middleware, and metadata.
|
|
13
|
+
*
|
|
14
|
+
* - If `id` is omitted, an anonymous, file-based id is generated.
|
|
15
|
+
* - Wires lifecycle events: `beforeRun`, `afterRun`, `onError`.
|
|
16
|
+
* - Carries through dependencies, middleware, input schema, and metadata.
|
|
17
|
+
*
|
|
18
|
+
* @typeParam Input - Input type accepted by the task's `run` function.
|
|
19
|
+
* @typeParam Output - Promise type returned by the `run` function.
|
|
20
|
+
* @typeParam Deps - Dependency map type this task requires.
|
|
21
|
+
* @typeParam TOn - Event type or "*" this task listens to.
|
|
22
|
+
* @typeParam TMeta - Arbitrary metadata type carried by the task.
|
|
23
|
+
* @param taskConfig - The task definition config.
|
|
24
|
+
* @returns A branded task definition usable by the runner.
|
|
25
|
+
*/
|
|
9
26
|
export declare function defineTask<Input = undefined, Output extends Promise<any> = any, Deps extends DependencyMapType = any, TOn extends "*" | IEventDefinition | undefined = undefined, TMeta extends ITaskMeta = any>(taskConfig: ITaskDefinition<Input, Output, Deps, TOn, TMeta>): ITask<Input, Output, Deps, TOn, TMeta>;
|
|
10
27
|
export declare function defineResource<TConfig = void, TValue extends Promise<any> = Promise<any>, TDeps extends DependencyMapType = {}, TPrivate = any, TMeta extends IResourceMeta = any>(constConfig: IResourceDefinition<TConfig, TValue, TDeps, TPrivate, any, any, TMeta>): IResource<TConfig, TValue, TDeps, TPrivate, TMeta>;
|
|
11
28
|
/**
|
|
@@ -28,22 +45,69 @@ export type MiddlewareEverywhereOptions = {
|
|
|
28
45
|
*/
|
|
29
46
|
resources?: boolean;
|
|
30
47
|
};
|
|
48
|
+
/**
|
|
49
|
+
* Define a middleware.
|
|
50
|
+
* Creates a middleware definition with anonymous id generation, `.with(config)`,
|
|
51
|
+
* and `.everywhere()` helpers.
|
|
52
|
+
*
|
|
53
|
+
* - `.with(config)` merges config (optionally validated via `configSchema`).
|
|
54
|
+
* - `.everywhere()` marks the middleware global (optionally scoping to tasks/resources).
|
|
55
|
+
*
|
|
56
|
+
* @typeParam TConfig - Configuration type accepted by the middleware.
|
|
57
|
+
* @typeParam TDependencies - Dependency map type required by the middleware.
|
|
58
|
+
* @param middlewareDef - The middleware definition config.
|
|
59
|
+
* @returns A branded middleware definition usable by the runner.
|
|
60
|
+
*/
|
|
31
61
|
export declare function defineMiddleware<TConfig extends Record<string, any>, TDependencies extends DependencyMapType>(middlewareDef: IMiddlewareDefinition<TConfig, TDependencies>): IMiddleware<TConfig, TDependencies>;
|
|
62
|
+
/**
|
|
63
|
+
* Type guard: checks if a definition is a Task.
|
|
64
|
+
* @param definition - Any value to test.
|
|
65
|
+
* @returns True when `definition` is a branded Task.
|
|
66
|
+
*/
|
|
32
67
|
export declare function isTask(definition: any): definition is ITask;
|
|
68
|
+
/**
|
|
69
|
+
* Type guard: checks if a definition is a Resource.
|
|
70
|
+
* @param definition - Any value to test.
|
|
71
|
+
* @returns True when `definition` is a branded Resource.
|
|
72
|
+
*/
|
|
33
73
|
export declare function isResource(definition: any): definition is IResource;
|
|
74
|
+
/**
|
|
75
|
+
* Type guard: checks if a definition is a Resource that carries config via `.with()`.
|
|
76
|
+
* @param definition - Any value to test.
|
|
77
|
+
* @returns True when `definition` is a branded ResourceWithConfig.
|
|
78
|
+
*/
|
|
34
79
|
export declare function isResourceWithConfig(definition: any): definition is IResourceWithConfig;
|
|
80
|
+
/**
|
|
81
|
+
* Type guard: checks if a definition is an Event.
|
|
82
|
+
* @param definition - Any value to test.
|
|
83
|
+
* @returns True when `definition` is a branded Event.
|
|
84
|
+
*/
|
|
35
85
|
export declare function isEvent(definition: any): definition is IEvent;
|
|
86
|
+
/**
|
|
87
|
+
* Type guard: checks if a definition is a Middleware.
|
|
88
|
+
* @param definition - Any value to test.
|
|
89
|
+
* @returns True when `definition` is a branded Middleware.
|
|
90
|
+
*/
|
|
36
91
|
export declare function isMiddleware(definition: any): definition is IMiddleware;
|
|
37
92
|
/**
|
|
38
93
|
* Override helper that preserves the original `id` and returns the same type.
|
|
39
|
-
* You can override any property except `id`.
|
|
94
|
+
* You can override any property except `id`. The override is shallow-merged over the base.
|
|
95
|
+
*
|
|
96
|
+
* @param base - The base definition to override.
|
|
97
|
+
* @param patch - Properties to override (except `id`).
|
|
98
|
+
* @returns A definition of the same kind with overrides applied.
|
|
40
99
|
*/
|
|
41
100
|
export declare function defineOverride<T extends ITask<any, any, any, any>>(base: T, patch: Omit<Partial<T>, "id">): T;
|
|
42
101
|
export declare function defineOverride<T extends IResource<any, any, any, any>>(base: T, patch: Omit<Partial<T>, "id">): T;
|
|
43
102
|
export declare function defineOverride<T extends IMiddleware<any, any>>(base: T, patch: Omit<Partial<T>, "id">): T;
|
|
44
103
|
/**
|
|
45
|
-
*
|
|
104
|
+
* Create a tag definition.
|
|
46
105
|
* - `.with(config)` to create configured instances
|
|
47
|
-
* - `.extract(tags)` to extract this tag from a list of tags
|
|
106
|
+
* - `.extract(tags)` to extract this tag from a list of tags or a taggable's meta
|
|
107
|
+
*
|
|
108
|
+
* @typeParam TConfig - Configuration type carried by configured tags.
|
|
109
|
+
* @typeParam TEnforceContract - Optional helper type to enforce a contract when tags are used.
|
|
110
|
+
* @param definition - The tag definition (id).
|
|
111
|
+
* @returns A tag object with helpers to configure and extract.
|
|
48
112
|
*/
|
|
49
113
|
export declare function defineTag<TConfig = void, TEnforceContract = void>(definition: ITagDefinition<TConfig, TEnforceContract>): ITag<TConfig, TEnforceContract>;
|
package/dist/define.js
CHANGED
|
@@ -23,13 +23,24 @@ const defs_1 = require("./defs");
|
|
|
23
23
|
const errors_1 = require("./errors");
|
|
24
24
|
const getCallerFile_1 = require("./tools/getCallerFile");
|
|
25
25
|
// Helper function to get the caller file
|
|
26
|
+
/**
|
|
27
|
+
* Define a task.
|
|
28
|
+
* Generates a strongly-typed task object with id, lifecycle events, dependencies,
|
|
29
|
+
* middleware, and metadata.
|
|
30
|
+
*
|
|
31
|
+
* - If `id` is omitted, an anonymous, file-based id is generated.
|
|
32
|
+
* - Wires lifecycle events: `beforeRun`, `afterRun`, `onError`.
|
|
33
|
+
* - Carries through dependencies, middleware, input schema, and metadata.
|
|
34
|
+
*
|
|
35
|
+
* @typeParam Input - Input type accepted by the task's `run` function.
|
|
36
|
+
* @typeParam Output - Promise type returned by the `run` function.
|
|
37
|
+
* @typeParam Deps - Dependency map type this task requires.
|
|
38
|
+
* @typeParam TOn - Event type or "*" this task listens to.
|
|
39
|
+
* @typeParam TMeta - Arbitrary metadata type carried by the task.
|
|
40
|
+
* @param taskConfig - The task definition config.
|
|
41
|
+
* @returns A branded task definition usable by the runner.
|
|
42
|
+
*/
|
|
26
43
|
function defineTask(taskConfig) {
|
|
27
|
-
/**
|
|
28
|
-
* Creates a task definition.
|
|
29
|
-
* - Generates an anonymous id based on file path when `id` is omitted
|
|
30
|
-
* - Wires lifecycle events: beforeRun, afterRun, onError
|
|
31
|
-
* - Carries through dependencies and middleware as declared
|
|
32
|
-
*/
|
|
33
44
|
const filePath = (0, getCallerFile_1.getCallerFile)();
|
|
34
45
|
const isAnonymous = !Boolean(taskConfig.id);
|
|
35
46
|
const id = taskConfig.id || (0, getCallerFile_1.generateCallerIdFromFile)(filePath, "task");
|
|
@@ -75,10 +86,21 @@ function defineTask(taskConfig) {
|
|
|
75
86
|
}
|
|
76
87
|
function defineResource(constConfig) {
|
|
77
88
|
/**
|
|
78
|
-
*
|
|
79
|
-
* -
|
|
80
|
-
*
|
|
81
|
-
*
|
|
89
|
+
* Define a resource.
|
|
90
|
+
* Produces a strongly-typed resource with id, lifecycle events, registration hooks,
|
|
91
|
+
* and optional config schema.
|
|
92
|
+
*
|
|
93
|
+
* - If `id` is omitted, an anonymous, file-based id is generated (resource or index flavored).
|
|
94
|
+
* - Wires lifecycle events: `beforeInit`, `afterInit`, `onError`.
|
|
95
|
+
* - Provides `.with(config)` for config-bound registration with optional runtime validation.
|
|
96
|
+
*
|
|
97
|
+
* @typeParam TConfig - Configuration type accepted by the resource.
|
|
98
|
+
* @typeParam TValue - Promise type resolved by the resource `init`.
|
|
99
|
+
* @typeParam TDeps - Dependency map type this resource requires.
|
|
100
|
+
* @typeParam TPrivate - Private context type exposed to middleware during init.
|
|
101
|
+
* @typeParam TMeta - Arbitrary metadata type carried by the resource.
|
|
102
|
+
* @param constConfig - The resource definition config.
|
|
103
|
+
* @returns A branded resource definition usable by the runner.
|
|
82
104
|
*/
|
|
83
105
|
// The symbolFilePath might already come from defineIndex() for example
|
|
84
106
|
const filePath = constConfig[defs_1.symbolFilePath] || (0, getCallerFile_1.getCallerFile)();
|
|
@@ -178,8 +200,13 @@ function defineIndex(items) {
|
|
|
178
200
|
}
|
|
179
201
|
function defineEvent(config) {
|
|
180
202
|
/**
|
|
181
|
-
*
|
|
182
|
-
*
|
|
203
|
+
* Define an event.
|
|
204
|
+
* Generates a branded event definition with a stable id (anonymous if omitted)
|
|
205
|
+
* and file path metadata for better debugging.
|
|
206
|
+
*
|
|
207
|
+
* @typeParam TPayload - Payload type carried by the event.
|
|
208
|
+
* @param config - Optional event definition (id, etc.).
|
|
209
|
+
* @returns A branded event definition.
|
|
183
210
|
*/
|
|
184
211
|
const callerFilePath = (0, getCallerFile_1.getCallerFile)();
|
|
185
212
|
const eventConfig = config || {};
|
|
@@ -190,13 +217,20 @@ function defineEvent(config) {
|
|
|
190
217
|
[defs_1.symbolEvent]: true, // This is a workaround
|
|
191
218
|
};
|
|
192
219
|
}
|
|
220
|
+
/**
|
|
221
|
+
* Define a middleware.
|
|
222
|
+
* Creates a middleware definition with anonymous id generation, `.with(config)`,
|
|
223
|
+
* and `.everywhere()` helpers.
|
|
224
|
+
*
|
|
225
|
+
* - `.with(config)` merges config (optionally validated via `configSchema`).
|
|
226
|
+
* - `.everywhere()` marks the middleware global (optionally scoping to tasks/resources).
|
|
227
|
+
*
|
|
228
|
+
* @typeParam TConfig - Configuration type accepted by the middleware.
|
|
229
|
+
* @typeParam TDependencies - Dependency map type required by the middleware.
|
|
230
|
+
* @param middlewareDef - The middleware definition config.
|
|
231
|
+
* @returns A branded middleware definition usable by the runner.
|
|
232
|
+
*/
|
|
193
233
|
function defineMiddleware(middlewareDef) {
|
|
194
|
-
/**
|
|
195
|
-
* Creates a middleware definition with:
|
|
196
|
-
* - Anonymous id generation when omitted
|
|
197
|
-
* - `.with(config)` to create configured instances
|
|
198
|
-
* - `.everywhere()` to mark as global (optionally scoping to tasks/resources)
|
|
199
|
-
*/
|
|
200
234
|
const filePath = (0, getCallerFile_1.getCallerFile)();
|
|
201
235
|
const object = {
|
|
202
236
|
[defs_1.symbolFilePath]: filePath,
|
|
@@ -240,18 +274,43 @@ function defineMiddleware(middlewareDef) {
|
|
|
240
274
|
},
|
|
241
275
|
};
|
|
242
276
|
}
|
|
277
|
+
/**
|
|
278
|
+
* Type guard: checks if a definition is a Task.
|
|
279
|
+
* @param definition - Any value to test.
|
|
280
|
+
* @returns True when `definition` is a branded Task.
|
|
281
|
+
*/
|
|
243
282
|
function isTask(definition) {
|
|
244
283
|
return definition && definition[defs_1.symbolTask];
|
|
245
284
|
}
|
|
285
|
+
/**
|
|
286
|
+
* Type guard: checks if a definition is a Resource.
|
|
287
|
+
* @param definition - Any value to test.
|
|
288
|
+
* @returns True when `definition` is a branded Resource.
|
|
289
|
+
*/
|
|
246
290
|
function isResource(definition) {
|
|
247
291
|
return definition && definition[defs_1.symbolResource];
|
|
248
292
|
}
|
|
293
|
+
/**
|
|
294
|
+
* Type guard: checks if a definition is a Resource that carries config via `.with()`.
|
|
295
|
+
* @param definition - Any value to test.
|
|
296
|
+
* @returns True when `definition` is a branded ResourceWithConfig.
|
|
297
|
+
*/
|
|
249
298
|
function isResourceWithConfig(definition) {
|
|
250
299
|
return definition && definition[defs_1.symbolResourceWithConfig];
|
|
251
300
|
}
|
|
301
|
+
/**
|
|
302
|
+
* Type guard: checks if a definition is an Event.
|
|
303
|
+
* @param definition - Any value to test.
|
|
304
|
+
* @returns True when `definition` is a branded Event.
|
|
305
|
+
*/
|
|
252
306
|
function isEvent(definition) {
|
|
253
307
|
return definition && definition[defs_1.symbolEvent];
|
|
254
308
|
}
|
|
309
|
+
/**
|
|
310
|
+
* Type guard: checks if a definition is a Middleware.
|
|
311
|
+
* @param definition - Any value to test.
|
|
312
|
+
* @returns True when `definition` is a branded Middleware.
|
|
313
|
+
*/
|
|
255
314
|
function isMiddleware(definition) {
|
|
256
315
|
return definition && definition[defs_1.symbolMiddleware];
|
|
257
316
|
}
|
|
@@ -265,9 +324,14 @@ function defineOverride(base, patch) {
|
|
|
265
324
|
};
|
|
266
325
|
}
|
|
267
326
|
/**
|
|
268
|
-
*
|
|
327
|
+
* Create a tag definition.
|
|
269
328
|
* - `.with(config)` to create configured instances
|
|
270
|
-
* - `.extract(tags)` to extract this tag from a list of tags
|
|
329
|
+
* - `.extract(tags)` to extract this tag from a list of tags or a taggable's meta
|
|
330
|
+
*
|
|
331
|
+
* @typeParam TConfig - Configuration type carried by configured tags.
|
|
332
|
+
* @typeParam TEnforceContract - Optional helper type to enforce a contract when tags are used.
|
|
333
|
+
* @param definition - The tag definition (id).
|
|
334
|
+
* @returns A tag object with helpers to configure and extract.
|
|
271
335
|
*/
|
|
272
336
|
function defineTag(definition) {
|
|
273
337
|
const id = definition.id;
|
package/dist/define.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define.js","sourceRoot":"","sources":["../src/define.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"define.js","sourceRoot":"","sources":["../src/define.ts"],"names":[],"mappings":"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"}
|
package/dist/models/Store.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IResource, RegisterableItems, IMiddleware } from "../defs";
|
|
1
|
+
import { IResource, RegisterableItems, IMiddleware, ITag } from "../defs";
|
|
2
2
|
import { IDependentNode } from "../tools/findCircularDependencies";
|
|
3
3
|
import { EventManager } from "./EventManager";
|
|
4
4
|
import { Logger } from "./Logger";
|
|
@@ -37,5 +37,7 @@ export declare class Store {
|
|
|
37
37
|
getEverywhereMiddlewareForResources(excludingIds: Array<string | symbol>): IMiddleware[];
|
|
38
38
|
storeGenericItem<C>(item: RegisterableItems): void;
|
|
39
39
|
storeEventsForAllTasks(): void;
|
|
40
|
+
getTasksWithTag(tag: string | ITag): TaskStoreElementType[] | import("../defs").ITask<any, any, any, any, any>[];
|
|
41
|
+
getResourcesWithTag(tag: string | ITag): ResourceStoreElementType[] | IResource<any, any, {}, any, any>[];
|
|
40
42
|
getDependentNodes(): IDependentNode[];
|
|
41
43
|
}
|
package/dist/models/Store.js
CHANGED
|
@@ -125,6 +125,12 @@ class Store {
|
|
|
125
125
|
storeEventsForAllTasks() {
|
|
126
126
|
this.registry.storeEventsForAllTasks();
|
|
127
127
|
}
|
|
128
|
+
getTasksWithTag(tag) {
|
|
129
|
+
return this.registry.getTasksWithTag(tag);
|
|
130
|
+
}
|
|
131
|
+
getResourcesWithTag(tag) {
|
|
132
|
+
return this.registry.getResourcesWithTag(tag);
|
|
133
|
+
}
|
|
128
134
|
getDependentNodes() {
|
|
129
135
|
return this.registry.getDependentNodes();
|
|
130
136
|
}
|
package/dist/models/Store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Store.js","sourceRoot":"","sources":["../../src/models/Store.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"Store.js","sourceRoot":"","sources":["../../src/models/Store.ts"],"names":[],"mappings":";;;AAQA,0DAA4D;AAC5D,sCAAyD;AAGzD,mDAAgD;AAChD,uDAAoD;AAQpD,qDAA8E;AAU9E;;GAEG;AACH,MAAa,KAAK;IAUK;IACA;IAVrB,IAAI,CAA4B;IACxB,QAAQ,CAAgB;IACxB,eAAe,CAAkB;IACjC,SAAS,CAAiB;IAElC,SAAS,GAAG,KAAK,CAAC;IAClB,cAAc,GAAG,KAAK,CAAC;IAEvB,YACqB,YAA0B,EAC1B,MAAc;QADd,iBAAY,GAAZ,YAAY,CAAc;QAC1B,WAAM,GAAN,MAAM,CAAQ;QAEjC,IAAI,CAAC,QAAQ,GAAG,IAAI,6BAAa,EAAE,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;QAC9C,IAAI,CAAC,eAAe,GAAG,IAAI,iCAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5D,CAAC;IAED,kCAAkC;IAClC,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;IAC7B,CAAC;IACD,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;IACjC,CAAC;IACD,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC9B,CAAC;IACD,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;IACnC,CAAC;IACD,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;IACxC,CAAC;IACD,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC;IAC/C,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,IAAI;QACF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,SAAS;QACP,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAEO,wBAAwB;QAC9B,8BAA8B;QAC9B,MAAM,gBAAgB,GAAG,IAAA,oCAAmB,EAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QACtE,gBAAgB,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;YACpC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,yBAAyB;QACzB,gCAAiB,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAClC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,gCAAgC;QAChC,MAAM,kBAAkB,GAAG,IAAA,sCAAqB,GAAE,CAAC;QACnD,kBAAkB,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;YACxC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE;gBAC3C,UAAU;gBACV,oBAAoB,EAAE,EAAE;aACzB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,iBAAiB,CAAC,IAAoB,EAAE,MAAW;QACzD,IAAI,CAAC,YAAY;YACf,OAAO,IAAI,CAAC,YAAY,KAAK,UAAU;gBACrC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;gBAC3B,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;QAExB,IAAI,CAAC,IAAI,GAAG;YACV,QAAQ,EAAE,IAAI;YACd,oBAAoB,EAAE,EAAE;YACxB,MAAM;YACN,KAAK,EAAE,SAAS;YAChB,aAAa,EAAE,KAAK;YACpB,OAAO,EAAE,EAAE;SACZ,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,yBAAyB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACtD,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;IAED,eAAe,CAAC,IAAwC,EAAE,MAAW;QACnE,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,IAAI,qCAA4B,EAAE,CAAC;QAC3C,CAAC;QAED,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAChC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC;QAEjC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;YAC/C,IAAI,CAAC,eAAe,CAAC,oBAAoB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC/D,CAAC;QAED,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC7B,CAAC;IAEM,KAAK,CAAC,OAAO;QAClB,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;YAC/C,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;gBAC9B,MAAM,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAC7B,QAAQ,CAAC,KAAK,EACd,QAAQ,CAAC,MAAM,EACf,QAAQ,CAAC,oBAAyC,EAClD,QAAQ,CAAC,OAAO,CACjB,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAEM,gBAAgB;QACrB,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE,CAAC;IAC1C,CAAC;IAEM,+BAA+B,CACpC,YAAoC;QAEpC,OAAO,IAAI,CAAC,QAAQ,CAAC,+BAA+B,CAAC,YAAY,CAAC,CAAC;IACrE,CAAC;IAEM,mCAAmC,CACxC,YAAoC;QAEpC,OAAO,IAAI,CAAC,QAAQ,CAAC,mCAAmC,CAAC,YAAY,CAAC,CAAC;IACzE,CAAC;IAEM,gBAAgB,CAAI,IAAuB;QAChD,OAAO,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAI,IAAI,CAAC,CAAC;IACjD,CAAC;IAEM,sBAAsB;QAC3B,IAAI,CAAC,QAAQ,CAAC,sBAAsB,EAAE,CAAC;IACzC,CAAC;IAEM,eAAe,CAAC,GAAkB;QACvC,OAAO,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IAC5C,CAAC;IAEM,mBAAmB,CAAC,GAAkB;QAC3C,OAAO,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAChD,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC;IAC3C,CAAC;CACF;AA9JD,sBA8JC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IResource, ITask, IResourceWithConfig, RegisterableItems, IMiddleware, IEvent } from "../defs";
|
|
1
|
+
import { IResource, ITask, IResourceWithConfig, RegisterableItems, IMiddleware, IEvent, ITag } from "../defs";
|
|
2
2
|
import { TaskStoreElementType, MiddlewareStoreElementType, ResourceStoreElementType, EventStoreElementType } from "./StoreTypes";
|
|
3
3
|
import { StoreValidator } from "./StoreValidator";
|
|
4
4
|
export declare class StoreRegistry {
|
|
@@ -22,4 +22,6 @@ export declare class StoreRegistry {
|
|
|
22
22
|
private prepareResource;
|
|
23
23
|
private middlewareAsMap;
|
|
24
24
|
getDependentNodes(): any[];
|
|
25
|
+
getTasksWithTag(tag: string | ITag): TaskStoreElementType[] | ITask<any, any, any, any, any>[];
|
|
26
|
+
getResourcesWithTag(tag: string | ITag): ResourceStoreElementType[] | IResource<any, any, {}, any, any>[];
|
|
25
27
|
}
|
|
@@ -166,6 +166,22 @@ class StoreRegistry {
|
|
|
166
166
|
}
|
|
167
167
|
return depenedants;
|
|
168
168
|
}
|
|
169
|
+
getTasksWithTag(tag) {
|
|
170
|
+
if (typeof tag === "string") {
|
|
171
|
+
return Array.from(this.tasks.values()).filter((x) => x.task.meta?.tags?.includes(tag));
|
|
172
|
+
}
|
|
173
|
+
return Array.from(this.tasks.values())
|
|
174
|
+
.filter((x) => tag.extract(x.task.meta?.tags))
|
|
175
|
+
.map((x) => x.task);
|
|
176
|
+
}
|
|
177
|
+
getResourcesWithTag(tag) {
|
|
178
|
+
if (typeof tag === "string") {
|
|
179
|
+
return Array.from(this.resources.values()).filter((x) => x.resource.meta?.tags?.includes(tag));
|
|
180
|
+
}
|
|
181
|
+
return Array.from(this.resources.values())
|
|
182
|
+
.filter((x) => tag.extract(x.resource.meta?.tags))
|
|
183
|
+
.map((x) => x.resource);
|
|
184
|
+
}
|
|
169
185
|
}
|
|
170
186
|
exports.StoreRegistry = StoreRegistry;
|
|
171
187
|
//# sourceMappingURL=StoreRegistry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StoreRegistry.js","sourceRoot":"","sources":["../../src/models/StoreRegistry.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"StoreRegistry.js","sourceRoot":"","sources":["../../src/models/StoreRegistry.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,16 +36,26 @@ function getCallerFile() {
|
|
|
36
36
|
* @returns
|
|
37
37
|
*/
|
|
38
38
|
function generateCallerIdFromFile(filePath, suffix = "", fallbackParts = 4) {
|
|
39
|
-
|
|
40
|
-
const
|
|
41
|
-
const
|
|
39
|
+
// Normalize paths for consistency across platforms
|
|
40
|
+
const normalizedPath = filePath.replace(/\\/g, "/");
|
|
41
|
+
const cwdNormalized = process.cwd().replace(/\\/g, "/");
|
|
42
|
+
const parts = normalizedPath.split("/");
|
|
42
43
|
const nodeModulesIndex = parts.lastIndexOf("node_modules");
|
|
43
|
-
const breakIndex = Math.max(srcIndex, nodeModulesIndex);
|
|
44
44
|
let relevantParts;
|
|
45
|
-
if (
|
|
46
|
-
|
|
45
|
+
if (nodeModulesIndex !== -1) {
|
|
46
|
+
// If inside node_modules, generate id relative to the package path
|
|
47
|
+
relevantParts = parts.slice(nodeModulesIndex + 1);
|
|
48
|
+
}
|
|
49
|
+
else if (normalizedPath === cwdNormalized ||
|
|
50
|
+
normalizedPath.startsWith(cwdNormalized + "/")) {
|
|
51
|
+
// Prefer generating id relative to the workspace root (process.cwd())
|
|
52
|
+
const relativeToCwd = normalizedPath
|
|
53
|
+
.slice(cwdNormalized.length)
|
|
54
|
+
.replace(/^\//, "");
|
|
55
|
+
relevantParts = relativeToCwd.length > 0 ? relativeToCwd.split("/") : [""];
|
|
47
56
|
}
|
|
48
57
|
else {
|
|
58
|
+
// Fallback: use the last N parts if path is outside cwd and not in node_modules
|
|
49
59
|
relevantParts = parts.slice(-fallbackParts);
|
|
50
60
|
}
|
|
51
61
|
if (relevantParts.length > 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getCallerFile.js","sourceRoot":"","sources":["../../src/tools/getCallerFile.ts"],"names":[],"mappings":";;AAAA,sCAgCC;AASD,
|
|
1
|
+
{"version":3,"file":"getCallerFile.js","sourceRoot":"","sources":["../../src/tools/getCallerFile.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -536,7 +536,7 @@ describe("Global Events", () => {
|
|
|
536
536
|
|
|
537
537
|
// Verify the simple event handler was executed
|
|
538
538
|
expect(eventHandlerExecutions).toContain(
|
|
539
|
-
"simple-handler:Symbol(__tests__.globalEvents.test.event)"
|
|
539
|
+
"simple-handler:Symbol(src.__tests__.globalEvents.test.event)"
|
|
540
540
|
);
|
|
541
541
|
});
|
|
542
542
|
});
|
|
@@ -5,6 +5,7 @@ import {
|
|
|
5
5
|
defineTask,
|
|
6
6
|
defineMiddleware,
|
|
7
7
|
defineEvent,
|
|
8
|
+
defineTag,
|
|
8
9
|
} from "../../define";
|
|
9
10
|
import { Logger } from "../../models";
|
|
10
11
|
|
|
@@ -167,4 +168,60 @@ describe("Store", () => {
|
|
|
167
168
|
const result = store.getDependentNodes();
|
|
168
169
|
expect(Array.isArray(result)).toBe(true);
|
|
169
170
|
});
|
|
171
|
+
|
|
172
|
+
it("should call getTasksWithTag method", () => {
|
|
173
|
+
const tag = defineTag({
|
|
174
|
+
id: "tags.test",
|
|
175
|
+
});
|
|
176
|
+
const taskTest = defineTask({
|
|
177
|
+
meta: {
|
|
178
|
+
tags: [tag, "test"],
|
|
179
|
+
},
|
|
180
|
+
async run() {
|
|
181
|
+
return "OK";
|
|
182
|
+
},
|
|
183
|
+
});
|
|
184
|
+
const unfindableTask = defineTask({
|
|
185
|
+
run: async () => 1,
|
|
186
|
+
});
|
|
187
|
+
const rootResource = defineResource({
|
|
188
|
+
id: "root",
|
|
189
|
+
register: [taskTest, unfindableTask],
|
|
190
|
+
init: async () => "Root Value",
|
|
191
|
+
});
|
|
192
|
+
|
|
193
|
+
store.initializeStore(rootResource, {});
|
|
194
|
+
const result = store.getTasksWithTag(tag);
|
|
195
|
+
expect(Array.isArray(result)).toBe(true);
|
|
196
|
+
expect(result).toHaveLength(1);
|
|
197
|
+
const result2 = store.getTasksWithTag("test");
|
|
198
|
+
expect(result2).toHaveLength(1);
|
|
199
|
+
});
|
|
200
|
+
|
|
201
|
+
it("should call getResourcesWithTag method", () => {
|
|
202
|
+
const tag = defineTag({
|
|
203
|
+
id: "tags.test",
|
|
204
|
+
});
|
|
205
|
+
const resourceTest = defineResource({
|
|
206
|
+
meta: {
|
|
207
|
+
tags: [tag, "test"],
|
|
208
|
+
},
|
|
209
|
+
});
|
|
210
|
+
|
|
211
|
+
const unfindableResource = defineResource({
|
|
212
|
+
init: async () => 1,
|
|
213
|
+
});
|
|
214
|
+
const rootResource = defineResource({
|
|
215
|
+
id: "root",
|
|
216
|
+
register: [resourceTest, unfindableResource],
|
|
217
|
+
init: async () => "Root Value",
|
|
218
|
+
});
|
|
219
|
+
|
|
220
|
+
store.initializeStore(rootResource, {});
|
|
221
|
+
const result = store.getResourcesWithTag(tag);
|
|
222
|
+
expect(Array.isArray(result)).toBe(true);
|
|
223
|
+
expect(result).toHaveLength(1);
|
|
224
|
+
const result2 = store.getResourcesWithTag("test");
|
|
225
|
+
expect(result2).toHaveLength(1);
|
|
226
|
+
});
|
|
170
227
|
});
|
|
@@ -314,6 +314,33 @@ describe("Anonymous Components", () => {
|
|
|
314
314
|
|
|
315
315
|
await run(app);
|
|
316
316
|
});
|
|
317
|
+
|
|
318
|
+
it("should allow two anonymous resources to co-exist and be distinct", async () => {
|
|
319
|
+
const resourceA = defineResource({
|
|
320
|
+
init: async () => "A",
|
|
321
|
+
});
|
|
322
|
+
|
|
323
|
+
const resourceB = defineResource({
|
|
324
|
+
init: async () => "B",
|
|
325
|
+
});
|
|
326
|
+
|
|
327
|
+
// Both ids should be symbols and different
|
|
328
|
+
expect(typeof resourceA.id).toBe("symbol");
|
|
329
|
+
expect(typeof resourceB.id).toBe("symbol");
|
|
330
|
+
expect(resourceA.id).not.toBe(resourceB.id);
|
|
331
|
+
|
|
332
|
+
const app = defineResource({
|
|
333
|
+
id: "app",
|
|
334
|
+
register: [resourceA, resourceB],
|
|
335
|
+
dependencies: { resourceA, resourceB },
|
|
336
|
+
async init(_, { resourceA, resourceB }) {
|
|
337
|
+
expect(resourceA).toBe("A");
|
|
338
|
+
expect(resourceB).toBe("B");
|
|
339
|
+
},
|
|
340
|
+
});
|
|
341
|
+
|
|
342
|
+
await run(app);
|
|
343
|
+
});
|
|
317
344
|
});
|
|
318
345
|
|
|
319
346
|
describe("Anonymous Events", () => {
|
|
@@ -57,7 +57,7 @@ describe("generateCallerIdFromFile", () => {
|
|
|
57
57
|
it("should generate a symbol from a path containing src", () => {
|
|
58
58
|
const filePath =
|
|
59
59
|
"/Users/theodordiaconu/Projects/runner/src/globals/resources/queue.resource.ts";
|
|
60
|
-
const expectedDescription = "globals.resources.queue.resource";
|
|
60
|
+
const expectedDescription = "src.globals.resources.queue.resource";
|
|
61
61
|
expect(generateCallerIdFromFile(filePath).description).toEqual(
|
|
62
62
|
expectedDescription
|
|
63
63
|
);
|
|
@@ -83,7 +83,7 @@ describe("generateCallerIdFromFile", () => {
|
|
|
83
83
|
it("should handle paths with backslashes", () => {
|
|
84
84
|
const filePath =
|
|
85
85
|
"C:\\Users\\theodordiaconu\\Projects\\runner\\src\\globals\\resources\\queue.resource.ts";
|
|
86
|
-
const expectedDescription = "globals.resources.queue.resource";
|
|
86
|
+
const expectedDescription = "src.globals.resources.queue.resource";
|
|
87
87
|
expect(generateCallerIdFromFile(filePath).description).toEqual(
|
|
88
88
|
expectedDescription
|
|
89
89
|
);
|
|
@@ -92,7 +92,7 @@ describe("generateCallerIdFromFile", () => {
|
|
|
92
92
|
it("should handle file names without extensions", () => {
|
|
93
93
|
const filePath =
|
|
94
94
|
"/Users/theodordiaconu/Projects/runner/src/globals/resources/queue.resource";
|
|
95
|
-
const expectedDescription = "globals.resources.queue.resource";
|
|
95
|
+
const expectedDescription = "src.globals.resources.queue.resource";
|
|
96
96
|
expect(generateCallerIdFromFile(filePath).description).toEqual(
|
|
97
97
|
expectedDescription
|
|
98
98
|
);
|
|
@@ -101,7 +101,7 @@ describe("generateCallerIdFromFile", () => {
|
|
|
101
101
|
it("should handle file names with multiple dots", () => {
|
|
102
102
|
const filePath =
|
|
103
103
|
"/Users/theodordiaconu/Projects/runner/src/globals/resources/queue.resource.test.ts";
|
|
104
|
-
const expectedDescription = "globals.resources.queue.resource.test";
|
|
104
|
+
const expectedDescription = "src.globals.resources.queue.resource.test";
|
|
105
105
|
expect(generateCallerIdFromFile(filePath).description).toEqual(
|
|
106
106
|
expectedDescription
|
|
107
107
|
);
|
|
@@ -150,7 +150,7 @@ describe("generateCallerIdFromFile", () => {
|
|
|
150
150
|
|
|
151
151
|
// Test case where 'src' is at the end, making relevantParts empty (triggers line 77 else branch)
|
|
152
152
|
const result = generateCallerIdFromFile("/some/path/src", "suffix");
|
|
153
|
-
expect(result.description).toEqual(".suffix");
|
|
153
|
+
expect(result.description).toEqual(".some.path.src.suffix");
|
|
154
154
|
});
|
|
155
155
|
|
|
156
156
|
it("should use fallback parts when no src or node_modules found", () => {
|
|
@@ -161,4 +161,19 @@ describe("generateCallerIdFromFile", () => {
|
|
|
161
161
|
expectedDescription
|
|
162
162
|
);
|
|
163
163
|
});
|
|
164
|
+
|
|
165
|
+
it("should handle path equal to process.cwd() (relative root)", () => {
|
|
166
|
+
const expectedDescription = ".suffix";
|
|
167
|
+
expect(
|
|
168
|
+
generateCallerIdFromFile(process.cwd(), "suffix").description
|
|
169
|
+
).toEqual(expectedDescription);
|
|
170
|
+
});
|
|
171
|
+
|
|
172
|
+
it("should handle path ending with node_modules (no relevant parts)", () => {
|
|
173
|
+
const path = `${process.cwd()}/node_modules`;
|
|
174
|
+
const expectedDescription = ".suffix";
|
|
175
|
+
expect(generateCallerIdFromFile(path, "suffix").description).toEqual(
|
|
176
|
+
expectedDescription
|
|
177
|
+
);
|
|
178
|
+
});
|
|
164
179
|
});
|