better-effect 0.3.0 → 0.5.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 +167 -486
- package/dist/adapters/iti.d.mts +11 -3
- package/dist/adapters/iti.d.mts.map +1 -1
- package/dist/adapters/iti.mjs +34 -14
- package/dist/adapters/iti.mjs.map +1 -1
- package/dist/errors-GR3K_nRu.mjs +74 -0
- package/dist/errors-GR3K_nRu.mjs.map +1 -0
- package/dist/index-D77AvuBl.d.mts +510 -0
- package/dist/index-D77AvuBl.d.mts.map +1 -0
- package/dist/index.d.mts +263 -13
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +444 -106
- package/dist/index.mjs.map +1 -1
- package/dist/internal-identity-BnZC3Au-.mjs +26 -0
- package/dist/internal-identity-BnZC3Au-.mjs.map +1 -0
- package/dist/testing.d.mts +11 -2
- package/dist/testing.d.mts.map +1 -1
- package/dist/testing.mjs +33 -12
- package/dist/testing.mjs.map +1 -1
- package/package.json +6 -9
- package/dist/errors-CnvKqBpb.mjs +0 -63
- package/dist/errors-CnvKqBpb.mjs.map +0 -1
- package/dist/index-Bg6ofRE1.d.mts +0 -232
- package/dist/index-Bg6ofRE1.d.mts.map +0 -1
|
@@ -1,232 +0,0 @@
|
|
|
1
|
-
import { Err, InferErr, InferOk, Result } from "better-result";
|
|
2
|
-
//#region src/service/types.d.ts
|
|
3
|
-
type ServiceToken<A = unknown> = (abstract new (...args: any[]) => A) & {
|
|
4
|
-
readonly name: string;
|
|
5
|
-
};
|
|
6
|
-
type AnyServiceToken = ServiceToken<any>;
|
|
7
|
-
type ServiceClass<A = unknown> = (new (...args: any[]) => A) & {
|
|
8
|
-
readonly name: string;
|
|
9
|
-
};
|
|
10
|
-
type ServiceInstance<T extends AnyServiceToken> = InstanceType<T>;
|
|
11
|
-
type MethodRequirements<T> = { [K in keyof T]: T[K] extends ((...args: any[]) => infer Return) ? EffectRequirements<Return> : never; }[keyof T];
|
|
12
|
-
/** Services required by the Effect-returning methods of a Service class. */
|
|
13
|
-
type ServiceRequirements<T extends AnyServiceToken> = MethodRequirements<InstanceType<T>>;
|
|
14
|
-
//#endregion
|
|
15
|
-
//#region src/effect/types.d.ts
|
|
16
|
-
/**
|
|
17
|
-
* Type-only identity for a Service requirement yielded by a generator.
|
|
18
|
-
*
|
|
19
|
-
* The declaration has no runtime value. Service iterators return their
|
|
20
|
-
* resolved instances without yielding a marker at runtime.
|
|
21
|
-
*/
|
|
22
|
-
declare const ServiceRequirementTypeId: unique symbol;
|
|
23
|
-
/** Type-only identity for requirement metadata attached to Effect results. */
|
|
24
|
-
declare const EffectRequirementsTypeId: unique symbol;
|
|
25
|
-
/**
|
|
26
|
-
* Metadata carried by the yield type of a Service token.
|
|
27
|
-
*
|
|
28
|
-
* This interface is intentionally phantom: it is used only while TypeScript
|
|
29
|
-
* infers a generator's yielded values.
|
|
30
|
-
*/
|
|
31
|
-
interface ServiceRequirement<T extends AnyServiceToken> {
|
|
32
|
-
readonly [ServiceRequirementTypeId]: T;
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* A better-result Result with phantom metadata for required Services.
|
|
36
|
-
*/
|
|
37
|
-
type EffectResult<A, E, Requirements = never> = Result<A, E> & {
|
|
38
|
-
readonly [EffectRequirementsTypeId]?: Requirements;
|
|
39
|
-
};
|
|
40
|
-
type AnyEffectResult = EffectResult<unknown, unknown, any>;
|
|
41
|
-
/** Values that an Effect generator may yield. */
|
|
42
|
-
type EffectYield = Err<never, unknown> | ServiceRequirement<AnyServiceToken>;
|
|
43
|
-
/** Extract the error channel from Result values yielded by a generator. */
|
|
44
|
-
type InferYieldError<Y> = Y extends Err<never, infer E> ? E : never;
|
|
45
|
-
/** Extract Service tokens carried by yielded Service requirements. */
|
|
46
|
-
type InferYieldRequirements<Y> = Y extends ServiceRequirement<infer Requirement> ? Requirement : never;
|
|
47
|
-
type InferEffectRequirements<T> = T extends unknown ? typeof EffectRequirementsTypeId extends keyof T ? T extends {
|
|
48
|
-
readonly [EffectRequirementsTypeId]?: infer Requirements;
|
|
49
|
-
} ? Requirements : never : never : never;
|
|
50
|
-
/** Extract phantom Service requirements from an Effect result or Promise. */
|
|
51
|
-
type EffectRequirements<T> = InferEffectRequirements<Awaited<T>>;
|
|
52
|
-
/** Extract the success value from an Effect result or Promise. */
|
|
53
|
-
type EffectSuccess<T> = Awaited<T> extends Result<infer A, unknown> ? A : never;
|
|
54
|
-
/** Extract the error value from an Effect result or Promise. */
|
|
55
|
-
type EffectError<T> = Awaited<T> extends Result<unknown, infer E> ? E : never;
|
|
56
|
-
/** Build the public result type produced from an Effect generator. */
|
|
57
|
-
type EffectFromGenerator<Yield, Returned extends Result<any, any>> = EffectResult<InferOk<Returned>, InferYieldError<Yield> | InferErr<Returned>, InferYieldRequirements<Yield> | EffectRequirements<Returned>>;
|
|
58
|
-
//#endregion
|
|
59
|
-
//#region src/service/service.d.ts
|
|
60
|
-
declare function Service<Self>(): {
|
|
61
|
-
new (): {};
|
|
62
|
-
[Symbol.asyncIterator](this: ServiceToken<Self>): AsyncGenerator<ServiceRequirement<ServiceToken<Self>>, Self, unknown>;
|
|
63
|
-
};
|
|
64
|
-
//#endregion
|
|
65
|
-
//#region src/service/runtime.d.ts
|
|
66
|
-
interface ServiceResolver {
|
|
67
|
-
resolve<T extends AnyServiceToken>(token: T): InstanceType<T> | PromiseLike<InstanceType<T>>;
|
|
68
|
-
}
|
|
69
|
-
declare class ServiceRuntime {
|
|
70
|
-
static run<A>(resolver: ServiceResolver, program: () => A): A;
|
|
71
|
-
static current(): ServiceResolver;
|
|
72
|
-
static resolve<T extends AnyServiceToken>(token: T): Promise<InstanceType<T>>;
|
|
73
|
-
}
|
|
74
|
-
//#endregion
|
|
75
|
-
//#region src/service/errors.d.ts
|
|
76
|
-
declare class ServiceRuntimeNotConfiguredError extends Error {
|
|
77
|
-
constructor();
|
|
78
|
-
}
|
|
79
|
-
declare class ServiceNotFoundError extends Error {
|
|
80
|
-
readonly service: AnyServiceToken;
|
|
81
|
-
constructor(service: AnyServiceToken);
|
|
82
|
-
}
|
|
83
|
-
//#endregion
|
|
84
|
-
//#region src/scope/errors.d.ts
|
|
85
|
-
declare class ScopeRuntimeNotConfiguredError extends Error {
|
|
86
|
-
constructor();
|
|
87
|
-
}
|
|
88
|
-
declare class ScopeClosedError extends Error {
|
|
89
|
-
constructor();
|
|
90
|
-
}
|
|
91
|
-
declare class ScopeCloseError extends Error {
|
|
92
|
-
readonly causes: readonly unknown[];
|
|
93
|
-
constructor(causes: readonly unknown[]);
|
|
94
|
-
}
|
|
95
|
-
declare class ResourceNotDisposableError extends Error {
|
|
96
|
-
constructor();
|
|
97
|
-
}
|
|
98
|
-
//#endregion
|
|
99
|
-
//#region src/scope/types.d.ts
|
|
100
|
-
type MaybePromise$1<T> = T | PromiseLike<T>;
|
|
101
|
-
type ScopeOutcome = {
|
|
102
|
-
readonly status: 'success';
|
|
103
|
-
} | {
|
|
104
|
-
readonly status: 'failure';
|
|
105
|
-
readonly cause: unknown;
|
|
106
|
-
};
|
|
107
|
-
type ScopeFinalizer = (outcome: ScopeOutcome) => MaybePromise$1<void>;
|
|
108
|
-
type CleanupFailureDiagnostic = {
|
|
109
|
-
readonly outcome: ScopeOutcome;
|
|
110
|
-
readonly error: ScopeCloseError;
|
|
111
|
-
};
|
|
112
|
-
type SyncDisposableResource = {
|
|
113
|
-
[Symbol.dispose]: () => void;
|
|
114
|
-
[Symbol.asyncDispose]?: () => MaybePromise$1<void>;
|
|
115
|
-
};
|
|
116
|
-
type AsyncDisposableResource = {
|
|
117
|
-
[Symbol.dispose]?: () => void;
|
|
118
|
-
[Symbol.asyncDispose]: () => MaybePromise$1<void>;
|
|
119
|
-
};
|
|
120
|
-
type DisposableResource = SyncDisposableResource | AsyncDisposableResource;
|
|
121
|
-
//#endregion
|
|
122
|
-
//#region src/utils/types.d.ts
|
|
123
|
-
type MaybePromise<T> = T | PromiseLike<T>;
|
|
124
|
-
//#endregion
|
|
125
|
-
//#region src/layer/types.d.ts
|
|
126
|
-
interface LayerProvider {
|
|
127
|
-
readonly service: ServiceClass<any>;
|
|
128
|
-
readonly acquire: () => MaybePromise<unknown>;
|
|
129
|
-
readonly release?: (instance: unknown, outcome: ScopeOutcome) => MaybePromise<void>;
|
|
130
|
-
}
|
|
131
|
-
type LayerSpec<Provided extends AnyServiceToken, Required extends AnyServiceToken = never> = {
|
|
132
|
-
readonly provided: Provided;
|
|
133
|
-
readonly required: Required;
|
|
134
|
-
};
|
|
135
|
-
type AnyLayerSpec = LayerSpec<AnyServiceToken, AnyServiceToken>;
|
|
136
|
-
type LayerGenerator<S extends ServiceClass<any>, Yield extends ServiceRequirement<AnyServiceToken> = ServiceRequirement<AnyServiceToken>> = () => AsyncGenerator<Yield, InstanceType<S>, unknown>;
|
|
137
|
-
type LayerGeneratorRequirements<S extends ServiceClass<any>, Yield extends ServiceRequirement<AnyServiceToken>> = ServiceRequirements<S> | InferYieldRequirements<Yield>;
|
|
138
|
-
//#endregion
|
|
139
|
-
//#region src/layer/inference.d.ts
|
|
140
|
-
type AnyLayer = Layer<any>;
|
|
141
|
-
type LayerSpecs<L extends AnyLayer> = L extends Layer<infer Specs> ? Specs : never;
|
|
142
|
-
type LayerProvided<L extends AnyLayer> = LayerSpecs<L> extends LayerSpec<infer Provided, any> ? Provided : never;
|
|
143
|
-
type LayerRawRequired<L extends AnyLayer> = LayerSpecs<L> extends LayerSpec<any, infer Required> ? Required : never;
|
|
144
|
-
type LayerSpecProvided<Specs extends AnyLayerSpec> = Specs extends LayerSpec<infer Provided, any> ? Provided : never;
|
|
145
|
-
type SameServiceToken<Left extends AnyServiceToken, Right extends AnyServiceToken> = [Left] extends [Right] ? [Right] extends [Left] ? true : false : false;
|
|
146
|
-
type IsOverridden<Provided extends AnyServiceToken, Replacements extends AnyServiceToken> = Replacements extends AnyServiceToken ? SameServiceToken<Provided, Replacements> : false;
|
|
147
|
-
type RemoveOverriddenSpecs<Specs extends AnyLayerSpec, Replacements extends AnyServiceToken> = Specs extends LayerSpec<infer Provided, any> ? true extends IsOverridden<Provided, Replacements> ? never : Specs : never;
|
|
148
|
-
type ReplaceLayerSpecs<Current extends AnyLayerSpec, Replacement extends AnyLayerSpec> = RemoveOverriddenSpecs<Current, LayerSpecProvided<Replacement>> | Replacement;
|
|
149
|
-
type OverrideLayerSpecs<Current extends AnyLayerSpec, Overrides extends readonly AnyLayer[]> = Overrides extends readonly [infer Head extends AnyLayer, ...infer Tail extends readonly AnyLayer[]] ? OverrideLayerSpecs<ReplaceLayerSpecs<Current, LayerSpecs<Head>>, Tail> : Current;
|
|
150
|
-
type RequirementProvided<Requirement extends AnyServiceToken, Provided extends AnyServiceToken> = Provided extends AnyServiceToken ? Provided extends (abstract new (...args: any[]) => InstanceType<Requirement>) ? true : false : false;
|
|
151
|
-
type MissingRequirement<Requirement extends AnyServiceToken, Provided extends AnyServiceToken> = true extends RequirementProvided<Requirement, Provided> ? never : Requirement;
|
|
152
|
-
/** Service tokens from `Required` that are not supplied by `Provided`. */
|
|
153
|
-
type MissingServices<Required, Provided extends AnyServiceToken> = Required extends AnyServiceToken ? MissingRequirement<Required, Provided> : never;
|
|
154
|
-
type LayerMissing<L extends AnyLayer> = MissingServices<LayerRawRequired<L>, LayerProvided<L>>;
|
|
155
|
-
type MissingLayerServices<Missing extends AnyServiceToken> = {
|
|
156
|
-
readonly __betterEffectMissingServices: Missing;
|
|
157
|
-
};
|
|
158
|
-
type CompleteLayer<L extends AnyLayer> = [LayerMissing<L>] extends [never] ? L : L & MissingLayerServices<LayerMissing<L>>;
|
|
159
|
-
/** Services required by an execution result that are not in its environment. */
|
|
160
|
-
type ExecutionMissing<Provided extends AnyServiceToken, ProgramResult> = MissingServices<EffectRequirements<ProgramResult>, Provided>;
|
|
161
|
-
/** Named diagnostic contract for an execution with unavailable Services. */
|
|
162
|
-
type MissingRuntimeServices<Missing extends AnyServiceToken> = {
|
|
163
|
-
readonly __betterEffectMissingRuntimeServices: Missing;
|
|
164
|
-
};
|
|
165
|
-
type ExecutionProgram<A> = () => A | PromiseLike<A>;
|
|
166
|
-
/** Keep execution callbacks unchanged when their Effect requirements are met. */
|
|
167
|
-
type CompleteExecution<Provided extends AnyServiceToken, A> = [ExecutionMissing<Provided, A>] extends [never] ? ExecutionProgram<A> : ExecutionProgram<A> & MissingRuntimeServices<ExecutionMissing<Provided, A>>;
|
|
168
|
-
//#endregion
|
|
169
|
-
//#region src/layer/layer.d.ts
|
|
170
|
-
declare const LayerTypeId: unique symbol;
|
|
171
|
-
declare class Layer<Specs extends AnyLayerSpec = AnyLayerSpec> {
|
|
172
|
-
readonly [LayerTypeId]: Specs;
|
|
173
|
-
readonly providers: readonly LayerProvider[];
|
|
174
|
-
private constructor();
|
|
175
|
-
static make<S extends ServiceClass<any>>(service: S, acquire: () => MaybePromise<InstanceType<S>>): Layer<LayerSpec<S, ServiceRequirements<S>>>;
|
|
176
|
-
static succeed<S extends ServiceClass<any>>(service: S, instance: InstanceType<S>): Layer<LayerSpec<S, ServiceRequirements<S>>>;
|
|
177
|
-
static scoped<S extends ServiceClass<any>>(service: S, acquire: () => MaybePromise<InstanceType<S>>, release: (instance: InstanceType<S>) => MaybePromise<void>): Layer<LayerSpec<S, ServiceRequirements<S>>>;
|
|
178
|
-
static scopedGen<S extends ServiceClass<any>, Yield extends ServiceRequirement<AnyServiceToken>>(service: S, factory: LayerGenerator<S, Yield>, release: (instance: InstanceType<S>, outcome: ScopeOutcome) => MaybePromise<void>): Layer<LayerSpec<S, LayerGeneratorRequirements<S, Yield>>>;
|
|
179
|
-
static gen<S extends ServiceClass<any>, Yield extends ServiceRequirement<AnyServiceToken>>(service: S, factory: LayerGenerator<S, Yield>): Layer<LayerSpec<S, LayerGeneratorRequirements<S, Yield>>>;
|
|
180
|
-
static merge<const Layers extends readonly Layer<any>[]>(...layers: Layers): Layer<Layers[number] extends Layer<infer Specs> ? Specs : never>;
|
|
181
|
-
static override<Base extends Layer<any>, const Overrides extends readonly Layer<any>[]>(base: Base, ...overrides: Overrides): Layer<OverrideLayerSpecs<Base extends Layer<infer Specs> ? Specs : never, Overrides>>;
|
|
182
|
-
}
|
|
183
|
-
//#endregion
|
|
184
|
-
//#region src/layer/errors.d.ts
|
|
185
|
-
declare class DuplicateServiceError extends Error {
|
|
186
|
-
readonly service: ServiceClass<any>;
|
|
187
|
-
constructor(service: ServiceClass<any>);
|
|
188
|
-
}
|
|
189
|
-
declare class LayerRegistrationError extends Error {
|
|
190
|
-
readonly service: ServiceClass<any> | undefined;
|
|
191
|
-
readonly registrationCause: unknown;
|
|
192
|
-
readonly cleanupCause?: unknown;
|
|
193
|
-
constructor(service: ServiceClass<any> | undefined, registrationCause: unknown, cleanupCause?: unknown);
|
|
194
|
-
}
|
|
195
|
-
declare class LayerDisposeError extends Error {
|
|
196
|
-
readonly causes: readonly unknown[];
|
|
197
|
-
constructor(causes: readonly unknown[]);
|
|
198
|
-
}
|
|
199
|
-
declare class LayerGeneratorYieldError extends Error {
|
|
200
|
-
readonly service: ServiceClass<any>;
|
|
201
|
-
constructor(service: ServiceClass<any>);
|
|
202
|
-
}
|
|
203
|
-
declare class BuiltLayerDisposedError extends Error {
|
|
204
|
-
constructor();
|
|
205
|
-
}
|
|
206
|
-
//#endregion
|
|
207
|
-
//#region src/runtime/outcome.d.ts
|
|
208
|
-
type RuntimeShutdownDiagnostic = {
|
|
209
|
-
readonly outcome: ScopeOutcome;
|
|
210
|
-
readonly error: LayerDisposeError;
|
|
211
|
-
};
|
|
212
|
-
type CleanupFailureObserver = (diagnostic: CleanupFailureDiagnostic | RuntimeShutdownDiagnostic) => MaybePromise$1<void>;
|
|
213
|
-
type RuntimeOptions = {
|
|
214
|
-
readonly onCleanupFailure?: CleanupFailureObserver;
|
|
215
|
-
};
|
|
216
|
-
//#endregion
|
|
217
|
-
//#region src/layer/backend.d.ts
|
|
218
|
-
interface LayerBackend extends ServiceResolver {
|
|
219
|
-
register(provider: LayerProvider): void | PromiseLike<void>;
|
|
220
|
-
disposeAll(): void | PromiseLike<void>;
|
|
221
|
-
}
|
|
222
|
-
//#endregion
|
|
223
|
-
//#region src/layer/runtime.d.ts
|
|
224
|
-
interface BuiltLayer<Provided extends AnyServiceToken = AnyServiceToken> {
|
|
225
|
-
readonly backend: LayerBackend;
|
|
226
|
-
run<A>(program: CompleteExecution<Provided, A>): Promise<Awaited<A>>;
|
|
227
|
-
dispose(outcome?: ScopeOutcome): Promise<void>;
|
|
228
|
-
}
|
|
229
|
-
declare const buildLayer: <L extends AnyLayer>(layer: CompleteLayer<L>, backend: LayerBackend, options?: RuntimeOptions) => Promise<BuiltLayer<LayerProvided<L>>>;
|
|
230
|
-
//#endregion
|
|
231
|
-
export { ServiceNotFoundError as A, EffectSuccess as B, MaybePromise$1 as C, ScopeCloseError as D, ResourceNotDisposableError as E, AnyEffectResult as F, ServiceInstance as G, ServiceRequirement as H, EffectError as I, ServiceRequirements as K, EffectFromGenerator as L, ServiceResolver as M, ServiceRuntime as N, ScopeClosedError as O, Service as P, EffectRequirements as R, DisposableResource as S, ScopeOutcome as T, AnyServiceToken as U, EffectYield as V, ServiceClass as W, LayerProvided as _, RuntimeOptions as a, LayerProvider as b, DuplicateServiceError as c, LayerRegistrationError as d, Layer as f, LayerMissing as g, CompleteLayer as h, CleanupFailureObserver as i, ServiceRuntimeNotConfiguredError as j, ScopeRuntimeNotConfiguredError as k, LayerDisposeError as l, CompleteExecution as m, buildLayer as n, RuntimeShutdownDiagnostic as o, AnyLayer as p, ServiceToken as q, LayerBackend as r, BuiltLayerDisposedError as s, BuiltLayer as t, LayerGeneratorYieldError as u, LayerRawRequired as v, ScopeFinalizer as w, CleanupFailureDiagnostic as x, LayerSpecs as y, EffectResult as z };
|
|
232
|
-
//# sourceMappingURL=index-Bg6ofRE1.d.mts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-Bg6ofRE1.d.mts","names":[],"sources":["../src/service/types.ts","../src/effect/types.ts","../src/service/service.ts","../src/service/runtime.ts","../src/service/errors.ts","../src/scope/errors.ts","../src/scope/types.ts","../src/utils/types.ts","../src/layer/types.ts","../src/layer/inference.ts","../src/layer/layer.ts","../src/layer/errors.ts","../src/runtime/outcome.ts","../src/layer/backend.ts","../src/layer/runtime.ts"],"mappings":"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"}
|