@bluelibs/runner 3.4.2 → 4.0.1
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/AI.md +621 -0
- package/README.md +1024 -577
- package/dist/context.d.ts +4 -8
- package/dist/context.js +5 -12
- package/dist/context.js.map +1 -1
- package/dist/define.d.ts +9 -113
- package/dist/define.js +29 -358
- package/dist/define.js.map +1 -1
- package/dist/definers/defineEvent.d.ts +2 -0
- package/dist/definers/defineEvent.js +23 -0
- package/dist/definers/defineEvent.js.map +1 -0
- package/dist/definers/defineHook.d.ts +6 -0
- package/dist/definers/defineHook.js +24 -0
- package/dist/definers/defineHook.js.map +1 -0
- package/dist/definers/defineOverride.d.ts +14 -0
- package/dist/definers/defineOverride.js +13 -0
- package/dist/definers/defineOverride.js.map +1 -0
- package/dist/definers/defineResource.d.ts +2 -0
- package/dist/definers/defineResource.js +69 -0
- package/dist/definers/defineResource.js.map +1 -0
- package/dist/definers/defineResourceMiddleware.d.ts +2 -0
- package/dist/definers/defineResourceMiddleware.js +42 -0
- package/dist/definers/defineResourceMiddleware.js.map +1 -0
- package/dist/definers/defineTag.d.ts +12 -0
- package/dist/definers/defineTag.js +106 -0
- package/dist/definers/defineTag.js.map +1 -0
- package/dist/definers/defineTask.d.ts +15 -0
- package/dist/definers/defineTask.js +42 -0
- package/dist/definers/defineTask.js.map +1 -0
- package/dist/definers/defineTaskMiddleware.d.ts +2 -0
- package/dist/definers/defineTaskMiddleware.js +42 -0
- package/dist/definers/defineTaskMiddleware.js.map +1 -0
- package/dist/definers/tools.d.ts +45 -0
- package/dist/definers/tools.js +75 -0
- package/dist/definers/tools.js.map +1 -0
- package/dist/defs.d.ts +16 -424
- package/dist/defs.js +26 -38
- package/dist/defs.js.map +1 -1
- package/dist/errors.d.ts +23 -8
- package/dist/errors.js +50 -10
- package/dist/errors.js.map +1 -1
- package/dist/globals/globalEvents.d.ts +15 -39
- package/dist/globals/globalEvents.js +20 -81
- package/dist/globals/globalEvents.js.map +1 -1
- package/dist/globals/globalMiddleware.d.ts +24 -17
- package/dist/globals/globalMiddleware.js +12 -4
- package/dist/globals/globalMiddleware.js.map +1 -1
- package/dist/globals/globalResources.d.ts +13 -28
- package/dist/globals/globalResources.js +15 -7
- package/dist/globals/globalResources.js.map +1 -1
- package/dist/globals/globalTags.d.ts +9 -0
- package/dist/globals/globalTags.js +23 -0
- package/dist/globals/globalTags.js.map +1 -0
- package/dist/globals/middleware/cache.middleware.d.ts +10 -17
- package/dist/globals/middleware/cache.middleware.js +4 -16
- package/dist/globals/middleware/cache.middleware.js.map +1 -1
- package/dist/globals/middleware/requireContext.middleware.d.ts +1 -1
- package/dist/globals/middleware/requireContext.middleware.js +5 -14
- package/dist/globals/middleware/requireContext.middleware.js.map +1 -1
- package/dist/globals/middleware/retry.middleware.d.ts +2 -1
- package/dist/globals/middleware/retry.middleware.js +32 -5
- package/dist/globals/middleware/retry.middleware.js.map +1 -1
- package/dist/globals/middleware/timeout.middleware.d.ts +2 -1
- package/dist/globals/middleware/timeout.middleware.js +31 -5
- package/dist/globals/middleware/timeout.middleware.js.map +1 -1
- package/dist/globals/resources/debug/debug.resource.d.ts +7 -0
- package/dist/globals/resources/debug/debug.resource.js +29 -0
- package/dist/globals/resources/debug/debug.resource.js.map +1 -0
- package/dist/globals/resources/debug/debug.tag.d.ts +2 -0
- package/dist/globals/resources/debug/debug.tag.js +12 -0
- package/dist/globals/resources/debug/debug.tag.js.map +1 -0
- package/dist/globals/resources/debug/debugConfig.resource.d.ts +22 -0
- package/dist/globals/resources/debug/debugConfig.resource.js +20 -0
- package/dist/globals/resources/debug/debugConfig.resource.js.map +1 -0
- package/dist/globals/resources/debug/executionTracker.middleware.d.ts +50 -0
- package/dist/globals/resources/debug/executionTracker.middleware.js +87 -0
- package/dist/globals/resources/debug/executionTracker.middleware.js.map +1 -0
- package/dist/globals/resources/debug/globalEvent.hook.d.ts +27 -0
- package/dist/globals/resources/debug/globalEvent.hook.js +38 -0
- package/dist/globals/resources/debug/globalEvent.hook.js.map +1 -0
- package/dist/globals/resources/debug/hook.hook.d.ts +25 -0
- package/dist/globals/resources/debug/hook.hook.js +42 -0
- package/dist/globals/resources/debug/hook.hook.js.map +1 -0
- package/dist/globals/resources/debug/index.d.ts +6 -0
- package/dist/{types → globals/resources/debug}/index.js +6 -11
- package/dist/globals/resources/debug/index.js.map +1 -0
- package/dist/globals/resources/debug/middleware.hook.d.ts +25 -0
- package/dist/globals/resources/debug/middleware.hook.js +71 -0
- package/dist/globals/resources/debug/middleware.hook.js.map +1 -0
- package/dist/globals/resources/debug/types.d.ts +25 -0
- package/dist/globals/resources/debug/types.js +65 -0
- package/dist/globals/resources/debug/types.js.map +1 -0
- package/dist/globals/resources/debug/utils.d.ts +2 -0
- package/dist/globals/resources/debug/utils.js +9 -0
- package/dist/globals/resources/debug/utils.js.map +1 -0
- package/dist/globals/resources/queue.resource.d.ts +3 -3
- package/dist/globals/resources/queue.resource.js.map +1 -1
- package/dist/globals/types.d.ts +1 -0
- package/dist/{task.types.js → globals/types.js} +2 -7
- package/dist/globals/types.js.map +1 -0
- package/dist/index.d.ts +58 -85
- package/dist/index.js +23 -10
- package/dist/index.js.map +1 -1
- package/dist/models/DependencyProcessor.d.ts +8 -6
- package/dist/models/DependencyProcessor.js +116 -33
- package/dist/models/DependencyProcessor.js.map +1 -1
- package/dist/models/EventManager.d.ts +127 -7
- package/dist/models/EventManager.js +251 -78
- package/dist/models/EventManager.js.map +1 -1
- package/dist/models/LogPrinter.d.ts +55 -0
- package/dist/models/LogPrinter.js +196 -0
- package/dist/models/LogPrinter.js.map +1 -0
- package/dist/models/Logger.d.ts +47 -27
- package/dist/models/Logger.js +133 -155
- package/dist/models/Logger.js.map +1 -1
- package/dist/models/MiddlewareManager.d.ts +86 -0
- package/dist/models/MiddlewareManager.js +409 -0
- package/dist/models/MiddlewareManager.js.map +1 -0
- package/dist/models/OverrideManager.d.ts +3 -3
- package/dist/models/OverrideManager.js +22 -7
- package/dist/models/OverrideManager.js.map +1 -1
- package/dist/models/ResourceInitializer.d.ts +4 -3
- package/dist/models/ResourceInitializer.js +12 -68
- package/dist/models/ResourceInitializer.js.map +1 -1
- package/dist/models/RunResult.d.ts +35 -0
- package/dist/models/RunResult.js +68 -0
- package/dist/models/RunResult.js.map +1 -0
- package/dist/models/Store.d.ts +30 -17
- package/dist/models/Store.js +87 -25
- package/dist/models/Store.js.map +1 -1
- package/dist/models/StoreRegistry.d.ts +34 -19
- package/dist/models/StoreRegistry.js +248 -100
- package/dist/models/StoreRegistry.js.map +1 -1
- package/dist/models/StoreValidator.d.ts +5 -7
- package/dist/models/StoreValidator.js +50 -17
- package/dist/models/StoreValidator.js.map +1 -1
- package/dist/models/TaskRunner.d.ts +3 -2
- package/dist/models/TaskRunner.js +6 -103
- package/dist/models/TaskRunner.js.map +1 -1
- package/dist/models/UnhandledError.d.ts +11 -0
- package/dist/models/UnhandledError.js +30 -0
- package/dist/models/UnhandledError.js.map +1 -0
- package/dist/models/index.d.ts +3 -0
- package/dist/models/index.js +3 -0
- package/dist/models/index.js.map +1 -1
- package/dist/{tools → models/utils}/findCircularDependencies.js +8 -16
- package/dist/models/utils/findCircularDependencies.js.map +1 -0
- package/dist/models/utils/safeStringify.d.ts +3 -0
- package/dist/models/utils/safeStringify.js +45 -0
- package/dist/models/utils/safeStringify.js.map +1 -0
- package/dist/processHooks.d.ts +2 -0
- package/dist/processHooks.js +70 -0
- package/dist/processHooks.js.map +1 -0
- package/dist/run.d.ts +14 -27
- package/dist/run.js +100 -36
- package/dist/run.js.map +1 -1
- package/dist/testing.d.ts +5 -4
- package/dist/testing.js +3 -2
- package/dist/testing.js.map +1 -1
- package/dist/tools/getCallerFile.d.ts +0 -8
- package/dist/tools/getCallerFile.js +0 -51
- package/dist/tools/getCallerFile.js.map +1 -1
- package/dist/types/contracts.d.ts +55 -0
- package/dist/types/contracts.js +4 -0
- package/dist/types/contracts.js.map +1 -0
- package/dist/types/event.d.ts +26 -7
- package/dist/types/event.js +1 -1
- package/dist/types/event.js.map +1 -1
- package/dist/types/hook.d.ts +21 -0
- package/dist/{models/StoreTypes.js → types/hook.js} +2 -1
- package/dist/types/hook.js.map +1 -0
- package/dist/types/meta.d.ts +6 -1
- package/dist/types/meta.js +4 -2
- package/dist/types/meta.js.map +1 -1
- package/dist/types/resource.d.ts +40 -52
- package/dist/types/resource.js +1 -0
- package/dist/types/resource.js.map +1 -1
- package/dist/types/resourceMiddleware.d.ts +47 -0
- package/dist/{middleware.types.js → types/resourceMiddleware.js} +1 -1
- package/dist/types/resourceMiddleware.js.map +1 -0
- package/dist/types/runner.d.ts +37 -0
- package/dist/types/{base.js → runner.js} +1 -1
- package/dist/types/runner.js.map +1 -0
- package/dist/types/storeTypes.d.ts +40 -0
- package/dist/types/{metadata.js → storeTypes.js} +1 -1
- package/dist/types/storeTypes.js.map +1 -0
- package/dist/types/symbols.d.ts +10 -21
- package/dist/types/symbols.js +17 -22
- package/dist/types/symbols.js.map +1 -1
- package/dist/types/tag.d.ts +46 -0
- package/dist/{resource.types.js → types/tag.js} +2 -1
- package/dist/types/tag.js.map +1 -0
- package/dist/types/task.d.ts +28 -52
- package/dist/types/task.js +1 -0
- package/dist/types/task.js.map +1 -1
- package/dist/types/taskMiddleware.d.ts +48 -0
- package/dist/{event.types.js → types/taskMiddleware.js} +1 -1
- package/dist/types/taskMiddleware.js.map +1 -0
- package/dist/types/utilities.d.ts +105 -6
- package/dist/types/utilities.js +16 -2
- package/dist/types/utilities.js.map +1 -1
- package/package.json +14 -5
- package/dist/cli/extract-docs.d.ts +0 -2
- package/dist/cli/extract-docs.js +0 -88
- package/dist/cli/extract-docs.js.map +0 -1
- package/dist/common.types.d.ts +0 -20
- package/dist/common.types.js +0 -4
- package/dist/common.types.js.map +0 -1
- package/dist/defs/core.d.ts +0 -144
- package/dist/defs/core.js +0 -6
- package/dist/defs/core.js.map +0 -1
- package/dist/defs/symbols.d.ts +0 -42
- package/dist/defs/symbols.js +0 -45
- package/dist/defs/symbols.js.map +0 -1
- package/dist/defs/tags.d.ts +0 -70
- package/dist/defs/tags.js +0 -6
- package/dist/defs/tags.js.map +0 -1
- package/dist/defs.returnTag.d.ts +0 -36
- package/dist/defs.returnTag.js +0 -4
- package/dist/defs.returnTag.js.map +0 -1
- package/dist/docs/introspect.d.ts +0 -7
- package/dist/docs/introspect.js +0 -199
- package/dist/docs/introspect.js.map +0 -1
- package/dist/docs/markdown.d.ts +0 -2
- package/dist/docs/markdown.js +0 -148
- package/dist/docs/markdown.js.map +0 -1
- package/dist/docs/model.d.ts +0 -62
- package/dist/docs/model.js +0 -33
- package/dist/docs/model.js.map +0 -1
- package/dist/event.types.d.ts +0 -18
- package/dist/event.types.js.map +0 -1
- package/dist/examples/express-mongo/index.d.ts +0 -0
- package/dist/examples/express-mongo/index.js +0 -3
- package/dist/examples/express-mongo/index.js.map +0 -1
- package/dist/examples/registrator-example.d.ts +0 -122
- package/dist/examples/registrator-example.js +0 -147
- package/dist/examples/registrator-example.js.map +0 -1
- package/dist/express/docsRouter.d.ts +0 -12
- package/dist/express/docsRouter.js +0 -54
- package/dist/express/docsRouter.js.map +0 -1
- package/dist/globalEvents.d.ts +0 -40
- package/dist/globalEvents.js +0 -94
- package/dist/globalEvents.js.map +0 -1
- package/dist/globalResources.d.ts +0 -10
- package/dist/globalResources.js +0 -43
- package/dist/globalResources.js.map +0 -1
- package/dist/middleware.types.d.ts +0 -40
- package/dist/middleware.types.js.map +0 -1
- package/dist/models/StoreConstants.d.ts +0 -14
- package/dist/models/StoreConstants.js +0 -19
- package/dist/models/StoreConstants.js.map +0 -1
- package/dist/models/StoreTypes.d.ts +0 -21
- package/dist/models/StoreTypes.js.map +0 -1
- package/dist/models/VarStore.d.ts +0 -17
- package/dist/models/VarStore.js +0 -60
- package/dist/models/VarStore.js.map +0 -1
- package/dist/resource.types.d.ts +0 -31
- package/dist/resource.types.js.map +0 -1
- package/dist/symbols.d.ts +0 -24
- package/dist/symbols.js +0 -29
- package/dist/symbols.js.map +0 -1
- package/dist/t1.d.ts +0 -1
- package/dist/t1.js +0 -13
- package/dist/t1.js.map +0 -1
- package/dist/task.types.d.ts +0 -55
- package/dist/task.types.js.map +0 -1
- package/dist/tools/findCircularDependencies.js.map +0 -1
- package/dist/tools/registratorId.d.ts +0 -4
- package/dist/tools/registratorId.js +0 -40
- package/dist/tools/registratorId.js.map +0 -1
- package/dist/tools/simpleHash.d.ts +0 -9
- package/dist/tools/simpleHash.js +0 -34
- package/dist/tools/simpleHash.js.map +0 -1
- package/dist/types/base-interfaces.d.ts +0 -18
- package/dist/types/base-interfaces.js +0 -6
- package/dist/types/base-interfaces.js.map +0 -1
- package/dist/types/base.d.ts +0 -13
- package/dist/types/base.js.map +0 -1
- package/dist/types/dependencies.d.ts +0 -51
- package/dist/types/dependencies.js +0 -3
- package/dist/types/dependencies.js.map +0 -1
- package/dist/types/dependency-core.d.ts +0 -14
- package/dist/types/dependency-core.js +0 -5
- package/dist/types/dependency-core.js.map +0 -1
- package/dist/types/events.d.ts +0 -52
- package/dist/types/events.js +0 -6
- package/dist/types/events.js.map +0 -1
- package/dist/types/hooks.d.ts +0 -16
- package/dist/types/hooks.js +0 -5
- package/dist/types/hooks.js.map +0 -1
- package/dist/types/index.d.ts +0 -8
- package/dist/types/index.js.map +0 -1
- package/dist/types/metadata.d.ts +0 -75
- package/dist/types/metadata.js.map +0 -1
- package/dist/types/middleware.d.ts +0 -63
- package/dist/types/middleware.js +0 -3
- package/dist/types/middleware.js.map +0 -1
- package/dist/types/registerable.d.ts +0 -10
- package/dist/types/registerable.js +0 -5
- package/dist/types/registerable.js.map +0 -1
- package/dist/types/resources.d.ts +0 -44
- package/dist/types/resources.js +0 -5
- package/dist/types/resources.js.map +0 -1
- package/dist/types/tasks.d.ts +0 -41
- package/dist/types/tasks.js +0 -5
- package/dist/types/tasks.js.map +0 -1
- package/src/__tests__/benchmark/benchmark.test.ts +0 -148
- package/src/__tests__/benchmark/task-benchmark.test.ts +0 -132
- package/src/__tests__/context.test.ts +0 -91
- package/src/__tests__/createTestResource.test.ts +0 -139
- package/src/__tests__/errors.test.ts +0 -341
- package/src/__tests__/globalEvents.test.ts +0 -542
- package/src/__tests__/globals/cache.middleware.test.ts +0 -772
- package/src/__tests__/globals/queue.resource.test.ts +0 -141
- package/src/__tests__/globals/requireContext.middleware.test.ts +0 -98
- package/src/__tests__/globals/retry.middleware.test.ts +0 -157
- package/src/__tests__/globals/timeout.middleware.test.ts +0 -88
- package/src/__tests__/index.helper.test.ts +0 -55
- package/src/__tests__/models/EventManager.test.ts +0 -585
- package/src/__tests__/models/Logger.test.ts +0 -519
- package/src/__tests__/models/Queue.test.ts +0 -189
- package/src/__tests__/models/ResourceInitializer.test.ts +0 -148
- package/src/__tests__/models/Semaphore.test.ts +0 -713
- package/src/__tests__/models/Store.test.ts +0 -227
- package/src/__tests__/models/TaskRunner.test.ts +0 -221
- package/src/__tests__/override.test.ts +0 -104
- package/src/__tests__/recursion/README.md +0 -3
- package/src/__tests__/recursion/a.resource.ts +0 -25
- package/src/__tests__/recursion/b.resource.ts +0 -33
- package/src/__tests__/recursion/c.resource.ts +0 -18
- package/src/__tests__/run.anonymous.test.ts +0 -706
- package/src/__tests__/run.dynamic-register-and-dependencies.test.ts +0 -1185
- package/src/__tests__/run.middleware.test.ts +0 -549
- package/src/__tests__/run.overrides.test.ts +0 -424
- package/src/__tests__/run.test.ts +0 -1040
- package/src/__tests__/setOutput.test.ts +0 -244
- package/src/__tests__/tags.test.ts +0 -396
- package/src/__tests__/tools/findCircularDependencies.test.ts +0 -217
- package/src/__tests__/tools/getCallerFile.test.ts +0 -179
- package/src/__tests__/typesafety.test.ts +0 -423
- package/src/__tests__/validation-edge-cases.test.ts +0 -111
- package/src/__tests__/validation-interface.test.ts +0 -428
- package/src/context.ts +0 -86
- package/src/define.ts +0 -480
- package/src/defs.returnTag.ts +0 -91
- package/src/defs.ts +0 -596
- package/src/errors.ts +0 -105
- package/src/globals/globalEvents.ts +0 -125
- package/src/globals/globalMiddleware.ts +0 -16
- package/src/globals/globalResources.ts +0 -53
- package/src/globals/middleware/cache.middleware.ts +0 -115
- package/src/globals/middleware/requireContext.middleware.ts +0 -36
- package/src/globals/middleware/retry.middleware.ts +0 -56
- package/src/globals/middleware/timeout.middleware.ts +0 -46
- package/src/globals/resources/queue.resource.ts +0 -34
- package/src/index.ts +0 -39
- package/src/models/DependencyProcessor.ts +0 -257
- package/src/models/EventManager.ts +0 -210
- package/src/models/Logger.ts +0 -282
- package/src/models/OverrideManager.ts +0 -79
- package/src/models/Queue.ts +0 -66
- package/src/models/ResourceInitializer.ts +0 -165
- package/src/models/Semaphore.ts +0 -208
- package/src/models/Store.ts +0 -193
- package/src/models/StoreConstants.ts +0 -18
- package/src/models/StoreRegistry.ts +0 -253
- package/src/models/StoreTypes.ts +0 -47
- package/src/models/StoreValidator.ts +0 -43
- package/src/models/TaskRunner.ts +0 -203
- package/src/models/index.ts +0 -8
- package/src/run.ts +0 -116
- package/src/testing.ts +0 -66
- package/src/tools/findCircularDependencies.ts +0 -69
- package/src/tools/getCallerFile.ts +0 -96
- /package/dist/{tools → models/utils}/findCircularDependencies.d.ts +0 -0
package/src/models/Logger.ts
DELETED
|
@@ -1,282 +0,0 @@
|
|
|
1
|
-
import { globalEvents } from "../globals/globalEvents";
|
|
2
|
-
import { EventManager } from "./EventManager";
|
|
3
|
-
|
|
4
|
-
export type LogLevels =
|
|
5
|
-
| "trace"
|
|
6
|
-
| "debug"
|
|
7
|
-
| "info"
|
|
8
|
-
| "warn"
|
|
9
|
-
| "error"
|
|
10
|
-
| "critical";
|
|
11
|
-
|
|
12
|
-
export interface LogInfo {
|
|
13
|
-
source?: string | symbol;
|
|
14
|
-
error?: Error;
|
|
15
|
-
data?: Record<string, any>;
|
|
16
|
-
[key: string]: any;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export interface ILog {
|
|
20
|
-
level: string;
|
|
21
|
-
source?: string;
|
|
22
|
-
message: any;
|
|
23
|
-
timestamp: Date;
|
|
24
|
-
error?: {
|
|
25
|
-
name: string;
|
|
26
|
-
message: string;
|
|
27
|
-
stack?: string;
|
|
28
|
-
};
|
|
29
|
-
data?: Record<string, any>;
|
|
30
|
-
context?: Record<string, any>;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
export class Logger {
|
|
34
|
-
printThreshold: LogLevels | null = null;
|
|
35
|
-
private boundContext: Record<string, any> = {};
|
|
36
|
-
|
|
37
|
-
public static Severity = {
|
|
38
|
-
trace: 0,
|
|
39
|
-
debug: 1,
|
|
40
|
-
info: 2,
|
|
41
|
-
warn: 3,
|
|
42
|
-
error: 4,
|
|
43
|
-
critical: 5,
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
constructor(
|
|
47
|
-
protected eventManager: EventManager,
|
|
48
|
-
boundContext: Record<string, any> = {}
|
|
49
|
-
) {
|
|
50
|
-
this.boundContext = { ...boundContext };
|
|
51
|
-
this.printThreshold = this.getDefaultPrintThreshold();
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* Determines the default print threshold based on environment variables
|
|
56
|
-
*/
|
|
57
|
-
private getDefaultPrintThreshold(): LogLevels | null {
|
|
58
|
-
// Check if logging is explicitly disabled
|
|
59
|
-
const disableLogs = process.env.RUNNER_DISABLE_LOGS;
|
|
60
|
-
if (disableLogs === "true" || disableLogs === "1") {
|
|
61
|
-
return null;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
// Check for specific log level override
|
|
65
|
-
const logLevel = process.env.RUNNER_LOG_LEVEL;
|
|
66
|
-
if (logLevel && this.isValidLogLevel(logLevel)) {
|
|
67
|
-
return logLevel as LogLevels;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
// Default to 'info' level for better developer experience
|
|
71
|
-
return "info";
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
/**
|
|
75
|
-
* Validates if a string is a valid log level
|
|
76
|
-
*/
|
|
77
|
-
private isValidLogLevel(level: string): boolean {
|
|
78
|
-
return Object.keys(Logger.Severity).includes(level);
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
/**
|
|
82
|
-
* Creates a new logger instance with additional bound context
|
|
83
|
-
*/
|
|
84
|
-
public with(context: Record<string, any>): Logger {
|
|
85
|
-
return new Logger(this.eventManager, {
|
|
86
|
-
...this.boundContext,
|
|
87
|
-
...context,
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
private extractErrorInfo(error: Error): {
|
|
92
|
-
name: string;
|
|
93
|
-
message: string;
|
|
94
|
-
stack?: string;
|
|
95
|
-
} {
|
|
96
|
-
return {
|
|
97
|
-
name: error.name,
|
|
98
|
-
message: error.message,
|
|
99
|
-
stack: error.stack,
|
|
100
|
-
};
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
/**
|
|
104
|
-
* Core logging method with structured LogInfo
|
|
105
|
-
*/
|
|
106
|
-
public log(level: LogLevels, message: any, logInfo: LogInfo = {}): void {
|
|
107
|
-
const { source, error, data, ...context } = logInfo;
|
|
108
|
-
|
|
109
|
-
const log: ILog = {
|
|
110
|
-
level,
|
|
111
|
-
message,
|
|
112
|
-
source: source || this.boundContext.source,
|
|
113
|
-
timestamp: new Date(),
|
|
114
|
-
error: error ? this.extractErrorInfo(error) : undefined,
|
|
115
|
-
data: data || undefined,
|
|
116
|
-
context: { ...this.boundContext, ...context },
|
|
117
|
-
};
|
|
118
|
-
|
|
119
|
-
if (
|
|
120
|
-
this.printThreshold &&
|
|
121
|
-
Logger.Severity[level] >= Logger.Severity[this.printThreshold]
|
|
122
|
-
) {
|
|
123
|
-
this.print(log);
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
if (this.eventManager.hasListeners(globalEvents.log)) {
|
|
127
|
-
setImmediate(() => {
|
|
128
|
-
this.eventManager
|
|
129
|
-
.emit(
|
|
130
|
-
globalEvents.log,
|
|
131
|
-
log,
|
|
132
|
-
source || this.boundContext.source || "unknown"
|
|
133
|
-
)
|
|
134
|
-
.catch((err) => {
|
|
135
|
-
console.error("Logger event emission failed:", err);
|
|
136
|
-
});
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
/**
|
|
142
|
-
* Will print logs after that, use `null` to disable autoprinting.
|
|
143
|
-
* @param level
|
|
144
|
-
*/
|
|
145
|
-
public setPrintThreshold(level: LogLevels | null) {
|
|
146
|
-
this.printThreshold = level;
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
public print(log: ILog) {
|
|
150
|
-
const { level, source, message, timestamp, error, data, context } = log;
|
|
151
|
-
|
|
152
|
-
// Color codes for different log levels
|
|
153
|
-
const colors = {
|
|
154
|
-
trace: "\x1b[90m", // bright black/gray
|
|
155
|
-
debug: "\x1b[36m", // cyan
|
|
156
|
-
info: "\x1b[32m", // green
|
|
157
|
-
warn: "\x1b[33m", // yellow
|
|
158
|
-
error: "\x1b[31m", // red
|
|
159
|
-
critical: "\x1b[35m", // magenta
|
|
160
|
-
reset: "\x1b[0m", // reset
|
|
161
|
-
bold: "\x1b[1m", // bold
|
|
162
|
-
dim: "\x1b[2m", // dim
|
|
163
|
-
blue: "\x1b[34m", // blue
|
|
164
|
-
red: "\x1b[31m", // red
|
|
165
|
-
cyan: "\x1b[36m", // cyan
|
|
166
|
-
};
|
|
167
|
-
|
|
168
|
-
const levelColor = colors[level as keyof typeof colors] || colors.info;
|
|
169
|
-
|
|
170
|
-
// Format timestamp
|
|
171
|
-
const time = timestamp.toLocaleTimeString("en-US", {
|
|
172
|
-
hour12: false,
|
|
173
|
-
hour: "2-digit",
|
|
174
|
-
minute: "2-digit",
|
|
175
|
-
second: "2-digit",
|
|
176
|
-
});
|
|
177
|
-
const ms = timestamp.getMilliseconds().toString().padStart(3, "0");
|
|
178
|
-
const formattedTime = `${colors.dim}${time}.${ms}${colors.reset}`;
|
|
179
|
-
|
|
180
|
-
// Format level with color and padding
|
|
181
|
-
const levelStr = `${levelColor}${colors.bold}${level
|
|
182
|
-
.toUpperCase()
|
|
183
|
-
.padEnd(8)}${colors.reset}`;
|
|
184
|
-
|
|
185
|
-
// Format source
|
|
186
|
-
const sourceStr = source ? `${colors.blue}[${source}]${colors.reset} ` : "";
|
|
187
|
-
|
|
188
|
-
// Format the main message
|
|
189
|
-
let messageStr: string;
|
|
190
|
-
if (typeof message === "object") {
|
|
191
|
-
messageStr = JSON.stringify(message, null, 2);
|
|
192
|
-
} else {
|
|
193
|
-
messageStr = String(message);
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
// Build the main log line
|
|
197
|
-
const mainLine = `${formattedTime} ${levelStr} ${sourceStr}${messageStr}`;
|
|
198
|
-
|
|
199
|
-
// Start building output lines
|
|
200
|
-
const lines = [mainLine];
|
|
201
|
-
|
|
202
|
-
// Add error information if present
|
|
203
|
-
if (error) {
|
|
204
|
-
lines.push(
|
|
205
|
-
`${colors.dim}├─ ${colors.red}Error: ${error.name}${colors.reset}`
|
|
206
|
-
);
|
|
207
|
-
lines.push(
|
|
208
|
-
`${colors.dim}├─ ${colors.red}${error.message}${colors.reset}`
|
|
209
|
-
);
|
|
210
|
-
if (error.stack) {
|
|
211
|
-
const stackLines = error.stack.split("\n").slice(1, 4); // Show first 3 stack frames
|
|
212
|
-
stackLines.forEach((line, index) => {
|
|
213
|
-
const prefix = index === stackLines.length - 1 ? "└─" : "├─";
|
|
214
|
-
lines.push(
|
|
215
|
-
`${colors.dim}${prefix} ${colors.red}${line.trim()}${colors.reset}`
|
|
216
|
-
);
|
|
217
|
-
});
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
// Add structured data if present
|
|
222
|
-
if (data && Object.keys(data).length > 0) {
|
|
223
|
-
lines.push(`${colors.dim}├─ ${colors.cyan}Data:${colors.reset}`);
|
|
224
|
-
const dataStr = JSON.stringify(data, null, 2);
|
|
225
|
-
const dataLines = dataStr.split("\n");
|
|
226
|
-
dataLines.forEach((line, index) => {
|
|
227
|
-
const prefix = index === dataLines.length - 1 ? "└─" : "├─";
|
|
228
|
-
lines.push(
|
|
229
|
-
`${colors.dim}${prefix} ${colors.cyan}${line}${colors.reset}`
|
|
230
|
-
);
|
|
231
|
-
});
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
// Add context if present (excluding common context we already show)
|
|
235
|
-
const filteredContext = context ? { ...context } : {};
|
|
236
|
-
delete filteredContext.source; // Already shown in source
|
|
237
|
-
|
|
238
|
-
if (filteredContext && Object.keys(filteredContext).length > 0) {
|
|
239
|
-
lines.push(`${colors.dim}└─ ${colors.blue}Context:${colors.reset}`);
|
|
240
|
-
const contextStr = JSON.stringify(filteredContext, null, 2);
|
|
241
|
-
const contextLines = contextStr.split("\n");
|
|
242
|
-
contextLines.forEach((line, index) => {
|
|
243
|
-
const prefix = index === contextLines.length - 1 ? " " : " ";
|
|
244
|
-
lines.push(
|
|
245
|
-
`${colors.dim}${prefix} ${colors.blue}${line}${colors.reset}`
|
|
246
|
-
);
|
|
247
|
-
});
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
// Output all lines
|
|
251
|
-
lines.forEach((line) => console.log(line));
|
|
252
|
-
|
|
253
|
-
// Add a subtle separator for multi-line logs
|
|
254
|
-
if (lines.length > 1) {
|
|
255
|
-
console.log(`${colors.dim}${colors.reset}`);
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
public info(message: any, logInfo: LogInfo = {}) {
|
|
260
|
-
this.log("info", message, logInfo);
|
|
261
|
-
}
|
|
262
|
-
|
|
263
|
-
public error(message: any, logInfo: LogInfo = {}) {
|
|
264
|
-
this.log("error", message, logInfo);
|
|
265
|
-
}
|
|
266
|
-
|
|
267
|
-
public warn(message: any, logInfo: LogInfo = {}) {
|
|
268
|
-
this.log("warn", message, logInfo);
|
|
269
|
-
}
|
|
270
|
-
|
|
271
|
-
public debug(message: any, logInfo: LogInfo = {}) {
|
|
272
|
-
this.log("debug", message, logInfo);
|
|
273
|
-
}
|
|
274
|
-
|
|
275
|
-
public trace(message: any, logInfo: LogInfo = {}) {
|
|
276
|
-
this.log("trace", message, logInfo);
|
|
277
|
-
}
|
|
278
|
-
|
|
279
|
-
public critical(message: any, logInfo: LogInfo = {}) {
|
|
280
|
-
this.log("critical", message, logInfo);
|
|
281
|
-
}
|
|
282
|
-
}
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
IResource,
|
|
3
|
-
IMiddleware,
|
|
4
|
-
ITask,
|
|
5
|
-
IResourceWithConfig,
|
|
6
|
-
RegisterableItems,
|
|
7
|
-
} from "../defs";
|
|
8
|
-
import * as utils from "../define";
|
|
9
|
-
import { DependencyNotFoundError } from "../errors";
|
|
10
|
-
import { StoreRegistry } from "./StoreRegistry";
|
|
11
|
-
|
|
12
|
-
export class OverrideManager {
|
|
13
|
-
public overrides: Map<
|
|
14
|
-
string | symbol,
|
|
15
|
-
IResource | IMiddleware | ITask | IResourceWithConfig
|
|
16
|
-
> = new Map();
|
|
17
|
-
|
|
18
|
-
public overrideRequests: Set<{
|
|
19
|
-
source: string | symbol;
|
|
20
|
-
override: RegisterableItems;
|
|
21
|
-
}> = new Set();
|
|
22
|
-
|
|
23
|
-
constructor(private readonly registry: StoreRegistry) {}
|
|
24
|
-
|
|
25
|
-
storeOverridesDeeply<C>(element: IResource<C, any, any>) {
|
|
26
|
-
element.overrides.forEach((override) => {
|
|
27
|
-
if (utils.isResource(override)) {
|
|
28
|
-
this.storeOverridesDeeply(override);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
let id: string | symbol;
|
|
32
|
-
if (utils.isResourceWithConfig(override)) {
|
|
33
|
-
this.storeOverridesDeeply(override.resource);
|
|
34
|
-
id = override.resource.id;
|
|
35
|
-
} else {
|
|
36
|
-
id = override.id;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
this.overrideRequests.add({ source: element.id, override });
|
|
40
|
-
this.overrides.set(id, override);
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
processOverrides() {
|
|
45
|
-
// If we are trying to use override on something that wasn't previously registered, we throw an error.
|
|
46
|
-
for (const override of this.overrides.values()) {
|
|
47
|
-
let hasAnyItem = false;
|
|
48
|
-
if (utils.isTask(override)) {
|
|
49
|
-
hasAnyItem = this.registry.tasks.has(override.id);
|
|
50
|
-
} else if (utils.isResource(override)) {
|
|
51
|
-
hasAnyItem = this.registry.resources.has(override.id);
|
|
52
|
-
} else if (utils.isMiddleware(override)) {
|
|
53
|
-
hasAnyItem = this.registry.middlewares.has(override.id);
|
|
54
|
-
} else if (utils.isResourceWithConfig(override)) {
|
|
55
|
-
hasAnyItem = this.registry.resources.has(override.resource.id);
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
if (!hasAnyItem) {
|
|
59
|
-
const id = utils.isResourceWithConfig(override)
|
|
60
|
-
? override.resource.id
|
|
61
|
-
: override.id;
|
|
62
|
-
|
|
63
|
-
throw new DependencyNotFoundError(id);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
for (const override of this.overrides.values()) {
|
|
68
|
-
if (utils.isTask(override)) {
|
|
69
|
-
this.registry.storeTask(override, false);
|
|
70
|
-
} else if (utils.isResource(override)) {
|
|
71
|
-
this.registry.storeResource(override, false);
|
|
72
|
-
} else if (utils.isMiddleware(override)) {
|
|
73
|
-
this.registry.storeMiddleware(override, false);
|
|
74
|
-
} else if (utils.isResourceWithConfig(override)) {
|
|
75
|
-
this.registry.storeResourceWithConfig(override, false);
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
}
|
package/src/models/Queue.ts
DELETED
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
import { AsyncLocalStorage } from "node:async_hooks";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Cooperative task queue.
|
|
5
|
-
* • Tasks run one‑after‑another (FIFO ordering).
|
|
6
|
-
* • Dead‑lock detection prevents nesting.
|
|
7
|
-
* • dispose() drains or cancels outstanding tasks, then rejects new ones.
|
|
8
|
-
*/
|
|
9
|
-
export class Queue {
|
|
10
|
-
private tail: Promise<unknown> = Promise.resolve();
|
|
11
|
-
private disposed = false;
|
|
12
|
-
private abortController = new AbortController();
|
|
13
|
-
|
|
14
|
-
// true while inside a queued task → helps detect "queue in queue"
|
|
15
|
-
private readonly executionContext = new AsyncLocalStorage<boolean>();
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Schedule an asynchronous task.
|
|
19
|
-
* @param task – receives an AbortSignal so it can cancel early if desired.
|
|
20
|
-
*/
|
|
21
|
-
public run<T>(task: (signal: AbortSignal) => Promise<T>): Promise<T> {
|
|
22
|
-
// 1. refuse new work if we've disposed
|
|
23
|
-
if (this.disposed) {
|
|
24
|
-
return Promise.reject(new Error("Queue has been disposed"));
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
// 2. detect dead‑locks (a queued task adding another queued task)
|
|
28
|
-
if (this.executionContext.getStore()) {
|
|
29
|
-
return Promise.reject(
|
|
30
|
-
new Error(
|
|
31
|
-
"Dead‑lock detected: a queued task attempted to queue another task"
|
|
32
|
-
)
|
|
33
|
-
);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
const { signal } = this.abortController;
|
|
37
|
-
|
|
38
|
-
// 3. chain task after the current tail
|
|
39
|
-
const result = this.tail.then(() =>
|
|
40
|
-
this.executionContext.run(true, () => task(signal))
|
|
41
|
-
);
|
|
42
|
-
|
|
43
|
-
// 4. preserve the chain even if the task rejects (swallow internally)
|
|
44
|
-
this.tail = result.catch(() => {});
|
|
45
|
-
|
|
46
|
-
return result;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* Disposes the queue.
|
|
51
|
-
* @param options.cancel – if true, broadcasts AbortSignal to running task.
|
|
52
|
-
* default: false (waits for tasks to finish).
|
|
53
|
-
*/
|
|
54
|
-
public async dispose(options: { cancel?: boolean } = {}): Promise<void> {
|
|
55
|
-
if (this.disposed) return;
|
|
56
|
-
|
|
57
|
-
this.disposed = true;
|
|
58
|
-
|
|
59
|
-
if (options.cancel) {
|
|
60
|
-
this.abortController.abort(); // notify cooperative tasks
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
// wait for everything already chained to settle
|
|
64
|
-
await this.tail.catch(() => {});
|
|
65
|
-
}
|
|
66
|
-
}
|
|
@@ -1,165 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
DependencyMapType,
|
|
3
|
-
DependencyValuesType,
|
|
4
|
-
ITask,
|
|
5
|
-
IResource,
|
|
6
|
-
} from "../defs";
|
|
7
|
-
import { EventManager } from "./EventManager";
|
|
8
|
-
import { globalEvents } from "../globals/globalEvents";
|
|
9
|
-
import { Store } from "./Store";
|
|
10
|
-
import { MiddlewareStoreElementType } from "./StoreTypes";
|
|
11
|
-
import { Logger } from "./Logger";
|
|
12
|
-
|
|
13
|
-
export class ResourceInitializer {
|
|
14
|
-
constructor(
|
|
15
|
-
protected readonly store: Store,
|
|
16
|
-
protected readonly eventManager: EventManager,
|
|
17
|
-
protected readonly logger: Logger
|
|
18
|
-
) {}
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Begins the execution of an task. These are registered tasks and all sanity checks have been performed at this stage to ensure consistency of the object.
|
|
22
|
-
* This function can throw only if any of the event listeners or run function throws
|
|
23
|
-
*/
|
|
24
|
-
public async initializeResource<
|
|
25
|
-
TConfig = null,
|
|
26
|
-
TValue extends Promise<any> = Promise<any>,
|
|
27
|
-
TDeps extends DependencyMapType = {},
|
|
28
|
-
TContext = any
|
|
29
|
-
>(
|
|
30
|
-
resource: IResource<TConfig, TValue, TDeps>,
|
|
31
|
-
config: TConfig,
|
|
32
|
-
dependencies: DependencyValuesType<TDeps>
|
|
33
|
-
): Promise<{ value: TValue; context: TContext }> {
|
|
34
|
-
const context = resource.context?.();
|
|
35
|
-
await this.eventManager.emit(
|
|
36
|
-
globalEvents.resources.beforeInit,
|
|
37
|
-
{
|
|
38
|
-
config,
|
|
39
|
-
resource,
|
|
40
|
-
},
|
|
41
|
-
resource.id
|
|
42
|
-
);
|
|
43
|
-
|
|
44
|
-
await this.eventManager.emit(
|
|
45
|
-
resource.events.beforeInit,
|
|
46
|
-
{ config },
|
|
47
|
-
resource.id
|
|
48
|
-
);
|
|
49
|
-
|
|
50
|
-
let error: any, value: TValue | undefined;
|
|
51
|
-
try {
|
|
52
|
-
if (resource.init) {
|
|
53
|
-
value = await this.initWithMiddleware(
|
|
54
|
-
resource,
|
|
55
|
-
config,
|
|
56
|
-
dependencies,
|
|
57
|
-
context
|
|
58
|
-
);
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
await this.eventManager.emit(
|
|
62
|
-
resource.events.afterInit,
|
|
63
|
-
{
|
|
64
|
-
config,
|
|
65
|
-
value: value as TValue,
|
|
66
|
-
},
|
|
67
|
-
resource.id
|
|
68
|
-
);
|
|
69
|
-
await this.eventManager.emit(
|
|
70
|
-
globalEvents.resources.afterInit,
|
|
71
|
-
{
|
|
72
|
-
config,
|
|
73
|
-
resource,
|
|
74
|
-
value: value as TValue,
|
|
75
|
-
},
|
|
76
|
-
resource.id
|
|
77
|
-
);
|
|
78
|
-
|
|
79
|
-
this.logger.debug(`Resource ${resource.id.toString()} initialized`, {
|
|
80
|
-
source: resource.id,
|
|
81
|
-
});
|
|
82
|
-
|
|
83
|
-
return { value: value as TValue, context };
|
|
84
|
-
} catch (e) {
|
|
85
|
-
error = e;
|
|
86
|
-
let isSuppressed = false;
|
|
87
|
-
function suppress() {
|
|
88
|
-
isSuppressed = true;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
// If you want to rewthrow the error, this should be done inside the onError event.
|
|
92
|
-
await this.eventManager.emit(
|
|
93
|
-
resource.events.onError,
|
|
94
|
-
{
|
|
95
|
-
error: error as Error,
|
|
96
|
-
suppress,
|
|
97
|
-
},
|
|
98
|
-
resource.id
|
|
99
|
-
);
|
|
100
|
-
await this.eventManager.emit(
|
|
101
|
-
globalEvents.resources.onError,
|
|
102
|
-
{
|
|
103
|
-
error: error as Error,
|
|
104
|
-
resource,
|
|
105
|
-
suppress,
|
|
106
|
-
},
|
|
107
|
-
resource.id
|
|
108
|
-
);
|
|
109
|
-
|
|
110
|
-
if (!isSuppressed) throw e;
|
|
111
|
-
|
|
112
|
-
return { value: undefined as unknown as TValue, context: {} as TContext };
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
public async initWithMiddleware<
|
|
117
|
-
C,
|
|
118
|
-
V extends Promise<any>,
|
|
119
|
-
D extends DependencyMapType,
|
|
120
|
-
TContext
|
|
121
|
-
>(
|
|
122
|
-
resource: IResource<C, V, D, TContext>,
|
|
123
|
-
config: C,
|
|
124
|
-
dependencies: DependencyValuesType<D>,
|
|
125
|
-
context: TContext
|
|
126
|
-
) {
|
|
127
|
-
let next = async (config: C): Promise<V | undefined> => {
|
|
128
|
-
if (resource.init) {
|
|
129
|
-
return resource.init.call(null, config, dependencies, context);
|
|
130
|
-
}
|
|
131
|
-
};
|
|
132
|
-
|
|
133
|
-
const existingMiddlewares = resource.middleware;
|
|
134
|
-
const createdMiddlewares = [
|
|
135
|
-
...this.store.getEverywhereMiddlewareForResources(
|
|
136
|
-
existingMiddlewares.map((x) => x.id)
|
|
137
|
-
),
|
|
138
|
-
...existingMiddlewares,
|
|
139
|
-
];
|
|
140
|
-
|
|
141
|
-
for (let i = createdMiddlewares.length - 1; i >= 0; i--) {
|
|
142
|
-
const middleware = createdMiddlewares[i];
|
|
143
|
-
const storeMiddleware = this.store.middlewares.get(
|
|
144
|
-
middleware.id
|
|
145
|
-
) as MiddlewareStoreElementType; // we know it exists because at this stage all sanity checks have been done.
|
|
146
|
-
|
|
147
|
-
const nextFunction = next;
|
|
148
|
-
next = async (config: C) => {
|
|
149
|
-
return storeMiddleware.middleware.run(
|
|
150
|
-
{
|
|
151
|
-
resource: {
|
|
152
|
-
definition: resource,
|
|
153
|
-
config,
|
|
154
|
-
},
|
|
155
|
-
next: nextFunction,
|
|
156
|
-
},
|
|
157
|
-
storeMiddleware.computedDependencies,
|
|
158
|
-
middleware.config
|
|
159
|
-
);
|
|
160
|
-
};
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
return next(config);
|
|
164
|
-
}
|
|
165
|
-
}
|