@bluelibs/runner 4.6.1 → 4.7.0-alpha
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 +319 -579
- package/README.md +886 -731
- package/dist/browser/index.cjs +1438 -251
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.mjs +1433 -252
- package/dist/browser/index.mjs.map +1 -1
- package/dist/context.d.ts +31 -0
- package/dist/define.d.ts +9 -0
- package/dist/definers/builders/core.d.ts +30 -0
- package/dist/definers/builders/event.d.ts +12 -0
- package/dist/definers/builders/hook.d.ts +20 -0
- package/dist/definers/builders/middleware.d.ts +39 -0
- package/dist/definers/builders/resource.d.ts +40 -0
- package/dist/definers/builders/tag.d.ts +10 -0
- package/dist/definers/builders/task.d.ts +37 -0
- package/dist/definers/builders/task.phantom.d.ts +27 -0
- package/dist/definers/builders/utils.d.ts +4 -0
- package/dist/definers/defineEvent.d.ts +2 -0
- package/dist/definers/defineHook.d.ts +6 -0
- package/dist/definers/defineOverride.d.ts +17 -0
- package/dist/definers/defineResource.d.ts +2 -0
- package/dist/definers/defineResourceMiddleware.d.ts +2 -0
- package/dist/definers/defineTag.d.ts +12 -0
- package/dist/definers/defineTask.d.ts +18 -0
- package/dist/definers/defineTaskMiddleware.d.ts +2 -0
- package/dist/definers/tools.d.ts +47 -0
- package/dist/defs.d.ts +29 -0
- package/dist/edge/index.cjs +1438 -251
- package/dist/edge/index.cjs.map +1 -1
- package/dist/edge/index.mjs +1433 -252
- package/dist/edge/index.mjs.map +1 -1
- package/dist/errors.d.ts +104 -0
- package/dist/globals/globalEvents.d.ts +8 -0
- package/dist/globals/globalMiddleware.d.ts +31 -0
- package/dist/globals/globalResources.d.ts +32 -0
- package/dist/globals/globalTags.d.ts +11 -0
- package/dist/globals/middleware/cache.middleware.d.ts +27 -0
- package/dist/globals/middleware/requireContext.middleware.d.ts +6 -0
- package/dist/globals/middleware/retry.middleware.d.ts +21 -0
- package/dist/globals/middleware/timeout.middleware.d.ts +9 -0
- package/dist/globals/middleware/tunnel.middleware.d.ts +2 -0
- package/dist/globals/resources/debug/debug.resource.d.ts +7 -0
- package/dist/globals/resources/debug/debug.tag.d.ts +2 -0
- package/dist/globals/resources/debug/debugConfig.resource.d.ts +22 -0
- package/dist/globals/resources/debug/executionTracker.middleware.d.ts +50 -0
- package/dist/globals/resources/debug/globalEvent.hook.d.ts +27 -0
- package/dist/globals/resources/debug/hook.hook.d.ts +30 -0
- package/dist/globals/resources/debug/index.d.ts +6 -0
- package/dist/globals/resources/debug/middleware.hook.d.ts +30 -0
- package/dist/globals/resources/debug/types.d.ts +25 -0
- package/dist/globals/resources/debug/utils.d.ts +2 -0
- package/dist/globals/resources/queue.resource.d.ts +10 -0
- package/dist/globals/resources/tunnel/ejson-extensions.d.ts +1 -0
- package/dist/globals/resources/tunnel/error-utils.d.ts +1 -0
- package/dist/globals/resources/tunnel/plan.d.ts +19 -0
- package/dist/globals/resources/tunnel/protocol.d.ts +40 -0
- package/dist/globals/resources/tunnel/serializer.d.ts +9 -0
- package/dist/globals/resources/tunnel/tunnel.policy.tag.d.ts +18 -0
- package/dist/globals/resources/tunnel/tunnel.tag.d.ts +2 -0
- package/dist/globals/resources/tunnel/types.d.ts +17 -0
- package/dist/globals/tunnels/index.d.ts +23 -0
- package/dist/globals/types.d.ts +1 -0
- package/dist/http-client.d.ts +23 -0
- package/dist/http-fetch-tunnel.resource.d.ts +22 -0
- package/dist/index.d.ts +99 -0
- package/dist/models/DependencyProcessor.d.ts +48 -0
- package/dist/models/EventManager.d.ts +153 -0
- package/dist/models/LogPrinter.d.ts +55 -0
- package/dist/models/Logger.d.ts +85 -0
- package/dist/models/MiddlewareManager.d.ts +86 -0
- package/dist/models/OverrideManager.d.ts +13 -0
- package/dist/models/Queue.d.ts +26 -0
- package/dist/models/ResourceInitializer.d.ts +20 -0
- package/dist/models/RunResult.d.ts +35 -0
- package/dist/models/Semaphore.d.ts +61 -0
- package/dist/models/Store.d.ts +69 -0
- package/dist/models/StoreRegistry.d.ts +43 -0
- package/dist/models/StoreValidator.d.ts +8 -0
- package/dist/models/TaskRunner.d.ts +27 -0
- package/dist/models/UnhandledError.d.ts +11 -0
- package/dist/models/index.d.ts +11 -0
- package/dist/models/utils/findCircularDependencies.d.ts +16 -0
- package/dist/models/utils/safeStringify.d.ts +3 -0
- package/dist/node/exposure/allowList.d.ts +3 -0
- package/dist/node/exposure/authenticator.d.ts +6 -0
- package/dist/node/exposure/cors.d.ts +4 -0
- package/dist/node/exposure/createNodeExposure.d.ts +2 -0
- package/dist/node/exposure/exposureServer.d.ts +18 -0
- package/dist/node/exposure/httpResponse.d.ts +10 -0
- package/dist/node/exposure/logging.d.ts +4 -0
- package/dist/node/exposure/multipart.d.ts +27 -0
- package/dist/node/exposure/requestBody.d.ts +11 -0
- package/dist/node/exposure/requestContext.d.ts +17 -0
- package/dist/node/exposure/requestHandlers.d.ts +24 -0
- package/dist/node/exposure/resourceTypes.d.ts +60 -0
- package/dist/node/exposure/router.d.ts +17 -0
- package/dist/node/exposure/serverLifecycle.d.ts +13 -0
- package/dist/node/exposure/types.d.ts +31 -0
- package/dist/node/exposure/utils.d.ts +17 -0
- package/dist/node/exposure.resource.d.ts +12 -0
- package/dist/node/files.d.ts +9 -0
- package/dist/node/http-smart-client.model.d.ts +22 -0
- package/dist/node/index.d.ts +1 -0
- package/dist/node/inputFile.model.d.ts +22 -0
- package/dist/node/inputFile.utils.d.ts +14 -0
- package/dist/node/mixed-http-client.node.d.ts +27 -0
- package/dist/node/node.cjs +11168 -0
- package/dist/node/node.cjs.map +1 -0
- package/dist/node/node.d.ts +6 -0
- package/dist/node/node.mjs +11099 -0
- package/dist/node/node.mjs.map +1 -0
- package/dist/node/platform/createFile.d.ts +9 -0
- package/dist/node/tunnel.allowlist.d.ts +7 -0
- package/dist/node/upload/manifest.d.ts +22 -0
- package/dist/platform/adapters/browser.d.ts +14 -0
- package/dist/platform/adapters/edge.d.ts +5 -0
- package/dist/platform/adapters/node-als.d.ts +1 -0
- package/dist/platform/adapters/node.d.ts +15 -0
- package/dist/platform/adapters/universal-generic.d.ts +14 -0
- package/dist/platform/adapters/universal.d.ts +17 -0
- package/dist/platform/createFile.d.ts +10 -0
- package/dist/platform/createWebFile.d.ts +11 -0
- package/dist/platform/factory.d.ts +2 -0
- package/dist/platform/index.d.ts +27 -0
- package/dist/platform/types.d.ts +29 -0
- package/dist/processHooks.d.ts +2 -0
- package/dist/run.d.ts +14 -0
- package/dist/testing.d.ts +25 -0
- package/dist/tools/getCallerFile.d.ts +1 -0
- package/dist/tunnels/buildUniversalManifest.d.ts +24 -0
- package/dist/types/contracts.d.ts +63 -0
- package/dist/types/event.d.ts +74 -0
- package/dist/types/hook.d.ts +23 -0
- package/dist/types/inputFile.d.ts +34 -0
- package/dist/types/meta.d.ts +18 -0
- package/dist/types/resource.d.ts +87 -0
- package/dist/types/resourceMiddleware.d.ts +47 -0
- package/dist/types/runner.d.ts +55 -0
- package/dist/types/storeTypes.d.ts +40 -0
- package/dist/types/symbols.d.ts +28 -0
- package/dist/types/tag.d.ts +46 -0
- package/dist/types/task.d.ts +50 -0
- package/dist/types/taskMiddleware.d.ts +48 -0
- package/dist/types/utilities.d.ts +111 -0
- package/dist/universal/index.cjs +1438 -251
- package/dist/universal/index.cjs.map +1 -1
- package/dist/universal/index.mjs +1433 -252
- package/dist/universal/index.mjs.map +1 -1
- package/package.json +32 -4
- package/dist/index.d.mts +0 -1747
- package/dist/index.unused.js +0 -4466
- package/dist/index.unused.js.map +0 -1
- package/dist/node/index.cjs +0 -4498
- package/dist/node/index.cjs.map +0 -1
- package/dist/node/index.mjs +0 -4466
- package/dist/node/index.mjs.map +0 -1
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { ITaskMiddlewareConfigured } from "./defs";
|
|
2
|
+
import { ContextError } from "./errors";
|
|
3
|
+
export { ContextError };
|
|
4
|
+
/**
|
|
5
|
+
* The generic Context object returned by `createContext`.
|
|
6
|
+
*/
|
|
7
|
+
export interface Context<T> {
|
|
8
|
+
/** unique symbol used as key in the AsyncLocalStorage map */
|
|
9
|
+
readonly id: symbol;
|
|
10
|
+
/** Retrieve the current context value or throw */
|
|
11
|
+
use(): T;
|
|
12
|
+
/**
|
|
13
|
+
* Provide a value for this context during the lifetime of `fn()`
|
|
14
|
+
*/
|
|
15
|
+
provide<R>(value: T, fn: () => Promise<R> | R): Promise<R> | R;
|
|
16
|
+
/**
|
|
17
|
+
* Generates a middleware that guarantees the context exists (and optionally
|
|
18
|
+
* enforces that certain keys are present on the context object).
|
|
19
|
+
*/
|
|
20
|
+
require<K extends keyof T = never>(keys?: K[]): ITaskMiddlewareConfigured<{
|
|
21
|
+
context: Context<T>;
|
|
22
|
+
}>;
|
|
23
|
+
}
|
|
24
|
+
export declare const storage: import("./platform").IAsyncLocalStorage<Map<symbol, unknown>>;
|
|
25
|
+
/** Returns the currently active store or undefined. */
|
|
26
|
+
export declare function getCurrentStore(): Map<symbol, unknown> | undefined;
|
|
27
|
+
/**
|
|
28
|
+
* Create a new typed Context. The result contains helpers similar to React’s
|
|
29
|
+
* Context API but adapted for async usage in Runner.
|
|
30
|
+
*/
|
|
31
|
+
export declare function createContext<T>(name?: string): Context<T>;
|
package/dist/define.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { defineTask } from "./definers/defineTask";
|
|
2
|
+
export { defineHook } from "./definers/defineHook";
|
|
3
|
+
export { defineResource } from "./definers/defineResource";
|
|
4
|
+
export { defineEvent } from "./definers/defineEvent";
|
|
5
|
+
export { defineTaskMiddleware } from "./definers/defineTaskMiddleware";
|
|
6
|
+
export { defineResourceMiddleware } from "./definers/defineResourceMiddleware";
|
|
7
|
+
export { defineOverride } from "./definers/defineOverride";
|
|
8
|
+
export { defineTag } from "./definers/defineTag";
|
|
9
|
+
export { isTask, isPhantomTask, isResource, isResourceWithConfig, isEvent, isHook, isTaskMiddleware, isResourceMiddleware, isTag, isOptional, } from "./definers/tools";
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { DependencyMapType, IEventDefinition, IResourceDefinition, ITaskDefinition, IHookDefinition, ITaskMiddlewareDefinition, IResourceMiddlewareDefinition, TagType, ResourceMiddlewareAttachmentType, TaskMiddlewareAttachmentType } from "../../defs";
|
|
2
|
+
import type { IResourceMeta, ITaskMeta } from "../../defs";
|
|
3
|
+
export type Immutable<T> = {
|
|
4
|
+
readonly [K in keyof T]: Immutable<T[K]>;
|
|
5
|
+
};
|
|
6
|
+
export type ReadonlyDeep<T> = Immutable<T>;
|
|
7
|
+
export interface ResourceBuilder<TConfig = void, TValue extends Promise<any> = Promise<any>, TDeps extends DependencyMapType = {}, TContext = any, TMeta extends IResourceMeta = any, TTags extends TagType[] = TagType[], TMiddleware extends ResourceMiddlewareAttachmentType[] = ResourceMiddlewareAttachmentType[]> {
|
|
8
|
+
id: string;
|
|
9
|
+
definition: ReadonlyDeep<IResourceDefinition<TConfig, TValue, TDeps, TContext, any, any, TMeta, TTags, TMiddleware>>;
|
|
10
|
+
}
|
|
11
|
+
export interface TaskBuilder<TInput = undefined, TOutput extends Promise<any> = any, TDeps extends DependencyMapType = {}, TMeta extends ITaskMeta = any, TTags extends TagType[] = TagType[], TMiddleware extends TaskMiddlewareAttachmentType[] = TaskMiddlewareAttachmentType[]> {
|
|
12
|
+
id: string;
|
|
13
|
+
definition: ReadonlyDeep<ITaskDefinition<TInput, TOutput, TDeps, TMeta, TTags, TMiddleware>>;
|
|
14
|
+
}
|
|
15
|
+
export interface EventBuilder<TPayload = void> {
|
|
16
|
+
id: string;
|
|
17
|
+
definition: ReadonlyDeep<IEventDefinition<TPayload>>;
|
|
18
|
+
}
|
|
19
|
+
export interface HookBuilder<TDeps extends DependencyMapType = {}, TOn extends "*" | IEventDefinition<any> | readonly IEventDefinition<any>[] = any, TMeta extends ITaskMeta = any> {
|
|
20
|
+
id: string;
|
|
21
|
+
definition: ReadonlyDeep<IHookDefinition<TDeps, TOn, TMeta>>;
|
|
22
|
+
}
|
|
23
|
+
export interface TaskMiddlewareBuilder<TConfig = any, TEnforceInputContract = void, TEnforceOutputContract = void, TDependencies extends DependencyMapType = any> {
|
|
24
|
+
id: string;
|
|
25
|
+
definition: ReadonlyDeep<ITaskMiddlewareDefinition<TConfig, TEnforceInputContract, TEnforceOutputContract, TDependencies>>;
|
|
26
|
+
}
|
|
27
|
+
export interface ResourceMiddlewareBuilder<TConfig = any, TEnforceInputContract = void, TEnforceOutputContract = void, TDependencies extends DependencyMapType = any> {
|
|
28
|
+
id: string;
|
|
29
|
+
definition: ReadonlyDeep<IResourceMiddlewareDefinition<TConfig, TEnforceInputContract, TEnforceOutputContract, TDependencies>>;
|
|
30
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { IEvent, IEventMeta, IValidationSchema, TagType } from "../../defs";
|
|
2
|
+
export interface EventFluentBuilder<TPayload = void> {
|
|
3
|
+
id: string;
|
|
4
|
+
payloadSchema<TNew>(schema: IValidationSchema<TNew>): EventFluentBuilder<TNew>;
|
|
5
|
+
tags<TNewTags extends TagType[]>(t: TNewTags, options?: {
|
|
6
|
+
override?: boolean;
|
|
7
|
+
}): EventFluentBuilder<TPayload>;
|
|
8
|
+
meta<TNewMeta extends IEventMeta>(m: TNewMeta): EventFluentBuilder<TPayload>;
|
|
9
|
+
build(): IEvent<TPayload>;
|
|
10
|
+
}
|
|
11
|
+
export declare function eventBuilder(id: string): EventFluentBuilder<void>;
|
|
12
|
+
export declare const event: typeof eventBuilder;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { DependencyMapType, IEventDefinition, IHook, IHookDefinition, ITaskMeta, TagType } from "../../defs";
|
|
2
|
+
export interface HookFluentBuilder<TDeps extends DependencyMapType = {}, TOn extends "*" | IEventDefinition<any> | readonly IEventDefinition<any>[] = any, TMeta extends ITaskMeta = ITaskMeta> {
|
|
3
|
+
id: string;
|
|
4
|
+
on<TNewOn extends "*" | IEventDefinition<any> | readonly IEventDefinition<any>[]>(on: TNewOn): HookFluentBuilder<TDeps, TNewOn, TMeta>;
|
|
5
|
+
order(order: number): HookFluentBuilder<TDeps, TOn, TMeta>;
|
|
6
|
+
dependencies<TNewDeps extends DependencyMapType>(deps: TNewDeps | (() => TNewDeps), options?: {
|
|
7
|
+
override?: false;
|
|
8
|
+
}): HookFluentBuilder<TDeps & TNewDeps, TOn, TMeta>;
|
|
9
|
+
dependencies<TNewDeps extends DependencyMapType>(deps: TNewDeps | (() => TNewDeps), options: {
|
|
10
|
+
override: true;
|
|
11
|
+
}): HookFluentBuilder<TNewDeps, TOn, TMeta>;
|
|
12
|
+
tags<TNewTags extends TagType[]>(t: TNewTags, options?: {
|
|
13
|
+
override?: boolean;
|
|
14
|
+
}): HookFluentBuilder<TDeps, TOn, TMeta>;
|
|
15
|
+
meta<TNewMeta extends ITaskMeta>(m: TNewMeta): HookFluentBuilder<TDeps, TOn, TNewMeta>;
|
|
16
|
+
run(fn: IHookDefinition<TDeps, TOn, TMeta>["run"]): HookFluentBuilder<TDeps, TOn, TMeta>;
|
|
17
|
+
build(): IHook<TDeps, TOn, TMeta>;
|
|
18
|
+
}
|
|
19
|
+
export declare function hookBuilder(id: string): HookFluentBuilder<{}, any, ITaskMeta>;
|
|
20
|
+
export declare const hook: typeof hookBuilder;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { DependencyMapType, ITaskMiddleware, ITaskMiddlewareDefinition, IResourceMiddleware, IResourceMiddlewareDefinition, IValidationSchema, IMiddlewareMeta, TagType } from "../../defs";
|
|
2
|
+
export interface TaskMiddlewareFluentBuilder<C = any, In = void, Out = void, D extends DependencyMapType = {}> {
|
|
3
|
+
id: string;
|
|
4
|
+
dependencies<TNewDeps extends DependencyMapType>(deps: TNewDeps | ((config: C) => TNewDeps), options?: {
|
|
5
|
+
override?: false;
|
|
6
|
+
}): TaskMiddlewareFluentBuilder<C, In, Out, D & TNewDeps>;
|
|
7
|
+
dependencies<TNewDeps extends DependencyMapType>(deps: TNewDeps | ((config: C) => TNewDeps), options: {
|
|
8
|
+
override: true;
|
|
9
|
+
}): TaskMiddlewareFluentBuilder<C, In, Out, TNewDeps>;
|
|
10
|
+
configSchema<TNew>(schema: IValidationSchema<TNew>): TaskMiddlewareFluentBuilder<TNew, In, Out, D>;
|
|
11
|
+
run(fn: ITaskMiddlewareDefinition<C, In, Out, D>["run"]): TaskMiddlewareFluentBuilder<C, In, Out, D>;
|
|
12
|
+
meta<TNewMeta extends IMiddlewareMeta>(m: TNewMeta): TaskMiddlewareFluentBuilder<C, In, Out, D>;
|
|
13
|
+
tags<TNewTags extends TagType[]>(t: TNewTags, options?: {
|
|
14
|
+
override?: boolean;
|
|
15
|
+
}): TaskMiddlewareFluentBuilder<C, In, Out, D>;
|
|
16
|
+
everywhere(flag: boolean | ((task: any) => boolean)): TaskMiddlewareFluentBuilder<C, In, Out, D>;
|
|
17
|
+
build(): ITaskMiddleware<C, In, Out, D>;
|
|
18
|
+
}
|
|
19
|
+
export declare function taskMiddlewareBuilder(id: string): TaskMiddlewareFluentBuilder<any, void, void, {}>;
|
|
20
|
+
export interface ResourceMiddlewareFluentBuilder<C = any, In = void, Out = void, D extends DependencyMapType = {}> {
|
|
21
|
+
id: string;
|
|
22
|
+
dependencies<TNewDeps extends DependencyMapType>(deps: TNewDeps | ((config: C) => TNewDeps), options?: {
|
|
23
|
+
override?: false;
|
|
24
|
+
}): ResourceMiddlewareFluentBuilder<C, In, Out, D & TNewDeps>;
|
|
25
|
+
dependencies<TNewDeps extends DependencyMapType>(deps: TNewDeps | ((config: C) => TNewDeps), options: {
|
|
26
|
+
override: true;
|
|
27
|
+
}): ResourceMiddlewareFluentBuilder<C, In, Out, TNewDeps>;
|
|
28
|
+
configSchema<TNew>(schema: IValidationSchema<TNew>): ResourceMiddlewareFluentBuilder<TNew, In, Out, D>;
|
|
29
|
+
run(fn: IResourceMiddlewareDefinition<C, In, Out, D>["run"]): ResourceMiddlewareFluentBuilder<C, In, Out, D>;
|
|
30
|
+
meta<TNewMeta extends IMiddlewareMeta>(m: TNewMeta): ResourceMiddlewareFluentBuilder<C, In, Out, D>;
|
|
31
|
+
tags<TNewTags extends TagType[]>(t: TNewTags, options?: {
|
|
32
|
+
override?: boolean;
|
|
33
|
+
}): ResourceMiddlewareFluentBuilder<C, In, Out, D>;
|
|
34
|
+
everywhere(flag: boolean | ((resource: any) => boolean)): ResourceMiddlewareFluentBuilder<C, In, Out, D>;
|
|
35
|
+
build(): IResourceMiddleware<C, In, Out, D>;
|
|
36
|
+
}
|
|
37
|
+
export declare function resourceMiddlewareBuilder(id: string): ResourceMiddlewareFluentBuilder<any, void, void, {}>;
|
|
38
|
+
export declare const taskMiddleware: typeof taskMiddlewareBuilder;
|
|
39
|
+
export declare const resourceMiddleware: typeof resourceMiddlewareBuilder;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { DependencyMapType, IResource, IResourceDefinition, IResourceMeta, IValidationSchema, OverridableElements, RegisterableItems, ResourceInitFn, ResourceMiddlewareAttachmentType, TagType } from "../../defs";
|
|
2
|
+
type ShouldReplaceConfig<T> = [T] extends [void] ? true : [T] extends [undefined] ? true : false;
|
|
3
|
+
type ResolveConfig<TExisting, TProposed> = ShouldReplaceConfig<TExisting> extends true ? TProposed : TExisting;
|
|
4
|
+
export interface ResourceFluentBuilder<TConfig = void, TValue extends Promise<any> = Promise<any>, TDeps extends DependencyMapType = {}, TContext = any, TMeta extends IResourceMeta = IResourceMeta, TTags extends TagType[] = TagType[], TMiddleware extends ResourceMiddlewareAttachmentType[] = ResourceMiddlewareAttachmentType[]> {
|
|
5
|
+
id: string;
|
|
6
|
+
dependencies<TNewDeps extends DependencyMapType>(deps: TNewDeps | ((config: TConfig) => TNewDeps), options?: {
|
|
7
|
+
override?: false;
|
|
8
|
+
}): ResourceFluentBuilder<TConfig, TValue, TDeps & TNewDeps, TContext, TMeta, TTags, TMiddleware>;
|
|
9
|
+
dependencies<TNewDeps extends DependencyMapType>(deps: TNewDeps | ((config: TConfig) => TNewDeps), options: {
|
|
10
|
+
override: true;
|
|
11
|
+
}): ResourceFluentBuilder<TConfig, TValue, TNewDeps, TContext, TMeta, TTags, TMiddleware>;
|
|
12
|
+
register(items: RegisterableItems | Array<RegisterableItems> | ((config: TConfig) => RegisterableItems | Array<RegisterableItems>), options?: {
|
|
13
|
+
override?: boolean;
|
|
14
|
+
}): ResourceFluentBuilder<TConfig, TValue, TDeps, TContext, TMeta, TTags, TMiddleware>;
|
|
15
|
+
middleware<TNewMw extends ResourceMiddlewareAttachmentType[]>(mw: TNewMw, options?: {
|
|
16
|
+
override?: boolean;
|
|
17
|
+
}): ResourceFluentBuilder<TConfig, TValue, TDeps, TContext, TMeta, TTags, TNewMw>;
|
|
18
|
+
tags<TNewTags extends TagType[]>(tags: TNewTags, options?: {
|
|
19
|
+
override?: false;
|
|
20
|
+
}): ResourceFluentBuilder<TConfig, TValue, TDeps, TContext, TMeta, [
|
|
21
|
+
...TTags,
|
|
22
|
+
...TNewTags
|
|
23
|
+
], TMiddleware>;
|
|
24
|
+
tags<TNewTags extends TagType[]>(tags: TNewTags, options: {
|
|
25
|
+
override: true;
|
|
26
|
+
}): ResourceFluentBuilder<TConfig, TValue, TDeps, TContext, TMeta, TNewTags, TMiddleware>;
|
|
27
|
+
context<TNewCtx>(factory: () => TNewCtx): ResourceFluentBuilder<TConfig, TValue, TDeps, TNewCtx, TMeta, TTags, TMiddleware>;
|
|
28
|
+
configSchema<TNewConfig>(schema: IValidationSchema<TNewConfig>): ResourceFluentBuilder<TNewConfig, TValue, TDeps, TContext, TMeta, TTags, TMiddleware>;
|
|
29
|
+
resultSchema<TResolved>(schema: IValidationSchema<TResolved>): ResourceFluentBuilder<TConfig, Promise<TResolved>, TDeps, TContext, TMeta, TTags, TMiddleware>;
|
|
30
|
+
init<TNewConfig = TConfig, TNewValue extends Promise<any> = TValue>(fn: ResourceInitFn<ResolveConfig<TConfig, TNewConfig>, TNewValue, TDeps, TContext, TMeta, TTags, TMiddleware>): ResourceFluentBuilder<ResolveConfig<TConfig, TNewConfig>, TNewValue, TDeps, TContext, TMeta, TTags, TMiddleware>;
|
|
31
|
+
dispose(fn: NonNullable<IResourceDefinition<TConfig, TValue, TDeps, TContext, any, any, TMeta, TTags, TMiddleware>["dispose"]>): ResourceFluentBuilder<TConfig, TValue, TDeps, TContext, TMeta, TTags, TMiddleware>;
|
|
32
|
+
meta<TNewMeta extends IResourceMeta>(m: TNewMeta): ResourceFluentBuilder<TConfig, TValue, TDeps, TContext, TNewMeta, TTags, TMiddleware>;
|
|
33
|
+
overrides(o: Array<OverridableElements>, options?: {
|
|
34
|
+
override?: boolean;
|
|
35
|
+
}): ResourceFluentBuilder<TConfig, TValue, TDeps, TContext, TMeta, TTags, TMiddleware>;
|
|
36
|
+
build(): IResource<TConfig, TValue, TDeps, TContext, TMeta, TTags, TMiddleware>;
|
|
37
|
+
}
|
|
38
|
+
export declare function resourceBuilder<TConfig = void>(id: string): ResourceFluentBuilder<TConfig, Promise<any>, {}, any, IResourceMeta, TagType[], ResourceMiddlewareAttachmentType[]>;
|
|
39
|
+
export declare const resource: typeof resourceBuilder;
|
|
40
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ITag, ITagMeta, IValidationSchema } from "../../defs";
|
|
2
|
+
export interface TagFluentBuilder<TConfig = void, TEnforceIn = void, TEnforceOut = void> {
|
|
3
|
+
id: string;
|
|
4
|
+
meta<TNewMeta extends ITagMeta>(m: TNewMeta): TagFluentBuilder<TConfig, TEnforceIn, TEnforceOut>;
|
|
5
|
+
configSchema<TNewConfig>(schema: IValidationSchema<TNewConfig>): TagFluentBuilder<TNewConfig, TEnforceIn, TEnforceOut>;
|
|
6
|
+
config<TNewConfig>(config: TNewConfig): TagFluentBuilder<TNewConfig, TEnforceIn, TEnforceOut>;
|
|
7
|
+
build(): ITag<TConfig, TEnforceIn, TEnforceOut>;
|
|
8
|
+
}
|
|
9
|
+
export declare function tagBuilder<TConfig = void, TEnforceIn = void, TEnforceOut = void>(id: string): TagFluentBuilder<TConfig, TEnforceIn, TEnforceOut>;
|
|
10
|
+
export declare const tag: typeof tagBuilder;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { DependencyMapType, ITask, ITaskDefinition, ITaskMeta, IValidationSchema, TagType, TaskMiddlewareAttachmentType } from "../../defs";
|
|
2
|
+
import { type PhantomTaskFluentBuilder } from "./task.phantom";
|
|
3
|
+
type ShouldReplaceInput<T> = [T] extends [undefined] ? true : [T] extends [void] ? true : (0 extends 1 & T ? true : false);
|
|
4
|
+
type ResolveInput<TExisting, TProposed> = ShouldReplaceInput<TExisting> extends true ? TProposed : TExisting;
|
|
5
|
+
export interface TaskFluentBuilder<TInput = undefined, TOutput extends Promise<any> = Promise<any>, TDeps extends DependencyMapType = {}, TMeta extends ITaskMeta = ITaskMeta, TTags extends TagType[] = TagType[], TMiddleware extends TaskMiddlewareAttachmentType[] = TaskMiddlewareAttachmentType[]> {
|
|
6
|
+
id: string;
|
|
7
|
+
dependencies<TNewDeps extends DependencyMapType>(deps: TNewDeps | (() => TNewDeps), options?: {
|
|
8
|
+
override?: false;
|
|
9
|
+
}): TaskFluentBuilder<TInput, TOutput, TDeps & TNewDeps, TMeta, TTags, TMiddleware>;
|
|
10
|
+
dependencies<TNewDeps extends DependencyMapType>(deps: TNewDeps | (() => TNewDeps), options: {
|
|
11
|
+
override: true;
|
|
12
|
+
}): TaskFluentBuilder<TInput, TOutput, TNewDeps, TMeta, TTags, TMiddleware>;
|
|
13
|
+
middleware<TNewMw extends TaskMiddlewareAttachmentType[]>(mw: TNewMw, options?: {
|
|
14
|
+
override?: boolean;
|
|
15
|
+
}): TaskFluentBuilder<TInput, TOutput, TDeps, TMeta, TTags, TNewMw>;
|
|
16
|
+
tags<TNewTags extends TagType[]>(t: TNewTags, options?: {
|
|
17
|
+
override?: false;
|
|
18
|
+
}): TaskFluentBuilder<TInput, TOutput, TDeps, TMeta, [
|
|
19
|
+
...TTags,
|
|
20
|
+
...TNewTags
|
|
21
|
+
], TMiddleware>;
|
|
22
|
+
tags<TNewTags extends TagType[]>(t: TNewTags, options: {
|
|
23
|
+
override: true;
|
|
24
|
+
}): TaskFluentBuilder<TInput, TOutput, TDeps, TMeta, TNewTags, TMiddleware>;
|
|
25
|
+
inputSchema<TNewInput>(schema: IValidationSchema<TNewInput>): TaskFluentBuilder<TNewInput, TOutput, TDeps, TMeta, TTags, TMiddleware>;
|
|
26
|
+
resultSchema<TResolved>(schema: IValidationSchema<TResolved>): TaskFluentBuilder<TInput, Promise<TResolved>, TDeps, TMeta, TTags, TMiddleware>;
|
|
27
|
+
run<TNewInput = TInput, TNewOutput extends Promise<any> = TOutput>(fn: NonNullable<ITaskDefinition<ResolveInput<TInput, TNewInput>, TNewOutput, TDeps, TMeta, TTags, TMiddleware>["run"]>): TaskFluentBuilder<ResolveInput<TInput, TNewInput>, TNewOutput, TDeps, TMeta, TTags, TMiddleware>;
|
|
28
|
+
meta<TNewMeta extends ITaskMeta>(m: TNewMeta): TaskFluentBuilder<TInput, TOutput, TDeps, TNewMeta, TTags, TMiddleware>;
|
|
29
|
+
build(): ITask<TInput, TOutput, TDeps, TMeta, TTags, TMiddleware>;
|
|
30
|
+
}
|
|
31
|
+
export declare function taskBuilder(id: string): TaskFluentBuilder<undefined, Promise<any>, {}, ITaskMeta, TagType[], TaskMiddlewareAttachmentType[]>;
|
|
32
|
+
export interface TaskBuilderWithPhantom {
|
|
33
|
+
(id: string): TaskFluentBuilder<undefined, Promise<any>, {}, ITaskMeta, TagType[], TaskMiddlewareAttachmentType[]>;
|
|
34
|
+
phantom: <TInput = undefined, TResolved = any>(id: string) => PhantomTaskFluentBuilder<TInput, TResolved, {}, ITaskMeta, TagType[], TaskMiddlewareAttachmentType[]>;
|
|
35
|
+
}
|
|
36
|
+
export declare const task: TaskBuilderWithPhantom;
|
|
37
|
+
export {};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { DependencyMapType, ITaskMeta, IValidationSchema, TagType, TaskMiddlewareAttachmentType, IPhantomTask } from "../../defs";
|
|
2
|
+
export interface PhantomTaskFluentBuilder<TInput = undefined, TResolved = any, TDeps extends DependencyMapType = {}, TMeta extends ITaskMeta = ITaskMeta, TTags extends TagType[] = TagType[], TMiddleware extends TaskMiddlewareAttachmentType[] = TaskMiddlewareAttachmentType[]> {
|
|
3
|
+
id: string;
|
|
4
|
+
dependencies<TNewDeps extends DependencyMapType>(deps: TNewDeps | (() => TNewDeps), options?: {
|
|
5
|
+
override?: false;
|
|
6
|
+
}): PhantomTaskFluentBuilder<TInput, TResolved, TDeps & TNewDeps, TMeta, TTags, TMiddleware>;
|
|
7
|
+
dependencies<TNewDeps extends DependencyMapType>(deps: TNewDeps | (() => TNewDeps), options: {
|
|
8
|
+
override: true;
|
|
9
|
+
}): PhantomTaskFluentBuilder<TInput, TResolved, TNewDeps, TMeta, TTags, TMiddleware>;
|
|
10
|
+
middleware<TNewMw extends TaskMiddlewareAttachmentType[]>(mw: TNewMw, options?: {
|
|
11
|
+
override?: boolean;
|
|
12
|
+
}): PhantomTaskFluentBuilder<TInput, TResolved, TDeps, TMeta, TTags, TNewMw>;
|
|
13
|
+
tags<TNewTags extends TagType[]>(t: TNewTags, options?: {
|
|
14
|
+
override?: false;
|
|
15
|
+
}): PhantomTaskFluentBuilder<TInput, TResolved, TDeps, TMeta, [
|
|
16
|
+
...TTags,
|
|
17
|
+
...TNewTags
|
|
18
|
+
], TMiddleware>;
|
|
19
|
+
tags<TNewTags extends TagType[]>(t: TNewTags, options: {
|
|
20
|
+
override: true;
|
|
21
|
+
}): PhantomTaskFluentBuilder<TInput, TResolved, TDeps, TMeta, TNewTags, TMiddleware>;
|
|
22
|
+
inputSchema<TNewInput>(schema: IValidationSchema<TNewInput>): PhantomTaskFluentBuilder<TNewInput, TResolved, TDeps, TMeta, TTags, TMiddleware>;
|
|
23
|
+
resultSchema<TNewResolved>(schema: IValidationSchema<TNewResolved>): PhantomTaskFluentBuilder<TInput, TNewResolved, TDeps, TMeta, TTags, TMiddleware>;
|
|
24
|
+
meta<TNewMeta extends ITaskMeta>(m: TNewMeta): PhantomTaskFluentBuilder<TInput, TResolved, TDeps, TNewMeta, TTags, TMiddleware>;
|
|
25
|
+
build(): IPhantomTask<TInput, TResolved, TDeps, TMeta, TTags, TMiddleware>;
|
|
26
|
+
}
|
|
27
|
+
export declare function phantomTaskBuilder<TInput = undefined, TResolved = any>(id: string): PhantomTaskFluentBuilder<TInput, TResolved, {}, ITaskMeta, TagType[], TaskMiddlewareAttachmentType[]>;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { DependencyMapType } from "../../defs";
|
|
2
|
+
export declare function cloneState<S, NS>(s: S, patch: Partial<NS>): NS;
|
|
3
|
+
export declare function mergeArray<T>(existing: ReadonlyArray<T> | undefined, addition: ReadonlyArray<T>, override: boolean): T[];
|
|
4
|
+
export declare function mergeDepsNoConfig<TExisting extends DependencyMapType, TNew extends DependencyMapType>(existing: TExisting | (() => TExisting) | undefined, addition: TNew | (() => TNew), override: boolean): (TExisting & TNew) | (() => TExisting & TNew);
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { DependencyMapType, IEventDefinition, ITaskMeta, IHook, IHookDefinition } from "../defs";
|
|
2
|
+
/**
|
|
3
|
+
* Define a hook (event listeners).
|
|
4
|
+
* Same shape as task with mandatory `on` and without `middleware`.
|
|
5
|
+
*/
|
|
6
|
+
export declare function defineHook<D extends DependencyMapType = any, TOn extends "*" | IEventDefinition<any> | readonly IEventDefinition<any>[] = any, TMeta extends ITaskMeta = any>(hookDef: IHookDefinition<D, TOn, TMeta>): IHook<D, TOn, TMeta>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ITask, IResource, ITaskMiddleware, IResourceMiddleware, IHook } from "../defs";
|
|
2
|
+
/**
|
|
3
|
+
* Override helper that preserves the original `id` and returns the same type.
|
|
4
|
+
* You can override any property except `id`. The override is shallow-merged over the base.
|
|
5
|
+
*
|
|
6
|
+
* @param base - The base definition to override.
|
|
7
|
+
* @param patch - Properties to override (except `id`).
|
|
8
|
+
* @returns A definition of the same kind with overrides applied.
|
|
9
|
+
*/
|
|
10
|
+
type AnyTask = ITask<any, any, any, any, any, any>;
|
|
11
|
+
type AnyResource = IResource<any, any, any, any, any, any, any>;
|
|
12
|
+
type AnyTaskMiddleware = ITaskMiddleware<any, any, any, any>;
|
|
13
|
+
type AnyResourceMiddleware = IResourceMiddleware<any, any, any, any>;
|
|
14
|
+
type AnyHook = IHook<any, any, any>;
|
|
15
|
+
type OverridePatch<T> = T extends AnyTask ? Omit<Partial<T>, "id"> & Pick<T, "run"> : T extends AnyResource ? Omit<Partial<T>, "id"> & Pick<T, "init"> : T extends AnyTaskMiddleware ? Omit<Partial<T>, "id"> : T extends AnyResourceMiddleware ? Omit<Partial<T>, "id"> & Pick<T, "run"> : T extends AnyHook ? Omit<Partial<T>, "id" | "on"> & Pick<T, "run"> : never;
|
|
16
|
+
export declare function defineOverride<T extends AnyTask | AnyResource | AnyTaskMiddleware | AnyResourceMiddleware | AnyHook>(base: T, patch: OverridePatch<T>): T;
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { IResource, IResourceDefinition, DependencyMapType, IResourceMeta, TagType, ResourceMiddlewareAttachmentType } from "../defs";
|
|
2
|
+
export declare function defineResource<TConfig = void, TValue extends Promise<any> = Promise<any>, TDeps extends DependencyMapType = {}, TPrivate = any, TMeta extends IResourceMeta = any, TTags extends TagType[] = TagType[], TMiddleware extends ResourceMiddlewareAttachmentType[] = ResourceMiddlewareAttachmentType[]>(constConfig: IResourceDefinition<TConfig, TValue, TDeps, TPrivate, any, any, TMeta, TTags, TMiddleware>): IResource<TConfig, TValue, TDeps, TPrivate, TMeta, TTags, TMiddleware>;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { IResourceMiddleware, IResourceMiddlewareDefinition, DependencyMapType } from "../defs";
|
|
2
|
+
export declare function defineResourceMiddleware<TConfig = any, TEnforceInputContract = void, TEnforceOutputContract = void, TDependencies extends DependencyMapType = any>(middlewareDef: IResourceMiddlewareDefinition<TConfig, TEnforceInputContract, TEnforceOutputContract, TDependencies>): IResourceMiddleware<TConfig, TEnforceInputContract, TEnforceOutputContract, TDependencies>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ITag, ITagDefinition } from "../defs";
|
|
2
|
+
/**
|
|
3
|
+
* Create a tag definition.
|
|
4
|
+
* - `.with(config)` to create configured instances
|
|
5
|
+
* - `.extract(tags)` to extract this tag from a list of tags or a taggable's meta
|
|
6
|
+
*
|
|
7
|
+
* @typeParam TConfig - Configuration type carried by configured tags.
|
|
8
|
+
* @typeParam TEnforceContract - Optional helper type to enforce a contract when tags are used.
|
|
9
|
+
* @param definition - The tag definition (id).
|
|
10
|
+
* @returns A tag object with helpers to configure and extract.
|
|
11
|
+
*/
|
|
12
|
+
export declare function defineTag<TConfig = void, TEnforceInputContract = void, TEnforceOutputContract = void>(definition: ITagDefinition<TConfig, TEnforceInputContract, TEnforceOutputContract>): ITag<TConfig, TEnforceInputContract, TEnforceOutputContract>;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ITask, ITaskDefinition, DependencyMapType, ITaskMeta, TagType, TaskMiddlewareAttachmentType, IPhantomTask } from "../defs";
|
|
2
|
+
/**
|
|
3
|
+
* Define a task.
|
|
4
|
+
* Generates a strongly-typed task object with id, dependencies,
|
|
5
|
+
* middleware, and metadata.
|
|
6
|
+
*
|
|
7
|
+
* @typeParam Input - Input type accepted by the task's `run` function.
|
|
8
|
+
* @typeParam Output - Promise type returned by the `run` function.
|
|
9
|
+
* @typeParam Deps - Dependency map type this task requires.
|
|
10
|
+
* @typeParam TOn - Event type or "*" this task listens to.
|
|
11
|
+
* @typeParam TMeta - Arbitrary metadata type carried by the task.
|
|
12
|
+
* @param taskConfig - The task definition config.
|
|
13
|
+
* @returns A branded task definition usable by the runner.
|
|
14
|
+
*/
|
|
15
|
+
export declare function defineTask<Input = undefined, Output extends Promise<any> = any, Deps extends DependencyMapType = any, TMeta extends ITaskMeta = any, TTags extends TagType[] = TagType[], TMiddleware extends TaskMiddlewareAttachmentType[] = TaskMiddlewareAttachmentType[]>(taskConfig: ITaskDefinition<Input, Output, Deps, TMeta, TTags, TMiddleware>): ITask<Input, Output, Deps, TMeta, TTags, TMiddleware>;
|
|
16
|
+
export declare namespace defineTask {
|
|
17
|
+
var phantom: <Input = undefined, Output extends Promise<any> = any>(taskConfig: Omit<ITaskDefinition<Input, Output, any, any, any, any>, "run">) => IPhantomTask<Input, Output, any, any, any, any>;
|
|
18
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { ITaskMiddleware, ITaskMiddlewareDefinition, DependencyMapType } from "../defs";
|
|
2
|
+
export declare function defineTaskMiddleware<TConfig = any, TEnforceInputContract = void, TEnforceOutputContract = void, TDependencies extends DependencyMapType = any>(middlewareDef: ITaskMiddlewareDefinition<TConfig, TEnforceInputContract, TEnforceOutputContract, TDependencies>): ITaskMiddleware<TConfig, TEnforceInputContract, TEnforceOutputContract, TDependencies>;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type guard and utility functions for checking definition types.
|
|
3
|
+
*/
|
|
4
|
+
import { ITask, IResource, IResourceWithConfig, ITaskMiddleware, IResourceMiddleware, IEvent, IHook, IOptionalDependency, ITag, IPhantomTask } from "../defs";
|
|
5
|
+
/**
|
|
6
|
+
* Type guard: checks if a definition is a Task.
|
|
7
|
+
* @param definition - Any value to test.
|
|
8
|
+
* @returns True when `definition` is a branded Task.
|
|
9
|
+
*/
|
|
10
|
+
export declare function isTask(definition: any): definition is ITask;
|
|
11
|
+
/** Type guard: checks if a definition is a Phantom Task. */
|
|
12
|
+
export declare function isPhantomTask(definition: any): definition is IPhantomTask;
|
|
13
|
+
/**
|
|
14
|
+
* Type guard: checks if a definition is a Resource.
|
|
15
|
+
* @param definition - Any value to test.
|
|
16
|
+
* @returns True when `definition` is a branded Resource.
|
|
17
|
+
*/
|
|
18
|
+
export declare function isResource(definition: any): definition is IResource;
|
|
19
|
+
/**
|
|
20
|
+
* Type guard: checks if a definition is a Resource that carries config via `.with()`.
|
|
21
|
+
* @param definition - Any value to test.
|
|
22
|
+
* @returns True when `definition` is a branded ResourceWithConfig.
|
|
23
|
+
*/
|
|
24
|
+
export declare function isResourceWithConfig(definition: any): definition is IResourceWithConfig;
|
|
25
|
+
/**
|
|
26
|
+
* Type guard: checks if a definition is an Event.
|
|
27
|
+
* @param definition - Any value to test.
|
|
28
|
+
* @returns True when `definition` is a branded Event.
|
|
29
|
+
*/
|
|
30
|
+
export declare function isEvent(definition: any): definition is IEvent;
|
|
31
|
+
/** Type guard: checks if a definition is a Hook. */
|
|
32
|
+
export declare function isHook(definition: any): definition is IHook;
|
|
33
|
+
/**
|
|
34
|
+
* Type guard: checks if a definition is a Middleware.
|
|
35
|
+
* @param definition - Any value to test.
|
|
36
|
+
* @returns True when `definition` is a branded Middleware.
|
|
37
|
+
*/
|
|
38
|
+
export declare function isTaskMiddleware(definition: any): definition is ITaskMiddleware;
|
|
39
|
+
export declare function isResourceMiddleware(definition: any): definition is IResourceMiddleware;
|
|
40
|
+
/**
|
|
41
|
+
* Type guard: checks if a definition is a Tag.
|
|
42
|
+
* @param definition - Any value to test.
|
|
43
|
+
* @returns True when `definition` is a branded Tag.
|
|
44
|
+
*/
|
|
45
|
+
export declare function isTag(definition: any): definition is ITag;
|
|
46
|
+
/** Type guard: checks if a definition is an Optional Dependency wrapper. */
|
|
47
|
+
export declare function isOptional(definition: any): definition is IOptionalDependency<any>;
|
package/dist/defs.d.ts
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core public TypeScript types for BlueLibs Runner.
|
|
3
|
+
*
|
|
4
|
+
* This file contains the strongly-typed contract for tasks, resources, events
|
|
5
|
+
* and middleware. It mirrors the mental model described in the README:
|
|
6
|
+
* - Tasks are functions
|
|
7
|
+
* - Resources are singletons (with init/dispose hooks)
|
|
8
|
+
* - Hooks are event listeners without middleware
|
|
9
|
+
* - Events are simple, strongly-typed emissions
|
|
10
|
+
* - Middleware can target both tasks and resources (taskMiddleware, resourceMiddleware)
|
|
11
|
+
*
|
|
12
|
+
* DX goals:
|
|
13
|
+
* - Crystal‑clear generics and helper types that infer dependency shapes
|
|
14
|
+
* - Friendly JSDoc you can hover in editors to understand usage instantly
|
|
15
|
+
* - Safe overrides and strong typing around config and register mechanics
|
|
16
|
+
*/
|
|
17
|
+
export * from "./types/utilities";
|
|
18
|
+
export * from "./types/symbols";
|
|
19
|
+
export * from "./types/tag";
|
|
20
|
+
export * from "./types/hook";
|
|
21
|
+
export * from "./types/resource";
|
|
22
|
+
export * from "./types/event";
|
|
23
|
+
export * from "./types/task";
|
|
24
|
+
export * from "./types/taskMiddleware";
|
|
25
|
+
export * from "./types/resourceMiddleware";
|
|
26
|
+
export * from "./types/meta";
|
|
27
|
+
export * from "./types/runner";
|
|
28
|
+
export { ICacheInstance } from "./globals/middleware/cache.middleware";
|
|
29
|
+
export * from "./types/storeTypes";
|