@bluelibs/runner 3.2.0 → 3.3.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.
- package/README.md +482 -34
- package/dist/cli/extract-docs.d.ts +2 -0
- package/dist/cli/extract-docs.js +88 -0
- package/dist/cli/extract-docs.js.map +1 -0
- package/dist/define.d.ts +21 -1
- package/dist/define.js +71 -0
- package/dist/define.js.map +1 -1
- package/dist/defs.d.ts +163 -4
- package/dist/defs.js +30 -0
- package/dist/defs.js.map +1 -1
- package/dist/docs/introspect.d.ts +7 -0
- package/dist/docs/introspect.js +199 -0
- package/dist/docs/introspect.js.map +1 -0
- package/dist/docs/markdown.d.ts +2 -0
- package/dist/docs/markdown.js +148 -0
- package/dist/docs/markdown.js.map +1 -0
- package/dist/docs/model.d.ts +62 -0
- package/dist/docs/model.js +33 -0
- package/dist/docs/model.js.map +1 -0
- package/dist/express/docsRouter.d.ts +12 -0
- package/dist/express/docsRouter.js +54 -0
- package/dist/express/docsRouter.js.map +1 -0
- package/dist/globals/globalMiddleware.d.ts +1 -0
- package/dist/globals/globalMiddleware.js +2 -0
- package/dist/globals/globalMiddleware.js.map +1 -1
- package/dist/globals/middleware/timeout.middleware.d.ts +8 -0
- package/dist/globals/middleware/timeout.middleware.js +35 -0
- package/dist/globals/middleware/timeout.middleware.js.map +1 -0
- package/dist/index.d.ts +4 -2
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/models/DependencyProcessor.js +2 -2
- package/dist/models/DependencyProcessor.js.map +1 -1
- package/dist/models/Store.d.ts +1 -1
- package/dist/models/StoreConstants.d.ts +1 -1
- package/dist/models/StoreConstants.js +2 -1
- package/dist/models/StoreConstants.js.map +1 -1
- package/dist/models/TaskRunner.d.ts +2 -3
- package/dist/models/TaskRunner.js +1 -2
- package/dist/models/TaskRunner.js.map +1 -1
- package/dist/testing.d.ts +24 -0
- package/dist/testing.js +41 -0
- package/dist/testing.js.map +1 -0
- package/package.json +4 -4
- package/src/__tests__/benchmark/task-benchmark.test.ts +132 -0
- package/src/__tests__/createTestResource.test.ts +139 -0
- package/src/__tests__/globals/timeout.middleware.test.ts +88 -0
- package/src/__tests__/models/Semaphore.test.ts +1 -1
- package/src/__tests__/override.test.ts +104 -0
- package/src/__tests__/run.overrides.test.ts +50 -21
- package/src/__tests__/run.test.ts +19 -0
- package/src/__tests__/tags.test.ts +396 -0
- package/src/__tests__/typesafety.test.ts +109 -1
- package/src/define.ts +97 -0
- package/src/defs.ts +168 -8
- package/src/globals/globalMiddleware.ts +2 -0
- package/src/globals/middleware/timeout.middleware.ts +46 -0
- package/src/index.ts +6 -0
- package/src/models/DependencyProcessor.ts +2 -10
- package/src/models/StoreConstants.ts +2 -1
- package/src/models/TaskRunner.ts +1 -3
- package/src/testing.ts +66 -0
|
@@ -139,11 +139,7 @@ export class DependencyProcessor {
|
|
|
139
139
|
return;
|
|
140
140
|
}
|
|
141
141
|
|
|
142
|
-
return this.taskRunner.run(
|
|
143
|
-
task.task,
|
|
144
|
-
receivedEvent,
|
|
145
|
-
task.computedDependencies
|
|
146
|
-
);
|
|
142
|
+
return this.taskRunner.run(task.task, receivedEvent);
|
|
147
143
|
};
|
|
148
144
|
|
|
149
145
|
if (eventDefinition === "*") {
|
|
@@ -217,11 +213,7 @@ export class DependencyProcessor {
|
|
|
217
213
|
}
|
|
218
214
|
|
|
219
215
|
return (input: any) => {
|
|
220
|
-
return this.taskRunner.run(
|
|
221
|
-
storeTask.task,
|
|
222
|
-
input,
|
|
223
|
-
storeTask.computedDependencies
|
|
224
|
-
);
|
|
216
|
+
return this.taskRunner.run(storeTask.task, input);
|
|
225
217
|
};
|
|
226
218
|
}
|
|
227
219
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { globalResources } from "../globals/globalResources";
|
|
2
2
|
import { requireContextMiddleware } from "../globals/middleware/requireContext.middleware";
|
|
3
3
|
import { retryMiddleware } from "../globals/middleware/retry.middleware";
|
|
4
|
+
import { timeoutMiddleware } from "../globals/middleware/timeout.middleware";
|
|
4
5
|
import { EventManager } from "./EventManager";
|
|
5
6
|
import { Store } from "./Store";
|
|
6
7
|
|
|
@@ -13,5 +14,5 @@ export function getBuiltInResources(eventManager: EventManager, store: Store) {
|
|
|
13
14
|
}
|
|
14
15
|
|
|
15
16
|
export function getBuiltInMiddlewares() {
|
|
16
|
-
return [requireContextMiddleware, retryMiddleware];
|
|
17
|
+
return [requireContextMiddleware, retryMiddleware, timeoutMiddleware];
|
|
17
18
|
}
|
package/src/models/TaskRunner.ts
CHANGED
|
@@ -23,7 +23,6 @@ export class TaskRunner {
|
|
|
23
23
|
* This function can throw only if any of the event listeners or run function throws
|
|
24
24
|
* @param task the task to be run
|
|
25
25
|
* @param input the input to be passed to the task
|
|
26
|
-
* @param taskDependencies optional dependencies to be passed to the task, if not provided, the dependencies will be the ones already computed from the store.
|
|
27
26
|
*/
|
|
28
27
|
public async run<
|
|
29
28
|
TInput,
|
|
@@ -31,8 +30,7 @@ export class TaskRunner {
|
|
|
31
30
|
TDeps extends DependencyMapType
|
|
32
31
|
>(
|
|
33
32
|
task: ITask<TInput, TOutput, TDeps>,
|
|
34
|
-
input: TInput
|
|
35
|
-
taskDependencies?: DependencyValuesType<TDeps>
|
|
33
|
+
input: TInput
|
|
36
34
|
): Promise<TOutput | undefined> {
|
|
37
35
|
let runner = this.runnerStore.get(task.id);
|
|
38
36
|
if (!runner) {
|
package/src/testing.ts
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { defineResource } from "./define";
|
|
2
|
+
import { globalResources } from "./globals/globalResources";
|
|
3
|
+
import {
|
|
4
|
+
IResource,
|
|
5
|
+
IResourceWithConfig,
|
|
6
|
+
IMiddleware,
|
|
7
|
+
ITask,
|
|
8
|
+
RegisterableItems,
|
|
9
|
+
IEvent,
|
|
10
|
+
IEventEmission,
|
|
11
|
+
DependencyMapType,
|
|
12
|
+
DependencyValuesType,
|
|
13
|
+
} from "./defs";
|
|
14
|
+
import { EventManager, Logger, Store, TaskRunner } from "./models";
|
|
15
|
+
|
|
16
|
+
let testResourceCounter = 0;
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Helper to create a minimal test harness resource that wraps a root app (or any registerable)
|
|
20
|
+
* and exposes convenient testing utilities while running the full ecosystem
|
|
21
|
+
* (registration, overrides, middleware, events) without modifying the core API.
|
|
22
|
+
*/
|
|
23
|
+
export function createTestResource(
|
|
24
|
+
root: RegisterableItems,
|
|
25
|
+
options?: {
|
|
26
|
+
overrides?: Array<IResource | ITask | IMiddleware | IResourceWithConfig>;
|
|
27
|
+
}
|
|
28
|
+
): IResource<void, ReturnType<typeof buildTestFacade>> {
|
|
29
|
+
return defineResource({
|
|
30
|
+
id: `tests.createTestResource.${++testResourceCounter}`,
|
|
31
|
+
register: [root],
|
|
32
|
+
overrides: options?.overrides || [],
|
|
33
|
+
dependencies: {
|
|
34
|
+
taskRunner: globalResources.taskRunner,
|
|
35
|
+
store: globalResources.store,
|
|
36
|
+
logger: globalResources.logger,
|
|
37
|
+
eventManager: globalResources.eventManager,
|
|
38
|
+
},
|
|
39
|
+
async init(_, deps) {
|
|
40
|
+
return buildTestFacade(deps);
|
|
41
|
+
},
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
function buildTestFacade(deps: {
|
|
46
|
+
taskRunner: TaskRunner;
|
|
47
|
+
store: Store;
|
|
48
|
+
logger: Logger;
|
|
49
|
+
eventManager: EventManager;
|
|
50
|
+
}) {
|
|
51
|
+
return {
|
|
52
|
+
// Run a task within the fully initialized ecosystem
|
|
53
|
+
runTask: <I, O extends Promise<any>, D extends DependencyMapType>(
|
|
54
|
+
task: ITask<I, O, D>,
|
|
55
|
+
input: I
|
|
56
|
+
): Promise<Awaited<O> | undefined> =>
|
|
57
|
+
deps.taskRunner.run(task, input) as any,
|
|
58
|
+
// Access a resource value by id (string or symbol)
|
|
59
|
+
getResource: (id: string | symbol) => deps.store.resources.get(id)?.value,
|
|
60
|
+
// Expose internals when needed in tests (not recommended for app usage)
|
|
61
|
+
taskRunner: deps.taskRunner,
|
|
62
|
+
store: deps.store,
|
|
63
|
+
logger: deps.logger,
|
|
64
|
+
eventManager: deps.eventManager,
|
|
65
|
+
};
|
|
66
|
+
}
|