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.
@@ -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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"}