skyr 0.1.0 → 0.1.2
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/dist/index.d.ts +276 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +478 -0
- package/dist/index.js.map +1 -0
- package/package.json +7 -3
- package/src/di.ts +1 -1
- package/src/index.ts +4 -4
- package/src/di.test.ts +0 -299
- package/src/result.test.ts +0 -1052
- package/src/types.test.ts +0 -254
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
//#region src/result.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Type-safe error handling with Result types
|
|
4
|
+
* Inspired by Rust's Result<T, E>
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Structured failure with code, message, and optional cause
|
|
8
|
+
*/
|
|
9
|
+
type Failure<Code extends string> = {
|
|
10
|
+
code: Code;
|
|
11
|
+
message: string;
|
|
12
|
+
cause?: unknown;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Result type - either success (Ok) or failure (Fail)
|
|
16
|
+
*/
|
|
17
|
+
type Result<T, E> = Ok<T, E> | Fail<T, E>;
|
|
18
|
+
/**
|
|
19
|
+
* Extract code literals from a Failure union type
|
|
20
|
+
* ExtractCodes<Failure<"A"> | Failure<"B">> = "A" | "B"
|
|
21
|
+
*/
|
|
22
|
+
type ExtractCodes<E> = E extends Failure<infer Code> ? Code : never;
|
|
23
|
+
/**
|
|
24
|
+
* Handler map for pattern matching on failure codes
|
|
25
|
+
* Provides autocomplete for available codes and narrows failure type per handler
|
|
26
|
+
*/
|
|
27
|
+
type FailureHandlers<E> = { [K in ExtractCodes<E>]?: (failure: Extract<E, Failure<K>>) => any };
|
|
28
|
+
declare class Ok<T, E> {
|
|
29
|
+
readonly value: T;
|
|
30
|
+
readonly _tag: "Ok";
|
|
31
|
+
constructor(value: T);
|
|
32
|
+
map<U>(fn: (value: T) => U): Result<U, E>;
|
|
33
|
+
map<U>(fn: (value: T) => Promise<U>): AsyncResult<U, E | Failure<"UNKNOWN_FAILURE">>;
|
|
34
|
+
map<U, F>(fn: (value: T) => Result<U, F>): Result<U, E | F>;
|
|
35
|
+
map<U, F>(fn: (value: T) => AsyncResult<U, F>): AsyncResult<U, E | F>;
|
|
36
|
+
mapFailure<F>(_fn: (failure: never) => F): Result<T, F>;
|
|
37
|
+
mapFailure(_handlers: FailureHandlers<never>): Result<T, never>;
|
|
38
|
+
inspect(fn: (value: T) => void): Result<T, E>;
|
|
39
|
+
inspectFailure(_fn: (failure: never) => void): Result<T, E>;
|
|
40
|
+
unwrap(): T;
|
|
41
|
+
unwrapOr<U>(_defaultValue: U): T | U;
|
|
42
|
+
expect(_message: string): T;
|
|
43
|
+
match<U>(handlers: {
|
|
44
|
+
ok: (value: T) => U;
|
|
45
|
+
failed: (failure: E) => U;
|
|
46
|
+
}): U;
|
|
47
|
+
isOk(): this is Ok<T, E>;
|
|
48
|
+
hasFailed(): this is Fail<T, E>;
|
|
49
|
+
[Symbol.iterator](): Generator<never, T, unknown>;
|
|
50
|
+
}
|
|
51
|
+
declare class Fail<T, E> {
|
|
52
|
+
readonly failure: E;
|
|
53
|
+
readonly _tag: "Fail";
|
|
54
|
+
constructor(failure: E);
|
|
55
|
+
map<U>(_fn: (value: never) => U): Result<U, E>;
|
|
56
|
+
mapFailure<F>(fn: (failure: E) => F): Result<T, F>;
|
|
57
|
+
mapFailure<F>(fn: (failure: E) => Promise<F>): AsyncResult<T, F | Failure<"UNKNOWN_FAILURE">>;
|
|
58
|
+
mapFailure<U, F>(fn: (failure: E) => Result<U, F>): Result<T | U, F>;
|
|
59
|
+
mapFailure<U, F>(fn: (failure: E) => AsyncResult<U, F>): AsyncResult<T | U, F>;
|
|
60
|
+
mapFailure(handlers: FailureHandlers<E>): any;
|
|
61
|
+
inspect(_fn: (value: never) => void): Result<T, E>;
|
|
62
|
+
inspectFailure(fn: (failure: E) => void): Result<T, E>;
|
|
63
|
+
unwrap(): E;
|
|
64
|
+
unwrapOr<U>(defaultValue: U): T | U;
|
|
65
|
+
expect(message: string): never;
|
|
66
|
+
match<U>(handlers: {
|
|
67
|
+
ok: (value: T) => U;
|
|
68
|
+
failed: (failure: E) => U;
|
|
69
|
+
}): U;
|
|
70
|
+
isOk(): this is Ok<T, E>;
|
|
71
|
+
hasFailed(): this is Fail<T, E>;
|
|
72
|
+
[Symbol.iterator](): Generator<Fail<never, E>, T>;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* AsyncResult wraps a Promise<Result<T, E>> and implements PromiseLike
|
|
76
|
+
* Allows chaining with .map/.mapFailure before awaiting
|
|
77
|
+
*/
|
|
78
|
+
declare class AsyncResult<T, E> implements PromiseLike<Result<T, E>> {
|
|
79
|
+
private promise;
|
|
80
|
+
constructor(promise: Promise<Result<T, E>>);
|
|
81
|
+
then<TResult1 = Result<T, E>, TResult2 = never>(onfulfilled?: ((value: Result<T, E>) => TResult1 | PromiseLike<TResult1>) | null, onrejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | null): PromiseLike<TResult1 | TResult2>;
|
|
82
|
+
map<U, F>(fn: (value: T) => U | Promise<U> | Result<U, F> | AsyncResult<U, F>): AsyncResult<U, E | F | Failure<"UNKNOWN_FAILURE">>;
|
|
83
|
+
mapFailure<U, F>(fn: (failure: E) => F | Promise<F> | Result<U, F> | AsyncResult<U, F>): AsyncResult<T | U, F | Failure<"UNKNOWN_FAILURE">>;
|
|
84
|
+
mapFailure(handlers: FailureHandlers<E>): any;
|
|
85
|
+
inspect(fn: (value: T) => void): AsyncResult<T, E>;
|
|
86
|
+
inspectFailure(fn: (failure: E) => void): AsyncResult<T, E>;
|
|
87
|
+
unwrap(): Promise<T | E>;
|
|
88
|
+
unwrapOr<U>(defaultValue: U): Promise<T | U>;
|
|
89
|
+
expect(message: string): Promise<T>;
|
|
90
|
+
match<U>(handlers: {
|
|
91
|
+
ok: (value: T) => U;
|
|
92
|
+
failed: (failure: E) => U;
|
|
93
|
+
}): Promise<U>;
|
|
94
|
+
isOk(): Promise<boolean>;
|
|
95
|
+
hasFailed(): Promise<boolean>;
|
|
96
|
+
[Symbol.iterator](): Generator<AsyncResult<T, E>, T, unknown>;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Create a successful Result
|
|
100
|
+
*/
|
|
101
|
+
declare function ok<T>(value: T): Result<T, never>;
|
|
102
|
+
/**
|
|
103
|
+
* Create a failed Result
|
|
104
|
+
* Can be curried: fail("CODE") returns a factory function
|
|
105
|
+
*/
|
|
106
|
+
declare function fail<Code extends string>(code: Code): (message: string, cause?: unknown) => Result<never, Failure<Code>>;
|
|
107
|
+
declare function fail<Code extends string>(code: Code, message: string, cause?: unknown): Result<never, Failure<Code>>;
|
|
108
|
+
/**
|
|
109
|
+
* Reusable factory for unknown failures
|
|
110
|
+
*/
|
|
111
|
+
declare const UnknownFailure: (message: string, cause?: unknown) => Result<never, Failure<"UNKNOWN_FAILURE">>;
|
|
112
|
+
/**
|
|
113
|
+
* Convert throwing function or Promise into a Result
|
|
114
|
+
* Catches any errors and converts them to Failure
|
|
115
|
+
*/
|
|
116
|
+
declare function fromThrowable<T>(promise: Promise<T>): AsyncResult<T, Failure<"UNKNOWN_FAILURE">>;
|
|
117
|
+
declare function fromThrowable<T, E>(promise: Promise<T>, failureMapper: (error: unknown) => E): AsyncResult<T, E>;
|
|
118
|
+
declare function fromThrowable<T>(fn: () => Promise<T>): AsyncResult<T, Failure<"UNKNOWN_FAILURE">>;
|
|
119
|
+
declare function fromThrowable<T, E>(fn: () => Promise<T>, failureMapper: (error: unknown) => E): AsyncResult<T, E>;
|
|
120
|
+
declare function fromThrowable<T>(fn: () => T): Result<T, Failure<"UNKNOWN_FAILURE">>;
|
|
121
|
+
declare function fromThrowable<T, E>(fn: () => T, failureMapper: (error: unknown) => E): Result<T, E>;
|
|
122
|
+
/**
|
|
123
|
+
* Wrap a function to return Results instead of throwing
|
|
124
|
+
*/
|
|
125
|
+
declare function wrapThrowable<Args extends any[], T>(fn: (...args: Args) => Promise<T>): (...args: Args) => AsyncResult<T, Failure<"UNKNOWN_FAILURE">>;
|
|
126
|
+
declare function wrapThrowable<Args extends any[], T, E>(fn: (...args: Args) => Promise<T>, failureMapper: (error: unknown) => E): (...args: Args) => AsyncResult<T, E>;
|
|
127
|
+
declare function wrapThrowable<Args extends any[], T>(fn: (...args: Args) => T): (...args: Args) => Result<T, Failure<"UNKNOWN_FAILURE">>;
|
|
128
|
+
declare function wrapThrowable<Args extends any[], T, E>(fn: (...args: Args) => T, failureMapper: (error: unknown) => E): (...args: Args) => Result<T, E>;
|
|
129
|
+
/**
|
|
130
|
+
* Check if value is any Result (Ok or Fail)
|
|
131
|
+
*/
|
|
132
|
+
declare function isResult(value: unknown): value is Result<unknown, unknown>;
|
|
133
|
+
//#endregion
|
|
134
|
+
//#region src/di.d.ts
|
|
135
|
+
/**
|
|
136
|
+
* Dependency - declares a dependency requirement
|
|
137
|
+
* Example: const LoggerService = fn.dependency<Logger>()("logger")
|
|
138
|
+
*/
|
|
139
|
+
declare class Dependency<T, K extends string = string> {
|
|
140
|
+
readonly key: K;
|
|
141
|
+
constructor(key: K);
|
|
142
|
+
/**
|
|
143
|
+
* Create an implementation binding for this dependency
|
|
144
|
+
* Example: LoggerService.impl(myLogger)
|
|
145
|
+
*/
|
|
146
|
+
impl(value: T): DependencyImpl<T, K>;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* DependencyImpl - binds a value to a dependency key
|
|
150
|
+
* Created by Dependency.impl() and used in .inject()
|
|
151
|
+
*/
|
|
152
|
+
declare class DependencyImpl<T, K extends string = string> {
|
|
153
|
+
readonly key: K;
|
|
154
|
+
readonly value: T;
|
|
155
|
+
constructor(key: K, value: T);
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* DependencyDeclaration - yielded in generators to request a dependency
|
|
159
|
+
* Created by fn.require(dependency)
|
|
160
|
+
*/
|
|
161
|
+
declare class DependencyDeclaration<T, K extends string = string> {
|
|
162
|
+
readonly key: K;
|
|
163
|
+
readonly _tag: symbol;
|
|
164
|
+
constructor(key: K);
|
|
165
|
+
[Symbol.iterator](): Generator<DependencyDeclaration<T, K>, T, T>;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* DependentGenerator - instruction to execute a function with dependency inheritance
|
|
169
|
+
* Created by fn.yield() and consumed by the DI system
|
|
170
|
+
*/
|
|
171
|
+
interface DependentGenerator<T, Deps = never, Errors = never> {
|
|
172
|
+
_tag: "DependentGenerator";
|
|
173
|
+
_deps: Deps;
|
|
174
|
+
_errors: Errors;
|
|
175
|
+
_generator: Generator<YieldedValue, T, any>;
|
|
176
|
+
[Symbol.iterator](): Generator<DependentGenerator<T, Deps, Errors>, T, any>;
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Values that can be yielded in a generator
|
|
180
|
+
*/
|
|
181
|
+
type YieldedValue = Result<any, any> | AsyncResult<any, any> | Promise<unknown> | DependencyDeclaration<any> | DependentGenerator<any, any, any>;
|
|
182
|
+
/**
|
|
183
|
+
* Extract return type from generator
|
|
184
|
+
*/
|
|
185
|
+
type ExtractGeneratorReturn<G> = G extends Generator<any, infer R, any> ? R : never;
|
|
186
|
+
/**
|
|
187
|
+
* Extract yield type from generator
|
|
188
|
+
*/
|
|
189
|
+
type ExtractGeneratorYield<G> = G extends Generator<infer Y, any, any> ? Y : never;
|
|
190
|
+
/**
|
|
191
|
+
* Extract error types from yielded values
|
|
192
|
+
*/
|
|
193
|
+
type ExtractYieldedErrors<Y> = Y extends Fail<any, infer E> ? E : Y extends Result<any, infer E> ? E : Y extends AsyncResult<any, infer E> ? E : Y extends DependentGenerator<any, any, infer E> ? E : never;
|
|
194
|
+
/**
|
|
195
|
+
* Extract dependencies from yielded values
|
|
196
|
+
*/
|
|
197
|
+
type ExtractYieldedDependencies<Y> = Y extends DependencyDeclaration<infer T, infer K> ? K extends string ? Dependency<T, K> : never : Y extends DependentGenerator<any, infer D, any> ? D : never;
|
|
198
|
+
/**
|
|
199
|
+
* Infer all dependencies from a generator
|
|
200
|
+
*/
|
|
201
|
+
type InferDependencies<G> = ExtractYieldedDependencies<ExtractGeneratorYield<G>>;
|
|
202
|
+
/**
|
|
203
|
+
* Remove dependencies from union by key
|
|
204
|
+
*/
|
|
205
|
+
type RemoveDepByKey<D, K extends string> = D extends Dependency<any, K> ? never : D;
|
|
206
|
+
/**
|
|
207
|
+
* Check if yields contain async values
|
|
208
|
+
*/
|
|
209
|
+
type ContainsAsyncYields<Y> = [Extract<Y, AsyncResult<any, any> | Promise<any>>] extends [never] ? false : true;
|
|
210
|
+
/**
|
|
211
|
+
* Marker for async yields
|
|
212
|
+
*/
|
|
213
|
+
declare const AsyncYieldsMarker: unique symbol;
|
|
214
|
+
type AsyncYieldsMarker = typeof AsyncYieldsMarker;
|
|
215
|
+
/**
|
|
216
|
+
* Normalize yields - return marker if async present
|
|
217
|
+
*/
|
|
218
|
+
type NormalizeYields<Y> = ContainsAsyncYields<Y> extends true ? AsyncYieldsMarker : never;
|
|
219
|
+
/**
|
|
220
|
+
* Ensure return type is a Result
|
|
221
|
+
* Converts to AsyncResult if async yields are present
|
|
222
|
+
*/
|
|
223
|
+
type EnsureResult<T, E = never, Yields = never> = [Yields] extends [never] ? T extends Result<infer U, infer TE> ? Result<U, TE | E> : T extends AsyncResult<infer U, infer TE> ? AsyncResult<U, TE | E> : Result<T, E> : Yields extends AsyncYieldsMarker ? T extends Result<infer U, infer TE> ? AsyncResult<U, TE | E> : T extends AsyncResult<infer U, infer TE> ? AsyncResult<U, TE | E> : AsyncResult<T, E> : T extends Result<infer U, infer TE> ? Result<U, TE | E> : T extends AsyncResult<infer U, infer TE> ? AsyncResult<U, TE | E> : Result<T, E>;
|
|
224
|
+
/**
|
|
225
|
+
* Unwrap Result type to get inner value
|
|
226
|
+
*/
|
|
227
|
+
type UnwrapResult<T> = T extends Result<infer U, any> ? U : T extends AsyncResult<infer U, any> ? U : T;
|
|
228
|
+
/**
|
|
229
|
+
* Generator type for functions with dependencies
|
|
230
|
+
*/
|
|
231
|
+
type FnGenerator<Return, Errors = any> = Generator<YieldedValue, Return>;
|
|
232
|
+
/**
|
|
233
|
+
* Function with dependency injection support
|
|
234
|
+
*/
|
|
235
|
+
interface Fn<Args extends any[], Return, Errors, Deps = never, Yields = never> {
|
|
236
|
+
/**
|
|
237
|
+
* Call the function directly (only available when all dependencies are satisfied)
|
|
238
|
+
*/
|
|
239
|
+
(...args: Args): [Deps] extends [never] ? EnsureResult<Return, Errors, Yields> : never;
|
|
240
|
+
/**
|
|
241
|
+
* Inject dependencies using implementation bindings
|
|
242
|
+
* Example: fn.inject(LoggerImpl, DbImpl)
|
|
243
|
+
* Allows injecting any dependency, even if not currently required (enables overriding)
|
|
244
|
+
*/
|
|
245
|
+
inject<const Impls extends readonly DependencyImpl<any, string>[]>(...impls: Impls): Fn<Args, Return, Errors, RemoveDepByKey<Deps, Impls[number]["key"]>, Yields>;
|
|
246
|
+
/**
|
|
247
|
+
* Execute the function with all dependencies satisfied
|
|
248
|
+
* Only callable when Deps is never (all dependencies injected)
|
|
249
|
+
*/
|
|
250
|
+
run(...args: Args): [Deps] extends [never] ? EnsureResult<Return, Errors, Yields> : never;
|
|
251
|
+
/**
|
|
252
|
+
* Create an instruction for executing this function with dependency inheritance
|
|
253
|
+
* Use with yield* to inherit dependencies from parent generator
|
|
254
|
+
* Automatically unwraps Ok results for seamless composition
|
|
255
|
+
*/
|
|
256
|
+
yield(...args: Args): DependentGenerator<UnwrapResult<Return>, Deps, Errors>;
|
|
257
|
+
_generator: (...args: Args) => FnGenerator<Return, Errors>;
|
|
258
|
+
_injectedDeps: Record<string, any>;
|
|
259
|
+
_deps: Deps;
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* Create a function with dependency injection support
|
|
263
|
+
*
|
|
264
|
+
* For generator functions: Enables DI and automatic error handling
|
|
265
|
+
* For regular functions: Identity transform with type inference
|
|
266
|
+
*/
|
|
267
|
+
declare function fnImpl<Args extends any[], T, E>(fn: (...args: Args) => Result<T, E>): (...args: Args) => Result<T, E>;
|
|
268
|
+
declare function fnImpl<Args extends any[], Gen extends Generator<any, any, any>>(generator: (...args: Args) => Gen): Fn<Args, ExtractGeneratorReturn<Gen>, ExtractYieldedErrors<ExtractGeneratorYield<Gen>>, InferDependencies<Gen>, NormalizeYields<ExtractGeneratorYield<Gen>>>;
|
|
269
|
+
declare namespace fnImpl {
|
|
270
|
+
var dependency: <T>() => <const K extends string>(key: K) => Dependency<T, K>;
|
|
271
|
+
var require: <T, K extends string>(dep: Dependency<T, K>) => DependencyDeclaration<T, K>;
|
|
272
|
+
}
|
|
273
|
+
declare const fn: typeof fnImpl;
|
|
274
|
+
//#endregion
|
|
275
|
+
export { type AsyncResult, type Fail, type Failure, type Fn, type Ok, type Result, UnknownFailure, fail, fn, fromThrowable, isResult, ok, wrapThrowable };
|
|
276
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/result.ts","../src/di.ts"],"sourcesContent":[],"mappings":"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,GCwCO,CDxCP,SCwCiB,UDxCjB,CAAA,GAAA,ECwCiC,CDxCjC,CAAA,GAAA,KAAA,GC0CjC,CD1CiC;;;;KC+C/B,mBDtCwD,CAAA,CAAA,CAAA,GAAA,CCuC5D,ODvCkE,CCuC1D,CDvC0D,ECuCvD,WDvCuD,CAAA,GAAA,EAAA,GAAA,CAAA,GCuC/B,ODvC+B,CAAA,GAAA,CAAA,CAAA,UAAM,CAAA,KAAA,CAAA,GAAA,KAAA,GAAA,IAAA;;;;cC+CnE,iBDtCqB,EAAA,OAAA,MAAA;KCuCtB,iBAAA,GDvCyB,OCuCE,iBDvCF;;;;KC4CzB,eDtCK,CAAA,CAAA,CAAA,GCsCgB,mBDtChB,CCsCoC,CDtCpC,CAAA,SAAA,IAAA,GCuCP,iBDvCO,GAAA,KAAA;;AASV;;;KCqCK,YDlC0B,CAAA,CAAA,EAAA,IAAA,KAAA,EAAA,SAAA,KAAA,CAAA,GAAA,CCkCoB,MDlCpB,CAAA,SAAA,CAAA,KAAA,CAAA,GCmC5B,CDnC4B,SCmClB,MDnCkB,CAAA,KAAA,EAAA,EAAA,KAAA,GAAA,CAAA,GCoC3B,MDpC2B,CCoCpB,CDpCoB,ECoCjB,EDpCiB,GCoCZ,CDpCY,CAAA,GCqC3B,CDrC2B,SCqCjB,WDrCiB,CAAA,KAAA,EAAA,EAAA,KAAA,GAAA,CAAA,GCsC1B,WDtC0B,CCsCd,CDtCc,ECsCX,EDtCW,GCsCN,CDtCM,CAAA,GCuC1B,MDvC0B,CCuCnB,CDvCmB,ECuChB,CDvCgB,CAAA,GCwC5B,MDxC4B,SCwCb,iBDxCa,GCyC3B,CDzC2B,SCyCjB,MDzCiB,CAAA,KAAA,EAAA,EAAA,KAAA,GAAA,CAAA,GC0C1B,WD1C0B,CC0Cd,CD1Cc,EC0CX,ED1CW,GC0CN,CD1CM,CAAA,GC2C1B,CD3C0B,SC2ChB,WD3CgB,CAAA,KAAA,EAAA,EAAA,KAAA,GAAA,CAAA,GC4CzB,WD5CyB,CC4Cb,CD5Ca,EC4CV,ED5CU,GC4CL,CD5CK,CAAA,GC6CzB,WD7CyB,CC6Cb,CD7Ca,EC6CV,CD7CU,CAAA,GC8C3B,CD9C2B,SC8CjB,MD9CiB,CAAA,KAAA,EAAA,EAAA,KAAA,GAAA,CAAA,GC+C1B,MD/C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"}
|