@bluelibs/runner 2.2.3 → 3.0.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 +1315 -942
- package/dist/common.types.d.ts +20 -0
- package/dist/common.types.js +4 -0
- package/dist/common.types.js.map +1 -0
- package/dist/context.d.ts +34 -0
- package/dist/context.js +58 -0
- package/dist/context.js.map +1 -0
- package/dist/define.d.ts +22 -3
- package/dist/define.js +52 -8
- package/dist/define.js.map +1 -1
- package/dist/defs.d.ts +52 -31
- package/dist/defs.js +10 -2
- package/dist/defs.js.map +1 -1
- package/dist/errors.js +1 -1
- package/dist/errors.js.map +1 -1
- package/dist/event.types.d.ts +18 -0
- package/dist/event.types.js +4 -0
- package/dist/event.types.js.map +1 -0
- package/dist/examples/registrator-example.d.ts +122 -0
- package/dist/examples/registrator-example.js +147 -0
- package/dist/examples/registrator-example.js.map +1 -0
- package/dist/globals/globalEvents.d.ts +41 -0
- package/dist/globals/globalEvents.js +94 -0
- package/dist/globals/globalEvents.js.map +1 -0
- package/dist/globals/globalMiddleware.d.ts +23 -0
- package/dist/globals/globalMiddleware.js +15 -0
- package/dist/globals/globalMiddleware.js.map +1 -0
- package/dist/globals/globalResources.d.ts +27 -0
- package/dist/globals/globalResources.js +47 -0
- package/dist/globals/globalResources.js.map +1 -0
- package/dist/globals/middleware/cache.middleware.d.ts +34 -0
- package/dist/globals/middleware/cache.middleware.js +85 -0
- package/dist/globals/middleware/cache.middleware.js.map +1 -0
- package/dist/globals/middleware/requireContext.middleware.d.ts +6 -0
- package/dist/globals/middleware/requireContext.middleware.js +25 -0
- package/dist/globals/middleware/requireContext.middleware.js.map +1 -0
- package/dist/globals/middleware/retry.middleware.d.ts +20 -0
- package/dist/globals/middleware/retry.middleware.js +34 -0
- package/dist/globals/middleware/retry.middleware.js.map +1 -0
- package/dist/globals/resources/queue.resource.d.ts +7 -0
- package/dist/globals/resources/queue.resource.js +31 -0
- package/dist/globals/resources/queue.resource.js.map +1 -0
- package/dist/index.d.ts +45 -9
- package/dist/index.js +14 -9
- package/dist/index.js.map +1 -1
- package/dist/middleware.types.d.ts +40 -0
- package/dist/middleware.types.js +4 -0
- package/dist/middleware.types.js.map +1 -0
- package/dist/models/DependencyProcessor.d.ts +2 -1
- package/dist/models/DependencyProcessor.js +11 -13
- package/dist/models/DependencyProcessor.js.map +1 -1
- package/dist/models/EventManager.d.ts +5 -0
- package/dist/models/EventManager.js +44 -2
- package/dist/models/EventManager.js.map +1 -1
- package/dist/models/Logger.d.ts +30 -12
- package/dist/models/Logger.js +130 -42
- package/dist/models/Logger.js.map +1 -1
- package/dist/models/OverrideManager.d.ts +13 -0
- package/dist/models/OverrideManager.js +70 -0
- package/dist/models/OverrideManager.js.map +1 -0
- package/dist/models/Queue.d.ts +25 -0
- package/dist/models/Queue.js +54 -0
- package/dist/models/Queue.js.map +1 -0
- package/dist/models/ResourceInitializer.d.ts +5 -2
- package/dist/models/ResourceInitializer.js +20 -14
- package/dist/models/ResourceInitializer.js.map +1 -1
- package/dist/models/Semaphore.d.ts +61 -0
- package/dist/models/Semaphore.js +166 -0
- package/dist/models/Semaphore.js.map +1 -0
- package/dist/models/Store.d.ts +17 -72
- package/dist/models/Store.js +71 -269
- package/dist/models/Store.js.map +1 -1
- package/dist/models/StoreConstants.d.ts +11 -0
- package/dist/models/StoreConstants.js +18 -0
- package/dist/models/StoreConstants.js.map +1 -0
- package/dist/models/StoreRegistry.d.ts +25 -0
- package/dist/models/StoreRegistry.js +171 -0
- package/dist/models/StoreRegistry.js.map +1 -0
- package/dist/models/StoreTypes.d.ts +21 -0
- package/dist/models/StoreTypes.js +3 -0
- package/dist/models/StoreTypes.js.map +1 -0
- package/dist/models/StoreValidator.d.ts +10 -0
- package/dist/models/StoreValidator.js +41 -0
- package/dist/models/StoreValidator.js.map +1 -0
- package/dist/models/TaskRunner.js +39 -24
- package/dist/models/TaskRunner.js.map +1 -1
- package/dist/models/VarStore.d.ts +17 -0
- package/dist/models/VarStore.js +60 -0
- package/dist/models/VarStore.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/resource.types.d.ts +31 -0
- package/dist/resource.types.js +3 -0
- package/dist/resource.types.js.map +1 -0
- package/dist/run.d.ts +4 -1
- package/dist/run.js +6 -3
- package/dist/run.js.map +1 -1
- package/dist/symbols.d.ts +24 -0
- package/dist/symbols.js +29 -0
- package/dist/symbols.js.map +1 -0
- package/dist/task.types.d.ts +55 -0
- package/dist/task.types.js +23 -0
- package/dist/task.types.js.map +1 -0
- package/dist/tools/registratorId.d.ts +4 -0
- package/dist/tools/registratorId.js +40 -0
- package/dist/tools/registratorId.js.map +1 -0
- package/dist/tools/simpleHash.d.ts +9 -0
- package/dist/tools/simpleHash.js +34 -0
- package/dist/tools/simpleHash.js.map +1 -0
- package/dist/types/base-interfaces.d.ts +18 -0
- package/dist/types/base-interfaces.js +6 -0
- package/dist/types/base-interfaces.js.map +1 -0
- package/dist/types/base.d.ts +13 -0
- package/dist/types/base.js +3 -0
- package/dist/types/base.js.map +1 -0
- package/dist/types/dependencies.d.ts +22 -0
- package/dist/types/dependencies.js +3 -0
- package/dist/types/dependencies.js.map +1 -0
- package/dist/types/dependency-core.d.ts +14 -0
- package/dist/types/dependency-core.js +5 -0
- package/dist/types/dependency-core.js.map +1 -0
- package/dist/types/events.d.ts +52 -0
- package/dist/types/events.js +6 -0
- package/dist/types/events.js.map +1 -0
- package/dist/types/hooks.d.ts +16 -0
- package/dist/types/hooks.js +5 -0
- package/dist/types/hooks.js.map +1 -0
- package/dist/types/index.d.ts +14 -0
- package/dist/types/index.js +27 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/meta.d.ts +13 -0
- package/dist/types/meta.js +5 -0
- package/dist/types/meta.js.map +1 -0
- package/dist/types/middleware.d.ts +38 -0
- package/dist/types/middleware.js +6 -0
- package/dist/types/middleware.js.map +1 -0
- package/dist/types/registerable.d.ts +10 -0
- package/dist/types/registerable.js +5 -0
- package/dist/types/registerable.js.map +1 -0
- package/dist/types/resources.d.ts +44 -0
- package/dist/types/resources.js +5 -0
- package/dist/types/resources.js.map +1 -0
- package/dist/types/symbols.d.ts +24 -0
- package/dist/types/symbols.js +30 -0
- package/dist/types/symbols.js.map +1 -0
- package/dist/types/tasks.d.ts +41 -0
- package/dist/types/tasks.js +5 -0
- package/dist/types/tasks.js.map +1 -0
- package/dist/types/utilities.d.ts +7 -0
- package/dist/types/utilities.js +5 -0
- package/dist/types/utilities.js.map +1 -0
- package/package.json +10 -6
- package/src/__tests__/benchmark/benchmark.test.ts +1 -1
- package/src/__tests__/context.test.ts +91 -0
- package/src/__tests__/errors.test.ts +8 -5
- package/src/__tests__/globalEvents.test.ts +1 -1
- package/src/__tests__/globals/cache.middleware.test.ts +772 -0
- package/src/__tests__/globals/queue.resource.test.ts +141 -0
- package/src/__tests__/globals/requireContext.middleware.test.ts +98 -0
- package/src/__tests__/globals/retry.middleware.test.ts +157 -0
- package/src/__tests__/index.helper.test.ts +55 -0
- package/src/__tests__/models/EventManager.test.ts +144 -0
- package/src/__tests__/models/Logger.test.ts +291 -34
- package/src/__tests__/models/Queue.test.ts +189 -0
- package/src/__tests__/models/ResourceInitializer.test.ts +8 -6
- package/src/__tests__/models/Semaphore.test.ts +713 -0
- package/src/__tests__/models/Store.test.ts +40 -0
- package/src/__tests__/models/TaskRunner.test.ts +86 -5
- package/src/__tests__/run.middleware.test.ts +166 -12
- package/src/__tests__/run.overrides.test.ts +13 -10
- package/src/__tests__/run.test.ts +363 -12
- package/src/__tests__/setOutput.test.ts +244 -0
- package/src/__tests__/tools/getCallerFile.test.ts +9 -9
- package/src/__tests__/typesafety.test.ts +54 -39
- package/src/context.ts +86 -0
- package/src/define.ts +84 -14
- package/src/defs.ts +91 -41
- package/src/errors.ts +3 -1
- package/src/{globalEvents.ts → globals/globalEvents.ts} +13 -12
- package/src/globals/globalMiddleware.ts +14 -0
- package/src/{globalResources.ts → globals/globalResources.ts} +14 -10
- package/src/globals/middleware/cache.middleware.ts +115 -0
- package/src/globals/middleware/requireContext.middleware.ts +36 -0
- package/src/globals/middleware/retry.middleware.ts +56 -0
- package/src/globals/resources/queue.resource.ts +34 -0
- package/src/index.ts +9 -5
- package/src/models/DependencyProcessor.ts +36 -40
- package/src/models/EventManager.ts +45 -5
- package/src/models/Logger.ts +170 -48
- package/src/models/OverrideManager.ts +84 -0
- package/src/models/Queue.ts +66 -0
- package/src/models/ResourceInitializer.ts +38 -20
- package/src/models/Semaphore.ts +208 -0
- package/src/models/Store.ts +94 -342
- package/src/models/StoreConstants.ts +17 -0
- package/src/models/StoreRegistry.ts +217 -0
- package/src/models/StoreTypes.ts +46 -0
- package/src/models/StoreValidator.ts +38 -0
- package/src/models/TaskRunner.ts +53 -40
- package/src/models/index.ts +3 -0
- package/src/run.ts +7 -4
- package/src/__tests__/index.ts +0 -15
- package/src/examples/express-mongo/index.ts +0 -1
package/dist/run.d.ts
CHANGED
|
@@ -21,4 +21,7 @@ export type RunnerState = {
|
|
|
21
21
|
events: Record<string, EventStoreElementType>;
|
|
22
22
|
middleware: Record<string, MiddlewareStoreElementType>;
|
|
23
23
|
};
|
|
24
|
-
export declare function run<C, V>(resource: IResource<C, V>, config?: C): Promise<
|
|
24
|
+
export declare function run<C, V>(resource: IResource<C, V>, config?: C): Promise<{
|
|
25
|
+
value: V;
|
|
26
|
+
dispose: () => Promise<void>;
|
|
27
|
+
}>;
|
package/dist/run.js
CHANGED
|
@@ -4,11 +4,11 @@ exports.run = run;
|
|
|
4
4
|
const TaskRunner_1 = require("./models/TaskRunner");
|
|
5
5
|
const DependencyProcessor_1 = require("./models/DependencyProcessor");
|
|
6
6
|
const EventManager_1 = require("./models/EventManager");
|
|
7
|
-
const globalEvents_1 = require("./globalEvents");
|
|
7
|
+
const globalEvents_1 = require("./globals/globalEvents");
|
|
8
8
|
const Store_1 = require("./models/Store");
|
|
9
9
|
const findCircularDependencies_1 = require("./tools/findCircularDependencies");
|
|
10
10
|
const errors_1 = require("./errors");
|
|
11
|
-
const globalResources_1 = require("./globalResources");
|
|
11
|
+
const globalResources_1 = require("./globals/globalResources");
|
|
12
12
|
const Logger_1 = require("./models/Logger");
|
|
13
13
|
async function run(resource, config) {
|
|
14
14
|
const eventManager = new EventManager_1.EventManager();
|
|
@@ -44,6 +44,9 @@ async function run(resource, config) {
|
|
|
44
44
|
await logger.debug("System initialized and operational.");
|
|
45
45
|
// disallow manipulation or attaching more
|
|
46
46
|
store.lock();
|
|
47
|
-
return
|
|
47
|
+
return {
|
|
48
|
+
value: store.root.value,
|
|
49
|
+
dispose: () => store.dispose(),
|
|
50
|
+
};
|
|
48
51
|
}
|
|
49
52
|
//# sourceMappingURL=run.js.map
|
package/dist/run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":";;AAsDA,
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":";;AAsDA,kBA0DC;AAhHD,oDAAiD;AAUjD,sEAAmE;AACnE,wDAAqD;AACrD,yDAAsD;AACtD,0CAAuC;AACvC,+EAA4E;AAC5E,qCAAkC;AAClC,+DAA4D;AAC5D,4CAAyC;AAqClC,KAAK,UAAU,GAAG,CACvB,QAAyB,EACzB,MAAU;IAEV,MAAM,YAAY,GAAG,IAAI,2BAAY,EAAE,CAAC;IAExC,2FAA2F;IAC3F,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,YAAY,CAAC,CAAC;IAExC,MAAM,KAAK,GAAG,IAAI,aAAK,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,IAAI,uBAAU,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;IAC/D,MAAM,SAAS,GAAG,IAAI,yCAAmB,CACvC,KAAK,EACL,YAAY,EACZ,UAAU,EACV,MAAM,CACP,CAAC;IAEF,+FAA+F;IAC/F,KAAK,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACxC,KAAK,CAAC,gBAAgB,CAAC,iCAAe,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5D,KAAK,CAAC,gBAAgB,CAAC,iCAAe,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAEpE,kGAAkG;IAClG,MAAM,cAAc,GAAG,KAAK,CAAC,iBAAiB,EAAE,CAAC;IACjD,MAAM,oBAAoB,GAAG,IAAA,mDAAwB,EAAC,cAAc,CAAC,CAAC;IACtE,IAAI,oBAAoB,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3C,MAAM,eAAM,CAAC,oBAAoB,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;IACjE,CAAC;IAED,sFAAsF;IACtF,MAAM,KAAK,CAAC,gBAAgB,EAAE,CAAC;IAE/B,iGAAiG;IACjG,MAAM,KAAK,CAAC,sBAAsB,EAAE,CAAC;IACrC,MAAM,SAAS,CAAC,eAAe,EAAE,CAAC;IAClC,MAAM,SAAS,CAAC,sBAAsB,EAAE,CAAC;IAEzC,6DAA6D;IAC7D,MAAM,MAAM,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;IAE1D,mFAAmF;IACnF,iCAAiC;IACjC,MAAM,YAAY,CAAC,IAAI,CAAC,2BAAY,CAAC,UAAU,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEpE,0CAA0C;IAC1C,MAAM,SAAS,CAAC,cAAc,EAAE,CAAC;IAEjC,MAAM,YAAY,CAAC,IAAI,CAAC,2BAAY,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;IACnE,MAAM,MAAM,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;IAE1D,0CAA0C;IAC1C,KAAK,CAAC,IAAI,EAAE,CAAC;IAEb,OAAO;QACL,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK;QACvB,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE;KAC/B,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export declare const symbolTask: unique symbol;
|
|
2
|
+
export declare const symbolResource: unique symbol;
|
|
3
|
+
export declare const symbolResourceWithConfig: unique symbol;
|
|
4
|
+
export declare const symbolEvent: unique symbol;
|
|
5
|
+
export declare const symbolMiddleware: unique symbol;
|
|
6
|
+
export declare const symbolMiddlewareConfigured: unique symbol;
|
|
7
|
+
export declare const symbolMiddlewareGlobal: unique symbol;
|
|
8
|
+
export declare const symbolMiddlewareEverywhereTasks: unique symbol;
|
|
9
|
+
export declare const symbolMiddlewareEverywhereResources: unique symbol;
|
|
10
|
+
export declare const symbolFilePath: unique symbol;
|
|
11
|
+
export declare const symbolDispose: unique symbol;
|
|
12
|
+
export declare const symbolStore: unique symbol;
|
|
13
|
+
export declare const symbols: {
|
|
14
|
+
task: symbol;
|
|
15
|
+
resource: symbol;
|
|
16
|
+
resourceWithConfig: symbol;
|
|
17
|
+
event: symbol;
|
|
18
|
+
middleware: symbol;
|
|
19
|
+
middlewareEverywhereTasks: symbol;
|
|
20
|
+
middlewareEverywhereResources: symbol;
|
|
21
|
+
filePath: symbol;
|
|
22
|
+
dispose: symbol;
|
|
23
|
+
store: symbol;
|
|
24
|
+
};
|
package/dist/symbols.js
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Symbol constants
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.symbols = exports.symbolStore = exports.symbolDispose = exports.symbolFilePath = exports.symbolMiddlewareEverywhereResources = exports.symbolMiddlewareEverywhereTasks = exports.symbolMiddlewareGlobal = exports.symbolMiddlewareConfigured = exports.symbolMiddleware = exports.symbolEvent = exports.symbolResourceWithConfig = exports.symbolResource = exports.symbolTask = void 0;
|
|
5
|
+
exports.symbolTask = Symbol("runner.task");
|
|
6
|
+
exports.symbolResource = Symbol("runner.resource");
|
|
7
|
+
exports.symbolResourceWithConfig = Symbol("runner.resourceWithConfig");
|
|
8
|
+
exports.symbolEvent = Symbol("runner.event");
|
|
9
|
+
exports.symbolMiddleware = Symbol("runner.middleware");
|
|
10
|
+
exports.symbolMiddlewareConfigured = Symbol("runner.middlewareConfigured");
|
|
11
|
+
exports.symbolMiddlewareGlobal = Symbol("runner.middlewareGlobal");
|
|
12
|
+
exports.symbolMiddlewareEverywhereTasks = Symbol("runner.middlewareGlobalTasks");
|
|
13
|
+
exports.symbolMiddlewareEverywhereResources = Symbol("runner.middlewareGlobalResources");
|
|
14
|
+
exports.symbolFilePath = Symbol("runner.filePath");
|
|
15
|
+
exports.symbolDispose = Symbol("runner.dispose");
|
|
16
|
+
exports.symbolStore = Symbol("runner.store");
|
|
17
|
+
exports.symbols = {
|
|
18
|
+
task: exports.symbolTask,
|
|
19
|
+
resource: exports.symbolResource,
|
|
20
|
+
resourceWithConfig: exports.symbolResourceWithConfig,
|
|
21
|
+
event: exports.symbolEvent,
|
|
22
|
+
middleware: exports.symbolMiddleware,
|
|
23
|
+
middlewareEverywhereTasks: exports.symbolMiddlewareEverywhereTasks,
|
|
24
|
+
middlewareEverywhereResources: exports.symbolMiddlewareEverywhereResources,
|
|
25
|
+
filePath: exports.symbolFilePath,
|
|
26
|
+
dispose: exports.symbolDispose,
|
|
27
|
+
store: exports.symbolStore,
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=symbols.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"symbols.js","sourceRoot":"","sources":["../src/symbols.ts"],"names":[],"mappings":";AAAA,mBAAmB;;;AAEN,QAAA,UAAU,GAAkB,MAAM,CAAC,aAAa,CAAC,CAAC;AAClD,QAAA,cAAc,GAAkB,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAC1D,QAAA,wBAAwB,GAAkB,MAAM,CAAC,2BAA2B,CAAC,CAAC;AAC9E,QAAA,WAAW,GAAkB,MAAM,CAAC,cAAc,CAAC,CAAC;AACpD,QAAA,gBAAgB,GAAkB,MAAM,CAAC,mBAAmB,CAAC,CAAC;AAC9D,QAAA,0BAA0B,GAAkB,MAAM,CAAC,6BAA6B,CAAC,CAAC;AAClF,QAAA,sBAAsB,GAAkB,MAAM,CAAC,yBAAyB,CAAC,CAAC;AAC1E,QAAA,+BAA+B,GAAkB,MAAM,CAAC,8BAA8B,CAAC,CAAC;AACxF,QAAA,mCAAmC,GAAkB,MAAM,CAAC,kCAAkC,CAAC,CAAC;AAChG,QAAA,cAAc,GAAkB,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAC1D,QAAA,aAAa,GAAkB,MAAM,CAAC,gBAAgB,CAAC,CAAC;AACxD,QAAA,WAAW,GAAkB,MAAM,CAAC,cAAc,CAAC,CAAC;AAEpD,QAAA,OAAO,GAAG;IACrB,IAAI,EAAE,kBAAU;IAChB,QAAQ,EAAE,sBAAc;IACxB,kBAAkB,EAAE,gCAAwB;IAC5C,KAAK,EAAE,mBAAW;IAClB,UAAU,EAAE,wBAAgB;IAC5B,yBAAyB,EAAE,uCAA+B;IAC1D,6BAA6B,EAAE,2CAAmC;IAClE,QAAQ,EAAE,sBAAc;IACxB,OAAO,EAAE,qBAAa;IACtB,KAAK,EAAE,mBAAW;CACnB,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { ITaskMeta, DependencyMapType, DependencyValuesType } from "./common.types";
|
|
2
|
+
import { MiddlewareAttachments } from "./middleware.types";
|
|
3
|
+
import { IEvent, IEventDefinition } from "./event.types";
|
|
4
|
+
export type DependencyMapType = Record<string, ITask<any, any, any, any> | IResource<any, any, any> | IEventDefinition<any>>;
|
|
5
|
+
export type ExtractTaskInput<T> = T extends ITask<infer I, any, infer D> ? I : never;
|
|
6
|
+
export type ExtractTaskOutput<T> = T extends ITask<any, infer O, infer D> ? O : never;
|
|
7
|
+
export type ExtractResourceValue<T> = T extends IResource<any, infer V, infer D> ? V : never;
|
|
8
|
+
export type ExtractEventParams<T> = T extends IEventDefinition<infer P> ? P : never;
|
|
9
|
+
export type TaskDependency<I, O> = (...args: I extends null | void ? [] : [I]) => O;
|
|
10
|
+
export type ResourceDependency<V> = V;
|
|
11
|
+
export type EventDependency<P> = (input: P) => Promise<void>;
|
|
12
|
+
export type DependencyValueType<T> = T extends ITask<any, any, any> ? TaskDependency<ExtractTaskInput<T>, ExtractTaskOutput<T>> : T extends IResource<any, any> ? ResourceDependency<ExtractResourceValue<T>> : T extends IEventDefinition<any> ? EventDependency<ExtractEventParams<T>> : never;
|
|
13
|
+
export type DependencyValuesType<T extends DependencyMapType> = {
|
|
14
|
+
[K in keyof T]: DependencyValueType<T[K]>;
|
|
15
|
+
};
|
|
16
|
+
export type RegisterableItems<T = any> = IResourceWithConfig<any> | IResource<void, any, any, any> | IResource<{
|
|
17
|
+
[K in any]?: any;
|
|
18
|
+
}, any, any, any> | ITaskDefinition<any, any, any, any> | IMiddlewareDefinition<any> | IEventDefinition<any>;
|
|
19
|
+
export interface ITaskDefinition<TInput = any, TOutput extends Promise<any> = any, TDependencies extends DependencyMapType = {}, TOn extends "*" | IEventDefinition<any> | undefined = undefined> {
|
|
20
|
+
id: string;
|
|
21
|
+
dependencies?: TDependencies | (() => TDependencies);
|
|
22
|
+
middleware?: MiddlewareAttachments[];
|
|
23
|
+
on?: TOn;
|
|
24
|
+
listenerOrder?: number;
|
|
25
|
+
meta?: ITaskMeta;
|
|
26
|
+
run: (input: TOn extends undefined ? TInput : IEvent<TOn extends "*" ? any : ExtractEventParams<TOn>>, dependencies: DependencyValuesType<TDependencies>) => TOutput;
|
|
27
|
+
}
|
|
28
|
+
export type BeforeRunEventPayload<TInput> = {
|
|
29
|
+
input: TInput;
|
|
30
|
+
};
|
|
31
|
+
export type AfterRunEventPayload<TInput, TOutput> = {
|
|
32
|
+
input: TInput;
|
|
33
|
+
output: TOutput extends Promise<infer U> ? U : TOutput;
|
|
34
|
+
setOutput(newOutput: TOutput extends Promise<infer U> ? U : TOutput): void;
|
|
35
|
+
};
|
|
36
|
+
export type OnErrorEventPayload = {
|
|
37
|
+
error: any;
|
|
38
|
+
suppress(): void;
|
|
39
|
+
};
|
|
40
|
+
export interface ITask<TInput = any, TOutput extends Promise<any> = any, TDependencies extends DependencyMapType = {}, TOn extends "*" | IEventDefinition<any> | undefined = undefined> extends ITaskDefinition<TInput, TOutput, TDependencies, TOn> {
|
|
41
|
+
dependencies: TDependencies | (() => TDependencies);
|
|
42
|
+
computedDependencies?: DependencyValuesType<TDependencies>;
|
|
43
|
+
middleware: MiddlewareAttachments[];
|
|
44
|
+
events: {
|
|
45
|
+
beforeRun: IEventDefinition<BeforeRunEventPayload<TInput>>;
|
|
46
|
+
afterRun: IEventDefinition<AfterRunEventPayload<TInput, TOutput>>;
|
|
47
|
+
onError: IEventDefinition<OnErrorEventPayload>;
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
export * from "./task.types";
|
|
51
|
+
export * from "./resource.types";
|
|
52
|
+
export * from "./event.types";
|
|
53
|
+
export * from "./middleware.types";
|
|
54
|
+
export * from "./symbols";
|
|
55
|
+
export * from "./common.types";
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./task.types"), exports);
|
|
18
|
+
__exportStar(require("./resource.types"), exports);
|
|
19
|
+
__exportStar(require("./event.types"), exports);
|
|
20
|
+
__exportStar(require("./middleware.types"), exports);
|
|
21
|
+
__exportStar(require("./symbols"), exports);
|
|
22
|
+
__exportStar(require("./common.types"), exports);
|
|
23
|
+
//# sourceMappingURL=task.types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task.types.js","sourceRoot":"","sources":["../src/task.types.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AA+FA,+CAA6B;AAC7B,mDAAiC;AACjC,gDAA8B;AAC9B,qDAAmC;AACnC,4CAA0B;AAC1B,iDAA+B"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.generateRegistratorId = generateRegistratorId;
|
|
4
|
+
// Counter to handle multiple registrators in the same file
|
|
5
|
+
let registratorCounter = 0;
|
|
6
|
+
/**
|
|
7
|
+
* Generate a registrator ID based on file path
|
|
8
|
+
*/
|
|
9
|
+
function generateRegistratorId(filePath, explicitId) {
|
|
10
|
+
// If explicit ID is provided, use it
|
|
11
|
+
if (explicitId) {
|
|
12
|
+
return explicitId;
|
|
13
|
+
}
|
|
14
|
+
// Use file path or fallback
|
|
15
|
+
if (!filePath) {
|
|
16
|
+
registratorCounter++;
|
|
17
|
+
return `registrator.unknown.${registratorCounter}`;
|
|
18
|
+
}
|
|
19
|
+
// Extract path from 'src' onwards
|
|
20
|
+
const srcIndex = filePath.lastIndexOf("/src/");
|
|
21
|
+
if (srcIndex !== -1) {
|
|
22
|
+
// Get everything after '/src/'
|
|
23
|
+
let relativePath = filePath.substring(srcIndex + 5);
|
|
24
|
+
// Remove file extension
|
|
25
|
+
relativePath = relativePath.replace(/\.(ts|js)$/, "");
|
|
26
|
+
// Replace path separators with dots
|
|
27
|
+
relativePath = relativePath.replace(/\//g, ".");
|
|
28
|
+
// Add counter to handle multiple registrators in same file
|
|
29
|
+
registratorCounter++;
|
|
30
|
+
return `registrator.${relativePath}.${registratorCounter}`;
|
|
31
|
+
}
|
|
32
|
+
// Fallback: use filename only
|
|
33
|
+
const filename = filePath
|
|
34
|
+
.split("/")
|
|
35
|
+
.pop()
|
|
36
|
+
?.replace(/\.(ts|js)$/, "") || "unknown";
|
|
37
|
+
registratorCounter++;
|
|
38
|
+
return `registrator.${filename}.${registratorCounter}`;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=registratorId.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registratorId.js","sourceRoot":"","sources":["../../src/tools/registratorId.ts"],"names":[],"mappings":";;AAMA,sDAyCC;AA/CD,2DAA2D;AAC3D,IAAI,kBAAkB,GAAG,CAAC,CAAC;AAE3B;;GAEG;AACH,SAAgB,qBAAqB,CACnC,QAA4B,EAC5B,UAAmB;IAEnB,qCAAqC;IACrC,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,4BAA4B;IAC5B,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,kBAAkB,EAAE,CAAC;QACrB,OAAO,uBAAuB,kBAAkB,EAAE,CAAC;IACrD,CAAC;IAED,kCAAkC;IAClC,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC/C,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;QACpB,+BAA+B;QAC/B,IAAI,YAAY,GAAG,QAAQ,CAAC,SAAS,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;QAEpD,wBAAwB;QACxB,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QAEtD,oCAAoC;QACpC,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAEhD,2DAA2D;QAC3D,kBAAkB,EAAE,CAAC;QACrB,OAAO,eAAe,YAAY,IAAI,kBAAkB,EAAE,CAAC;IAC7D,CAAC;IAED,8BAA8B;IAC9B,MAAM,QAAQ,GACZ,QAAQ;SACL,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,EAAE;QACN,EAAE,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC;IAE7C,kBAAkB,EAAE,CAAC;IACrB,OAAO,eAAe,QAAQ,IAAI,kBAAkB,EAAE,CAAC;AACzD,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Simple hash function that generates predictable hashes
|
|
3
|
+
* This is not cryptographically secure but suitable for generating IDs
|
|
4
|
+
*/
|
|
5
|
+
export declare function simpleHash(str: string): string;
|
|
6
|
+
/**
|
|
7
|
+
* Generate a registrator ID based on file path and items count
|
|
8
|
+
*/
|
|
9
|
+
export declare function generateRegistratorId(filePath: string | undefined, itemsCount: number): string;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.simpleHash = simpleHash;
|
|
4
|
+
exports.generateRegistratorId = generateRegistratorId;
|
|
5
|
+
/**
|
|
6
|
+
* Simple hash function that generates predictable hashes
|
|
7
|
+
* This is not cryptographically secure but suitable for generating IDs
|
|
8
|
+
*/
|
|
9
|
+
function simpleHash(str) {
|
|
10
|
+
let hash = 0;
|
|
11
|
+
if (str.length === 0)
|
|
12
|
+
return hash.toString();
|
|
13
|
+
for (let i = 0; i < str.length; i++) {
|
|
14
|
+
const char = str.charCodeAt(i);
|
|
15
|
+
hash = (hash << 5) - hash + char;
|
|
16
|
+
hash = hash & hash; // Convert to 32bit integer
|
|
17
|
+
}
|
|
18
|
+
// Convert to positive hex string
|
|
19
|
+
const hashStr = Math.abs(hash).toString(16);
|
|
20
|
+
return hashStr.padStart(8, "0");
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Generate a registrator ID based on file path and items count
|
|
24
|
+
*/
|
|
25
|
+
function generateRegistratorId(filePath, itemsCount) {
|
|
26
|
+
// Use file path or fallback
|
|
27
|
+
const path = filePath || "unknown";
|
|
28
|
+
// Create a deterministic string to hash
|
|
29
|
+
const hashInput = `registrator:${path}:${itemsCount}`;
|
|
30
|
+
// Generate hash
|
|
31
|
+
const hash = simpleHash(hashInput);
|
|
32
|
+
return `registrator.${hash}`;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=simpleHash.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"simpleHash.js","sourceRoot":"","sources":["../../src/tools/simpleHash.ts"],"names":[],"mappings":";;AAIA,gCAaC;AAKD,sDAcC;AApCD;;;GAGG;AACH,SAAgB,UAAU,CAAC,GAAW;IACpC,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IAE7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;QACjC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,2BAA2B;IACjD,CAAC;IAED,iCAAiC;IACjC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC5C,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,SAAgB,qBAAqB,CACnC,QAA4B,EAC5B,UAAkB;IAElB,4BAA4B;IAC5B,MAAM,IAAI,GAAG,QAAQ,IAAI,SAAS,CAAC;IAEnC,wCAAwC;IACxC,MAAM,SAAS,GAAG,eAAe,IAAI,IAAI,UAAU,EAAE,CAAC;IAEtD,gBAAgB;IAChB,MAAM,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;IAEnC,OAAO,eAAe,IAAI,EAAE,CAAC;AAC/B,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export interface ITask<TInput = any, TOutput extends Promise<any> = any, TDependencies = any, TOn = any> {
|
|
2
|
+
id: string;
|
|
3
|
+
}
|
|
4
|
+
export interface IResource<TConfig = void, TValue = any, TDependencies = any, TContext = any> {
|
|
5
|
+
id: string;
|
|
6
|
+
}
|
|
7
|
+
export interface IEventDefinition<TPayload = void> {
|
|
8
|
+
id: string;
|
|
9
|
+
}
|
|
10
|
+
export interface IMiddleware<TConfig = any, TDependencies = any> {
|
|
11
|
+
id: string;
|
|
12
|
+
}
|
|
13
|
+
export interface IResourceWithConfig<TConfig = any, TValue = any, TDependencies = any> {
|
|
14
|
+
id: string;
|
|
15
|
+
}
|
|
16
|
+
export interface IMiddlewareConfigured<TConfig = any, TDependencies = any> {
|
|
17
|
+
id: string;
|
|
18
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Layer 2: Core Abstractions - Forward Declarations
|
|
3
|
+
// These are forward declarations only to break circular dependencies
|
|
4
|
+
// They include minimal required properties for dependency system to work
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
//# sourceMappingURL=base-interfaces.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-interfaces.js","sourceRoot":"","sources":["../../src/types/base-interfaces.ts"],"names":[],"mappings":";AAAA,oDAAoD;AACpD,qEAAqE;AACrE,yEAAyE"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface IMeta {
|
|
2
|
+
title?: string;
|
|
3
|
+
description?: string;
|
|
4
|
+
tags?: string[];
|
|
5
|
+
}
|
|
6
|
+
export interface ITaskMeta extends IMeta {
|
|
7
|
+
}
|
|
8
|
+
export interface IResourceMeta extends IMeta {
|
|
9
|
+
}
|
|
10
|
+
export interface IEventMeta extends IMeta {
|
|
11
|
+
}
|
|
12
|
+
export interface IMiddlewareMeta extends IMeta {
|
|
13
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/types/base.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
interface ITask<TInput = any, TOutput extends Promise<any> = any, TDependencies extends DependencyMapType = {}, TOn extends "*" | IEventDefinition<any> | undefined = undefined> {
|
|
2
|
+
id: string;
|
|
3
|
+
}
|
|
4
|
+
interface IResource<TConfig = void, TValue = any, TDependencies extends DependencyMapType = any, TContext = any> {
|
|
5
|
+
id: string;
|
|
6
|
+
}
|
|
7
|
+
interface IEventDefinition<TPayload = void> {
|
|
8
|
+
id: string;
|
|
9
|
+
}
|
|
10
|
+
export type DependencyMapType = Record<string, ITask<any, any, any, any> | IResource<any, any, any> | IEventDefinition<any>>;
|
|
11
|
+
type ExtractTaskInput<T> = T extends ITask<infer I, any, infer D> ? I : never;
|
|
12
|
+
type ExtractTaskOutput<T> = T extends ITask<any, infer O, infer D> ? O : never;
|
|
13
|
+
type ExtractResourceValue<T> = T extends IResource<any, infer V, infer D> ? V : never;
|
|
14
|
+
type ExtractEventParams<T> = T extends IEventDefinition<infer P> ? P : never;
|
|
15
|
+
type TaskDependency<I, O> = (...args: I extends null | void ? [] : [I]) => O;
|
|
16
|
+
type ResourceDependency<V> = V;
|
|
17
|
+
type EventDependency<P> = (input: P) => Promise<void>;
|
|
18
|
+
export type DependencyValueType<T> = T extends ITask<any, any, any> ? TaskDependency<ExtractTaskInput<T>, ExtractTaskOutput<T>> : T extends IResource<any, any> ? ResourceDependency<ExtractResourceValue<T>> : T extends IEventDefinition<any> ? EventDependency<ExtractEventParams<T>> : never;
|
|
19
|
+
export type DependencyValuesType<T extends DependencyMapType> = {
|
|
20
|
+
[K in keyof T]: DependencyValueType<T[K]>;
|
|
21
|
+
};
|
|
22
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../../src/types/dependencies.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { ITask, IResource, IEventDefinition } from './base-interfaces';
|
|
2
|
+
export type DependencyMapType = Record<string, ITask<any, any, any, any> | IResource<any, any, any> | IEventDefinition<any>>;
|
|
3
|
+
type ExtractTaskInput<T> = T extends ITask<infer I, any, any, any> ? I : never;
|
|
4
|
+
type ExtractTaskOutput<T> = T extends ITask<any, infer O, any, any> ? O : never;
|
|
5
|
+
type ExtractResourceValue<T> = T extends IResource<any, infer V, any> ? V : never;
|
|
6
|
+
type ExtractEventParams<T> = T extends IEventDefinition<infer P> ? P : never;
|
|
7
|
+
type TaskDependency<I, O> = (...args: I extends null | void ? [] : [I]) => O;
|
|
8
|
+
type ResourceDependency<V> = V;
|
|
9
|
+
type EventDependency<P> = (input: P) => Promise<void>;
|
|
10
|
+
export type DependencyValueType<T> = T extends ITask<any, any, any, any> ? TaskDependency<ExtractTaskInput<T>, ExtractTaskOutput<T>> : T extends IResource<any, any, any> ? ResourceDependency<ExtractResourceValue<T>> : T extends IEventDefinition<any> ? EventDependency<ExtractEventParams<T>> : never;
|
|
11
|
+
export type DependencyValuesType<T extends DependencyMapType> = {
|
|
12
|
+
[K in keyof T]: DependencyValueType<T[K]>;
|
|
13
|
+
};
|
|
14
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dependency-core.js","sourceRoot":"","sources":["../../src/types/dependency-core.ts"],"names":[],"mappings":";AAAA,iDAAiD;AACjD,2DAA2D"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { symbolEvent } from './symbols';
|
|
2
|
+
import type { IEventMeta } from './meta';
|
|
3
|
+
export interface IEvent<TPayload = any> {
|
|
4
|
+
id: string;
|
|
5
|
+
/**
|
|
6
|
+
* The data that the event carries. It can be anything.
|
|
7
|
+
*/
|
|
8
|
+
data: TPayload;
|
|
9
|
+
/**
|
|
10
|
+
* The timestamp when the event was created.
|
|
11
|
+
*/
|
|
12
|
+
timestamp: Date;
|
|
13
|
+
/**
|
|
14
|
+
* The source of the event. This can be useful for debugging.
|
|
15
|
+
*/
|
|
16
|
+
source: string;
|
|
17
|
+
}
|
|
18
|
+
export type EventHandlerType<T = any> = (event: IEvent<T>) => any | Promise<any>;
|
|
19
|
+
export interface IEventDefinitionConfig<TPayload = void> {
|
|
20
|
+
id: string;
|
|
21
|
+
meta?: IEventMeta;
|
|
22
|
+
}
|
|
23
|
+
export interface IEventDefinition<TPayload = void> {
|
|
24
|
+
id: string;
|
|
25
|
+
/**
|
|
26
|
+
* We use this event to discriminate between resources with just 'id' and 'events' as they collide. This is a workaround, should be redone using classes and instanceof.
|
|
27
|
+
*/
|
|
28
|
+
[symbolEvent]: true;
|
|
29
|
+
meta?: IEventMeta;
|
|
30
|
+
}
|
|
31
|
+
export type BeforeRunEventPayload<TInput> = {
|
|
32
|
+
input: TInput;
|
|
33
|
+
};
|
|
34
|
+
export type AfterRunEventPayload<TInput, TOutput> = {
|
|
35
|
+
input: TInput;
|
|
36
|
+
output: TOutput extends Promise<infer U> ? U : TOutput;
|
|
37
|
+
setOutput(newOutput: TOutput extends Promise<infer U> ? U : TOutput): void;
|
|
38
|
+
};
|
|
39
|
+
export type OnErrorEventPayload = {
|
|
40
|
+
error: any;
|
|
41
|
+
/**
|
|
42
|
+
* This function can be called to suppress the error from being thrown.
|
|
43
|
+
*/
|
|
44
|
+
suppress(): void;
|
|
45
|
+
};
|
|
46
|
+
export type BeforeInitEventPayload<TConfig> = {
|
|
47
|
+
config: TConfig;
|
|
48
|
+
};
|
|
49
|
+
export type AfterInitEventPayload<TConfig, TValue> = {
|
|
50
|
+
config: TConfig;
|
|
51
|
+
value: TValue;
|
|
52
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/types/events.ts"],"names":[],"mappings":";AAAA,0CAA0C;AAC1C,2BAA2B;;AAE3B,uCAAwC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { IEventDefinition, IEvent } from './events';
|
|
2
|
+
import type { DependencyMapType, DependencyValuesType } from './dependency-core';
|
|
3
|
+
export interface IHookDefinition<D extends DependencyMapType = {}, T = any, B extends boolean = false> {
|
|
4
|
+
event: "*" | IEventDefinition<T>;
|
|
5
|
+
/**
|
|
6
|
+
* The higher the number, the higher the priority.
|
|
7
|
+
* We recommend using numbers between -1000 and 1000.
|
|
8
|
+
*/
|
|
9
|
+
order?: number;
|
|
10
|
+
/**
|
|
11
|
+
* These are hooks that run before any resource instantiation.
|
|
12
|
+
* @param event
|
|
13
|
+
*/
|
|
14
|
+
early?: B;
|
|
15
|
+
run: (event: IEvent<T>, dependencies: T extends true ? void : DependencyValuesType<D>) => Promise<void> | void;
|
|
16
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/types/hooks.ts"],"names":[],"mappings":";AAAA,qCAAqC;AACrC,4CAA4C"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export * from './symbols';
|
|
2
|
+
export * from './base';
|
|
3
|
+
export * from './utilities';
|
|
4
|
+
export * from './dependencies';
|
|
5
|
+
export * from './events';
|
|
6
|
+
export * from './tasks';
|
|
7
|
+
export * from './resources';
|
|
8
|
+
export * from './middleware';
|
|
9
|
+
export * from './hooks';
|
|
10
|
+
import type { IResourceWithConfig, IResource, ITaskDefinition, IMiddlewareDefinition, IEventDefinition } from './index';
|
|
11
|
+
export type RegisterableItems<T = any> = IResourceWithConfig<any> | IResource<void, any, any, any> | IResource<{
|
|
12
|
+
[K in any]?: any;
|
|
13
|
+
}, any, any, any> | ITaskDefinition<any, any, any, any> | IMiddlewareDefinition<any> | IEventDefinition<any>;
|
|
14
|
+
export { ICacheInstance } from "../globals/middleware/cache.middleware";
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
// Re-export everything from individual modules
|
|
18
|
+
__exportStar(require("./symbols"), exports);
|
|
19
|
+
__exportStar(require("./base"), exports);
|
|
20
|
+
__exportStar(require("./utilities"), exports);
|
|
21
|
+
__exportStar(require("./dependencies"), exports);
|
|
22
|
+
__exportStar(require("./events"), exports);
|
|
23
|
+
__exportStar(require("./tasks"), exports);
|
|
24
|
+
__exportStar(require("./resources"), exports);
|
|
25
|
+
__exportStar(require("./middleware"), exports);
|
|
26
|
+
__exportStar(require("./hooks"), exports);
|
|
27
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA+C;AAC/C,4CAA0B;AAC1B,yCAAuB;AACvB,8CAA4B;AAC5B,iDAA+B;AAC/B,2CAAyB;AACzB,0CAAwB;AACxB,8CAA4B;AAC5B,+CAA6B;AAC7B,0CAAwB"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface IMeta {
|
|
2
|
+
title?: string;
|
|
3
|
+
description?: string;
|
|
4
|
+
tags?: string[];
|
|
5
|
+
}
|
|
6
|
+
export interface ITaskMeta extends IMeta {
|
|
7
|
+
}
|
|
8
|
+
export interface IResourceMeta extends IMeta {
|
|
9
|
+
}
|
|
10
|
+
export interface IEventMeta extends IMeta {
|
|
11
|
+
}
|
|
12
|
+
export interface IMiddlewareMeta extends IMeta {
|
|
13
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meta.js","sourceRoot":"","sources":["../../src/types/meta.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,kBAAkB"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { symbolMiddleware, symbolMiddlewareConfigured, symbolMiddlewareEverywhereTasks, symbolMiddlewareEverywhereResources } from './symbols';
|
|
2
|
+
import type { IMiddlewareMeta } from './meta';
|
|
3
|
+
import type { DependencyMapType, DependencyValuesType } from './dependency-core';
|
|
4
|
+
import type { ITask, IResource } from './base-interfaces';
|
|
5
|
+
export interface IMiddlewareExecutionInput<TTaskInput = any, TResourceConfig = any> {
|
|
6
|
+
task?: {
|
|
7
|
+
definition: ITask<TTaskInput>;
|
|
8
|
+
input: TTaskInput;
|
|
9
|
+
};
|
|
10
|
+
resource?: {
|
|
11
|
+
definition: IResource<TResourceConfig>;
|
|
12
|
+
config: TResourceConfig;
|
|
13
|
+
};
|
|
14
|
+
next: (taskInputOrResourceConfig?: TTaskInput | TResourceConfig) => Promise<any>;
|
|
15
|
+
}
|
|
16
|
+
export interface IMiddlewareDefinition<TConfig = any, TDependencies extends DependencyMapType = any> {
|
|
17
|
+
id: string;
|
|
18
|
+
dependencies?: TDependencies | (() => TDependencies);
|
|
19
|
+
run: (input: IMiddlewareExecutionInput, dependencies: DependencyValuesType<TDependencies>, config: TConfig) => Promise<any>;
|
|
20
|
+
meta?: IMiddlewareMeta;
|
|
21
|
+
}
|
|
22
|
+
export interface IMiddleware<TConfig = any, TDependencies extends DependencyMapType = any> extends IMiddlewareDefinition<TConfig, TDependencies> {
|
|
23
|
+
[symbolMiddleware]: true;
|
|
24
|
+
[symbolMiddlewareConfigured]?: boolean;
|
|
25
|
+
[symbolMiddlewareEverywhereTasks]?: boolean;
|
|
26
|
+
[symbolMiddlewareEverywhereResources]?: boolean;
|
|
27
|
+
dependencies: TDependencies | (() => TDependencies);
|
|
28
|
+
everywhere(): IMiddleware<TConfig, TDependencies>;
|
|
29
|
+
config: TConfig;
|
|
30
|
+
with: (config: TConfig) => IMiddlewareConfigured<TConfig, TDependencies>;
|
|
31
|
+
}
|
|
32
|
+
export interface IMiddlewareConfigured<TConfig = any, TDependencies extends DependencyMapType = any> extends IMiddleware<TConfig, TDependencies> {
|
|
33
|
+
[symbolMiddlewareConfigured]: true;
|
|
34
|
+
}
|
|
35
|
+
export interface IMiddlewareDefinitionConfigured<C extends Record<string, any> = {}> {
|
|
36
|
+
middleware: IMiddleware<C>;
|
|
37
|
+
config?: C;
|
|
38
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../src/types/middleware.ts"],"names":[],"mappings":";AAAA,8CAA8C;AAC9C,2BAA2B;;AAE3B,uCAKmB"}
|