better-effect 0.4.0 → 0.6.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.
@@ -1,67 +0,0 @@
1
- //#region src/service/errors.ts
2
- var ServiceRuntimeNotConfiguredError = class extends Error {
3
- constructor() {
4
- super("No ServiceResolver is available in the current runtime context");
5
- this.name = "ServiceRuntimeNotConfiguredError";
6
- }
7
- };
8
- var ServiceNotFoundError = class extends Error {
9
- service;
10
- constructor(service) {
11
- super(`Service "${service.name}" was not provided`);
12
- this.service = service;
13
- this.name = "ServiceNotFoundError";
14
- }
15
- };
16
- //#endregion
17
- //#region src/layer/errors.ts
18
- var DuplicateServiceError = class extends Error {
19
- service;
20
- constructor(service) {
21
- super(`Duplicate service "${service.name}"`);
22
- this.service = service;
23
- this.name = "DuplicateServiceError";
24
- }
25
- };
26
- var LayerRegistrationError = class extends Error {
27
- service;
28
- registrationCause;
29
- cleanupCause;
30
- constructor(service, registrationCause, cleanupCause) {
31
- super(service ? `Failed to register service "${service.name}"` : "Failed to build Layer", { cause: registrationCause });
32
- this.service = service;
33
- this.registrationCause = registrationCause;
34
- this.cleanupCause = cleanupCause;
35
- this.name = "LayerRegistrationError";
36
- }
37
- };
38
- var LayerDisposeError = class extends Error {
39
- causes;
40
- constructor(causes) {
41
- super(`Failed to dispose Layer (${causes.length} error${causes.length === 1 ? "" : "s"})`);
42
- this.causes = causes;
43
- this.name = "LayerDisposeError";
44
- }
45
- };
46
- var LayerGeneratorYieldError = class extends Error {
47
- service;
48
- constructor(service) {
49
- super(`Layer.gen("${service.name}") yielded an unsupported value`);
50
- this.service = service;
51
- this.name = "LayerGeneratorYieldError";
52
- }
53
- };
54
- /**
55
- * @deprecated The public managed handle is `Runtime`; this error remains for
56
- * compatibility with low-level Layer integrations.
57
- */
58
- var BuiltLayerDisposedError = class extends Error {
59
- constructor() {
60
- super("Cannot run a program using a disposed Layer");
61
- this.name = "BuiltLayerDisposedError";
62
- }
63
- };
64
- //#endregion
65
- export { LayerRegistrationError as a, LayerGeneratorYieldError as i, DuplicateServiceError as n, ServiceNotFoundError as o, LayerDisposeError as r, ServiceRuntimeNotConfiguredError as s, BuiltLayerDisposedError as t };
66
-
67
- //# sourceMappingURL=errors-DlHCwICc.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors-DlHCwICc.mjs","names":[],"sources":["../src/service/errors.ts","../src/layer/errors.ts"],"sourcesContent":["import type { AnyServiceToken } from './types'\n\nexport class ServiceRuntimeNotConfiguredError extends Error {\n constructor() {\n super('No ServiceResolver is available in the current runtime context')\n\n this.name = 'ServiceRuntimeNotConfiguredError'\n }\n}\n\nexport class ServiceNotFoundError extends Error {\n constructor(readonly service: AnyServiceToken) {\n super(`Service \"${service.name}\" was not provided`)\n\n this.name = 'ServiceNotFoundError'\n }\n}\n","import type { ServiceClass } from '../service'\n\nexport class DuplicateServiceError extends Error {\n constructor(readonly service: ServiceClass<any>) {\n super(`Duplicate service \"${service.name}\"`)\n\n this.name = 'DuplicateServiceError'\n }\n}\n\nexport class LayerRegistrationError extends Error {\n constructor(\n readonly service: ServiceClass<any> | undefined,\n readonly registrationCause: unknown,\n readonly cleanupCause?: unknown\n ) {\n super(service ? `Failed to register service \"${service.name}\"` : 'Failed to build Layer', {\n cause: registrationCause\n })\n\n this.name = 'LayerRegistrationError'\n }\n}\n\nexport class LayerDisposeError extends Error {\n constructor(readonly causes: readonly unknown[]) {\n super(`Failed to dispose Layer (${causes.length} error${causes.length === 1 ? '' : 's'})`)\n\n this.name = 'LayerDisposeError'\n }\n}\n\nexport class LayerGeneratorYieldError extends Error {\n constructor(readonly service: ServiceClass<any>) {\n super(`Layer.gen(\"${service.name}\") yielded an unsupported value`)\n\n this.name = 'LayerGeneratorYieldError'\n }\n}\n\n/**\n * @deprecated The public managed handle is `Runtime`; this error remains for\n * compatibility with low-level Layer integrations.\n */\nexport class BuiltLayerDisposedError extends Error {\n constructor() {\n super('Cannot run a program using a disposed Layer')\n\n this.name = 'BuiltLayerDisposedError'\n }\n}\n"],"mappings":";AAEA,IAAa,mCAAb,cAAsD,MAAM;CAC1D,cAAc;EACZ,MAAM,gEAAgE;EAEtE,KAAK,OAAO;CACd;AACF;AAEA,IAAa,uBAAb,cAA0C,MAAM;CACzB;CAArB,YAAY,SAAmC;EAC7C,MAAM,YAAY,QAAQ,KAAK,mBAAmB;EAD/B,KAAA,UAAA;EAGnB,KAAK,OAAO;CACd;AACF;;;ACdA,IAAa,wBAAb,cAA2C,MAAM;CAC1B;CAArB,YAAY,SAAqC;EAC/C,MAAM,sBAAsB,QAAQ,KAAK,EAAE;EADxB,KAAA,UAAA;EAGnB,KAAK,OAAO;CACd;AACF;AAEA,IAAa,yBAAb,cAA4C,MAAM;CAErC;CACA;CACA;CAHX,YACE,SACA,mBACA,cACA;EACA,MAAM,UAAU,+BAA+B,QAAQ,KAAK,KAAK,yBAAyB,EACxF,OAAO,kBACT,CAAC;EANQ,KAAA,UAAA;EACA,KAAA,oBAAA;EACA,KAAA,eAAA;EAMT,KAAK,OAAO;CACd;AACF;AAEA,IAAa,oBAAb,cAAuC,MAAM;CACtB;CAArB,YAAY,QAAqC;EAC/C,MAAM,4BAA4B,OAAO,OAAO,QAAQ,OAAO,WAAW,IAAI,KAAK,IAAI,EAAE;EADtE,KAAA,SAAA;EAGnB,KAAK,OAAO;CACd;AACF;AAEA,IAAa,2BAAb,cAA8C,MAAM;CAC7B;CAArB,YAAY,SAAqC;EAC/C,MAAM,cAAc,QAAQ,KAAK,gCAAgC;EAD9C,KAAA,UAAA;EAGnB,KAAK,OAAO;CACd;AACF;;;;;AAMA,IAAa,0BAAb,cAA6C,MAAM;CACjD,cAAc;EACZ,MAAM,6CAA6C;EAEnD,KAAK,OAAO;CACd;AACF"}
@@ -1,235 +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
- /**
178
- * Define a dependency-free provider with Runtime-root cleanup.
179
- *
180
- * The release callback intentionally keeps its compatibility-friendly
181
- * one-argument shape. Use `scopedGen` when cleanup needs `ScopeOutcome`.
182
- */
183
- static scoped<S extends ServiceClass<any>>(service: S, acquire: () => MaybePromise<InstanceType<S>>, release: (instance: InstanceType<S>) => MaybePromise<void>): Layer<LayerSpec<S, ServiceRequirements<S>>>;
184
- /** Define a contextual provider with Runtime-root, outcome-aware cleanup. */
185
- 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>>>;
186
- static gen<S extends ServiceClass<any>, Yield extends ServiceRequirement<AnyServiceToken>>(service: S, factory: LayerGenerator<S, Yield>): Layer<LayerSpec<S, LayerGeneratorRequirements<S, Yield>>>;
187
- static merge<const Layers extends readonly Layer<any>[]>(...layers: Layers): Layer<Layers[number] extends Layer<infer Specs> ? Specs : never>;
188
- 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>>;
189
- }
190
- //#endregion
191
- //#region src/layer/errors.d.ts
192
- declare class DuplicateServiceError extends Error {
193
- readonly service: ServiceClass<any>;
194
- constructor(service: ServiceClass<any>);
195
- }
196
- declare class LayerRegistrationError extends Error {
197
- readonly service: ServiceClass<any> | undefined;
198
- readonly registrationCause: unknown;
199
- readonly cleanupCause?: unknown;
200
- constructor(service: ServiceClass<any> | undefined, registrationCause: unknown, cleanupCause?: unknown);
201
- }
202
- declare class LayerDisposeError extends Error {
203
- readonly causes: readonly unknown[];
204
- constructor(causes: readonly unknown[]);
205
- }
206
- declare class LayerGeneratorYieldError extends Error {
207
- readonly service: ServiceClass<any>;
208
- constructor(service: ServiceClass<any>);
209
- }
210
- /**
211
- * @deprecated The public managed handle is `Runtime`; this error remains for
212
- * compatibility with low-level Layer integrations.
213
- */
214
- declare class BuiltLayerDisposedError extends Error {
215
- constructor();
216
- }
217
- //#endregion
218
- //#region src/runtime/outcome.d.ts
219
- type RuntimeShutdownDiagnostic = {
220
- readonly outcome: ScopeOutcome;
221
- readonly error: LayerDisposeError;
222
- };
223
- type CleanupFailureObserver = (diagnostic: CleanupFailureDiagnostic | RuntimeShutdownDiagnostic) => MaybePromise$1<void>;
224
- type RuntimeOptions = {
225
- readonly onCleanupFailure?: CleanupFailureObserver;
226
- };
227
- //#endregion
228
- //#region src/layer/backend.d.ts
229
- interface LayerBackend extends ServiceResolver {
230
- register(provider: LayerProvider): void | PromiseLike<void>;
231
- disposeAll(): void | PromiseLike<void>;
232
- }
233
- //#endregion
234
- export { ServiceResolver as A, ServiceRequirement as B, ScopeOutcome as C, ScopeRuntimeNotConfiguredError as D, ScopeClosedError as E, EffectFromGenerator as F, ServiceToken as G, ServiceClass as H, EffectRequirements as I, EffectResult as L, Service as M, AnyEffectResult as N, ServiceNotFoundError as O, EffectError as P, EffectSuccess as R, ScopeFinalizer as S, ScopeCloseError as T, ServiceInstance as U, AnyServiceToken as V, ServiceRequirements as W, LayerSpecs as _, BuiltLayerDisposedError as a, DisposableResource as b, LayerGeneratorYieldError as c, AnyLayer as d, CompleteExecution as f, LayerRawRequired as g, LayerProvided as h, RuntimeShutdownDiagnostic as i, ServiceRuntime as j, ServiceRuntimeNotConfiguredError as k, LayerRegistrationError as l, LayerMissing as m, CleanupFailureObserver as n, DuplicateServiceError as o, CompleteLayer as p, RuntimeOptions as r, LayerDisposeError as s, LayerBackend as t, Layer as u, LayerProvider as v, ResourceNotDisposableError as w, MaybePromise$1 as x, CleanupFailureDiagnostic as y, EffectYield as z };
235
- //# sourceMappingURL=index-BYQKfyeJ.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-BYQKfyeJ.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"],"mappings":"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"}