@nicolastoulemont/std 0.2.0 → 0.4.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/dist/adt/index.d.mts +1 -1
- package/dist/adt/index.mjs +1 -1
- package/dist/{adt-DraJkmij.mjs → adt-DH37Pprw.mjs} +53 -53
- package/dist/adt-DH37Pprw.mjs.map +1 -0
- package/dist/{apply-fn.types-CXDoeA7D.d.mts → apply-fn.types-0g_9eXRy.d.mts} +1 -1
- package/dist/{apply-fn.types-CXDoeA7D.d.mts.map → apply-fn.types-0g_9eXRy.d.mts.map} +1 -1
- package/dist/brand/index.d.mts +2 -2
- package/dist/brand/index.mjs +2 -2
- package/dist/{brand-CTaxGuU9.mjs → brand-BqcqFXj5.mjs} +6 -6
- package/dist/{brand-CTaxGuU9.mjs.map → brand-BqcqFXj5.mjs.map} +1 -1
- package/dist/chunk-DRYujVrt.mjs +18 -0
- package/dist/data/index.d.mts +1 -1
- package/dist/data/index.mjs +1 -1
- package/dist/{data-DgzWI4R_.mjs → data-Cg8ySt6-.mjs} +13 -13
- package/dist/data-Cg8ySt6-.mjs.map +1 -0
- package/dist/discriminator.types-D-UbMmAD.d.mts +7 -0
- package/dist/discriminator.types-D-UbMmAD.d.mts.map +1 -0
- package/dist/either/index.d.mts +2 -2
- package/dist/either/index.mjs +2 -2
- package/dist/{either-CnOBUH7a.mjs → either-jkBX8xS1.mjs} +181 -44
- package/dist/either-jkBX8xS1.mjs.map +1 -0
- package/dist/{equality-YMebYwm1.mjs → equality-C2l3BIi8.mjs} +28 -28
- package/dist/equality-C2l3BIi8.mjs.map +1 -0
- package/dist/err/index.d.mts +2 -2
- package/dist/err/index.mjs +2 -2
- package/dist/{err-BqQApH9r.mjs → err-BM-svBaK.mjs} +20 -13
- package/dist/err-BM-svBaK.mjs.map +1 -0
- package/dist/flow/index.d.mts +1 -1
- package/dist/flow/index.mjs +1 -1
- package/dist/{flow-pRdnqmMY.mjs → flow-D4cE0EAg.mjs} +10 -3
- package/dist/flow-D4cE0EAg.mjs.map +1 -0
- package/dist/fx/index.d.mts +3 -0
- package/dist/fx/index.mjs +4 -0
- package/dist/fx-B-0MxGTM.mjs +1306 -0
- package/dist/fx-B-0MxGTM.mjs.map +1 -0
- package/dist/fx.types-DpIQILok.mjs +13 -0
- package/dist/fx.types-DpIQILok.mjs.map +1 -0
- package/dist/fx.types-aTmhyidu.d.mts +133 -0
- package/dist/fx.types-aTmhyidu.d.mts.map +1 -0
- package/dist/index-BO6bxBeo.d.mts +457 -0
- package/dist/index-BO6bxBeo.d.mts.map +1 -0
- package/dist/{index-tkgTLCoq.d.mts → index-BOrJQBPO.d.mts} +2 -2
- package/dist/{index-tkgTLCoq.d.mts.map → index-BOrJQBPO.d.mts.map} +1 -1
- package/dist/{index-zC2zAtZY.d.mts → index-CLlcoy8B.d.mts} +2 -2
- package/dist/{index-zC2zAtZY.d.mts.map → index-CLlcoy8B.d.mts.map} +1 -1
- package/dist/index-CLspOlBH.d.mts +737 -0
- package/dist/index-CLspOlBH.d.mts.map +1 -0
- package/dist/{index-BR7takNf.d.mts → index-CQxzD1YM.d.mts} +63 -24
- package/dist/index-CQxzD1YM.d.mts.map +1 -0
- package/dist/index-ClxPiGP9.d.mts +886 -0
- package/dist/index-ClxPiGP9.d.mts.map +1 -0
- package/dist/index-Cydt5ocm.d.mts +221 -0
- package/dist/index-Cydt5ocm.d.mts.map +1 -0
- package/dist/index-D5tzehjf.d.mts +476 -0
- package/dist/index-D5tzehjf.d.mts.map +1 -0
- package/dist/{index-BCrD3pEs.d.mts → index-EmWRCTY3.d.mts} +18 -18
- package/dist/index-EmWRCTY3.d.mts.map +1 -0
- package/dist/{index-Cp_4sFun.d.mts → index-FySViSfh.d.mts} +136 -41
- package/dist/index-FySViSfh.d.mts.map +1 -0
- package/dist/index-USQPafrR.d.mts +288 -0
- package/dist/index-USQPafrR.d.mts.map +1 -0
- package/dist/index.d.mts +35 -130
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +13 -39
- package/dist/option/index.d.mts +3 -3
- package/dist/option/index.mjs +3 -2
- package/dist/{option-CKHDOVea.mjs → option-C2QpGffy.mjs} +149 -29
- package/dist/option-C2QpGffy.mjs.map +1 -0
- package/dist/option.types-BiAiZ8Ks.mjs +33 -0
- package/dist/option.types-BiAiZ8Ks.mjs.map +1 -0
- package/dist/option.types-CVvowfmd.d.mts +165 -0
- package/dist/option.types-CVvowfmd.d.mts.map +1 -0
- package/dist/pipe/index.d.mts +1 -1
- package/dist/pipe/index.mjs +1 -1
- package/dist/{pipe-GYxZNkPB.mjs → pipe-BF4G4SLo.mjs} +2 -2
- package/dist/{pipe-GYxZNkPB.mjs.map → pipe-BF4G4SLo.mjs.map} +1 -1
- package/dist/pipeable-DYNrUps7.mjs +92 -0
- package/dist/pipeable-DYNrUps7.mjs.map +1 -0
- package/dist/pipeable-Dr0d_q4F.d.mts +27 -0
- package/dist/pipeable-Dr0d_q4F.d.mts.map +1 -0
- package/dist/predicate/index.d.mts +2 -2
- package/dist/predicate/index.mjs +2 -2
- package/dist/{predicate-BZkZmo-W.mjs → predicate-Dt9Qsbav.mjs} +2 -2
- package/dist/{predicate-BZkZmo-W.mjs.map → predicate-Dt9Qsbav.mjs.map} +1 -1
- package/dist/result/index.d.mts +3 -3
- package/dist/result/index.mjs +2 -2
- package/dist/{result-C5tPWR60.mjs → result-DhYA-J-M.mjs} +158 -38
- package/dist/result-DhYA-J-M.mjs.map +1 -0
- package/dist/result.types-_W95221K.d.mts +150 -0
- package/dist/result.types-_W95221K.d.mts.map +1 -0
- package/package.json +5 -9
- package/dist/adt-DraJkmij.mjs.map +0 -1
- package/dist/data-DgzWI4R_.mjs.map +0 -1
- package/dist/discriminator.types-DCkkrCj4.d.mts +0 -7
- package/dist/discriminator.types-DCkkrCj4.d.mts.map +0 -1
- package/dist/either-CnOBUH7a.mjs.map +0 -1
- package/dist/equality/index.d.mts +0 -86
- package/dist/equality/index.d.mts.map +0 -1
- package/dist/equality/index.mjs +0 -3
- package/dist/equality-YMebYwm1.mjs.map +0 -1
- package/dist/err-BqQApH9r.mjs.map +0 -1
- package/dist/flow-pRdnqmMY.mjs.map +0 -1
- package/dist/fn/index.d.mts +0 -2
- package/dist/fn/index.mjs +0 -3
- package/dist/fn-DFHj-EVA.mjs +0 -10
- package/dist/fn-DFHj-EVA.mjs.map +0 -1
- package/dist/gen/index.d.mts +0 -3
- package/dist/gen/index.mjs +0 -3
- package/dist/gen-DF-FXNdy.mjs +0 -99
- package/dist/gen-DF-FXNdy.mjs.map +0 -1
- package/dist/index-B3z7T6Dz.d.mts +0 -57
- package/dist/index-B3z7T6Dz.d.mts.map +0 -1
- package/dist/index-BCrD3pEs.d.mts.map +0 -1
- package/dist/index-BFhV56qy.d.mts +0 -105
- package/dist/index-BFhV56qy.d.mts.map +0 -1
- package/dist/index-BLG9B4bn.d.mts +0 -116
- package/dist/index-BLG9B4bn.d.mts.map +0 -1
- package/dist/index-BR7takNf.d.mts.map +0 -1
- package/dist/index-BiFc2xWF.d.mts +0 -211
- package/dist/index-BiFc2xWF.d.mts.map +0 -1
- package/dist/index-BwVaI5d0.d.mts +0 -79
- package/dist/index-BwVaI5d0.d.mts.map +0 -1
- package/dist/index-CckxkaUd.d.mts +0 -80
- package/dist/index-CckxkaUd.d.mts.map +0 -1
- package/dist/index-Cp_4sFun.d.mts.map +0 -1
- package/dist/index-DbfMra4p.d.mts +0 -72
- package/dist/index-DbfMra4p.d.mts.map +0 -1
- package/dist/index.mjs.map +0 -1
- package/dist/is-promise-BEl3eGZg.mjs +0 -11
- package/dist/is-promise-BEl3eGZg.mjs.map +0 -1
- package/dist/option-CKHDOVea.mjs.map +0 -1
- package/dist/option.types-eqVODMIy.d.mts +0 -89
- package/dist/option.types-eqVODMIy.d.mts.map +0 -1
- package/dist/result-C5tPWR60.mjs.map +0 -1
- package/dist/result.types-Bd8a43Fg.d.mts +0 -174
- package/dist/result.types-Bd8a43Fg.d.mts.map +0 -1
- /package/dist/{result-D7XJ96pv.mjs → result-BmqdTN5o.mjs} +0 -0
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
import { i as Result } from "./result.types-Bd8a43Fg.mjs";
|
|
2
|
-
|
|
3
|
-
//#region src/brand/brand.types.d.ts
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Unique symbol for brand keys to ensure true nominal typing.
|
|
7
|
-
* Using a symbol prevents collision with actual property keys.
|
|
8
|
-
*/
|
|
9
|
-
declare const BrandSymbol: unique symbol;
|
|
10
|
-
/**
|
|
11
|
-
* A brand type that adds nominal typing to TypeScript.
|
|
12
|
-
* The brand exists only at the type level - no runtime cost.
|
|
13
|
-
*
|
|
14
|
-
* @template K - The brand key (typically a string literal type)
|
|
15
|
-
*/
|
|
16
|
-
type Brand$1<K extends string> = {
|
|
17
|
-
readonly [BrandSymbol]: K;
|
|
18
|
-
};
|
|
19
|
-
/**
|
|
20
|
-
* Create a branded type by intersecting a base type with a brand.
|
|
21
|
-
* The resulting type is structurally compatible with T but nominally unique.
|
|
22
|
-
*
|
|
23
|
-
* @template T - The base type to brand
|
|
24
|
-
* @template K - The brand key (string literal)
|
|
25
|
-
*
|
|
26
|
-
* @example
|
|
27
|
-
* ```ts
|
|
28
|
-
* type UserId = Branded<string, "UserId">
|
|
29
|
-
* type OrderId = Branded<string, "OrderId">
|
|
30
|
-
*
|
|
31
|
-
* // UserId and OrderId are incompatible even though both are strings
|
|
32
|
-
* declare const userId: UserId
|
|
33
|
-
* declare const orderId: OrderId
|
|
34
|
-
* userId = orderId // Type error!
|
|
35
|
-
* ```
|
|
36
|
-
*/
|
|
37
|
-
type Branded<T, K extends string> = T & Brand$1<K>;
|
|
38
|
-
/**
|
|
39
|
-
* Extract the base type from a branded type.
|
|
40
|
-
* Useful for working with the underlying value.
|
|
41
|
-
*
|
|
42
|
-
* @template B - A branded type
|
|
43
|
-
*/
|
|
44
|
-
type Unbrand<B> = B extends Branded<infer T, string> ? T : B;
|
|
45
|
-
/**
|
|
46
|
-
* Extract the brand key from a branded type.
|
|
47
|
-
*
|
|
48
|
-
* @template B - A branded type
|
|
49
|
-
*/
|
|
50
|
-
type BrandKey<B> = B extends Brand$1<infer K> ? K : never;
|
|
51
|
-
/**
|
|
52
|
-
* A validation function that checks if a value can be branded.
|
|
53
|
-
* Returns true if the value passes validation, false otherwise.
|
|
54
|
-
*
|
|
55
|
-
* @template T - The base type being validated
|
|
56
|
-
*/
|
|
57
|
-
type Validator<T> = (value: T) => boolean;
|
|
58
|
-
/**
|
|
59
|
-
* Error type returned when brand validation fails.
|
|
60
|
-
* Contains the original value and error message for debugging.
|
|
61
|
-
*
|
|
62
|
-
* @template T - The type of the value that failed validation
|
|
63
|
-
*/
|
|
64
|
-
type BrandError<T = unknown> = {
|
|
65
|
-
readonly __typename: "BrandError";
|
|
66
|
-
readonly value: T;
|
|
67
|
-
readonly message: string;
|
|
68
|
-
};
|
|
69
|
-
//#endregion
|
|
70
|
-
//#region src/brand/brand.d.ts
|
|
71
|
-
|
|
72
|
-
/**
|
|
73
|
-
* Brand namespace containing utilities for nominal typing in TypeScript.
|
|
74
|
-
*
|
|
75
|
-
* Brand types add type-level distinctiveness to primitive types without
|
|
76
|
-
* any runtime overhead. This prevents accidental mixing of semantically
|
|
77
|
-
* different values that share the same structural type.
|
|
78
|
-
*
|
|
79
|
-
* @example
|
|
80
|
-
* ```ts
|
|
81
|
-
* import { Brand } from "@repo/std"
|
|
82
|
-
* import type { Branded } from "@repo/std"
|
|
83
|
-
*
|
|
84
|
-
* // Define branded types
|
|
85
|
-
* type UserId = Branded<string, "UserId">
|
|
86
|
-
* type Email = Branded<string, "Email">
|
|
87
|
-
*
|
|
88
|
-
* // Create values
|
|
89
|
-
* const userId = Brand.make<UserId>("user-123")
|
|
90
|
-
* const isValidEmail = Brand.is<Email>(s => s.includes("@"))
|
|
91
|
-
*
|
|
92
|
-
* // Type safety
|
|
93
|
-
* function sendEmail(email: Email) { ... }
|
|
94
|
-
* sendEmail(userId) // Type error! UserId is not Email
|
|
95
|
-
* ```
|
|
96
|
-
*/
|
|
97
|
-
declare const Brand: {
|
|
98
|
-
readonly make: <B extends Branded<unknown, string>>(value: Unbrand<B>) => B;
|
|
99
|
-
readonly unsafeMake: <B extends Branded<unknown, string>>(value: Unbrand<B>) => B;
|
|
100
|
-
readonly is: <T, K extends string>(validator: Validator<T>) => ((value: T) => value is Branded<T, K>);
|
|
101
|
-
readonly refine: <B extends Branded<unknown, string>>(validator: Validator<Unbrand<B>>, errorMessage?: string | ((value: Unbrand<B>) => string)) => ((value: Unbrand<B>) => Result<B, BrandError<Unbrand<B>>>);
|
|
102
|
-
};
|
|
103
|
-
//#endregion
|
|
104
|
-
export { Branded as a, BrandKey as i, Brand$1 as n, Unbrand as o, BrandError as r, Validator as s, Brand as t };
|
|
105
|
-
//# sourceMappingURL=index-BFhV56qy.d.mts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-BFhV56qy.d.mts","names":[],"sources":["../src/brand/brand.types.ts","../src/brand/brand.ts"],"sourcesContent":[],"mappings":";;;;;;;;AAYA,cARc,WAQG,EACS,OAAd,MAAA;AAqBZ;;;;;AAQA;AAAyB,KA9Bb,OA8Ba,CAAA,UAAA,MAAA,CAAA,GAAA;EAAU,UA7BvB,WAAA,CA6BuB,EA7BT,CA6BS;CAA+B;;AAOlE;AAQA;AAiBA;;;;ACqFA;;;;;;;;;;;AApF2E,KDzC/D,OCyC+D,CAAA,CAAA,EAAA,UAAA,MAAA,CAAA,GDzChC,CCyCgC,GDzC5B,OCyC4B,CDzCtB,CCyCsB,CAAA;;;;;;;AA+C9D,KDhFD,OCgFC,CAAA,CAAA,CAAA,GDhFY,CCgFZ,SDhFsB,OCgFtB,CAAA,KAAA,EAAA,EAAA,MAAA,CAAA,GAAA,CAAA,GDhFqD,CCgFrD;;;;;;AAE+C,KD3EhD,QC2EgD,CAAA,CAAA,CAAA,GD3ElC,CC2EkC,SD3ExB,OC2EwB,CAAA,KAAA,EAAA,CAAA,GAAA,CAAA,GAAA,KAAA;;;;;;;KDnEhD,uBAAuB;;;;;;;KAiBvB;;kBAEM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cCmFL;4BAlIkB,iCAAiC,QAAQ,OAAK;kCAoBxC,iCAAiC,QAAQ,OAAK;gDA0BhC,UAAU,gBAAc,eAAe,QAAQ,GAAG;8BA8CpE,qCACpB,UAAU,QAAQ,sCACI,QAAQ,4BAC/B,QAAQ,OAAO,OAAW,GAAG,WAAW,QAAQ"}
|
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
import { _ as GenGenerator, d as AsyncComputation, f as AsyncGenGenerator, v as SyncComputation, y as Yieldable } from "./result.types-Bd8a43Fg.mjs";
|
|
2
|
-
|
|
3
|
-
//#region src/gen/gen.d.ts
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Create a computation from a sync generator function.
|
|
7
|
-
* Returns a SyncComputation where run() returns Result directly (no Promise).
|
|
8
|
-
*
|
|
9
|
-
* @template A - The success value type
|
|
10
|
-
* @template E - The error type
|
|
11
|
-
* @param generatorFn - A function that returns a sync generator
|
|
12
|
-
* @returns SyncComputation<A, E>
|
|
13
|
-
*
|
|
14
|
-
* @see {@link run} for immediate execution without storing the computation
|
|
15
|
-
*
|
|
16
|
-
* @example
|
|
17
|
-
* ```ts
|
|
18
|
-
* const result = gen(function* () {
|
|
19
|
-
* const a = yield* Result.yield(divide(10, 2))
|
|
20
|
-
* const b = yield* Result.yield(divide(a, 2))
|
|
21
|
-
* return b
|
|
22
|
-
* }).run()
|
|
23
|
-
* // Type: Result<number, "DivisionByZero">
|
|
24
|
-
* ```
|
|
25
|
-
*/
|
|
26
|
-
declare function gen<A, E>(generatorFn: () => GenGenerator<A, E>): SyncComputation<A, E>;
|
|
27
|
-
/**
|
|
28
|
-
* Create a computation from an async generator function.
|
|
29
|
-
* Returns an AsyncComputation where run() returns Promise<Result>.
|
|
30
|
-
*
|
|
31
|
-
* @template A - The success value type
|
|
32
|
-
* @template E - The error type
|
|
33
|
-
* @param generatorFn - A function that returns an async generator
|
|
34
|
-
* @returns AsyncComputation<A, E>
|
|
35
|
-
*
|
|
36
|
-
* @see {@link run} for immediate execution without storing the computation
|
|
37
|
-
*
|
|
38
|
-
* @example
|
|
39
|
-
* ```ts
|
|
40
|
-
* const result = await gen(async function* () {
|
|
41
|
-
* const data = yield* Result.yield(await fetchData(1))
|
|
42
|
-
* return data
|
|
43
|
-
* }).run()
|
|
44
|
-
* // Type: Promise<Result<string, "NetworkError">>
|
|
45
|
-
* ```
|
|
46
|
-
*/
|
|
47
|
-
declare function gen<A, E>(generatorFn: () => AsyncGenGenerator<A, E>): AsyncComputation<A, E>;
|
|
48
|
-
/**
|
|
49
|
-
* Convert a sync predicate to a yieldable.
|
|
50
|
-
* Use this to validate values within a gen computation.
|
|
51
|
-
*
|
|
52
|
-
* @template T - The value type to validate
|
|
53
|
-
* @template E - The error type on failure
|
|
54
|
-
* @param predicate - A sync predicate function
|
|
55
|
-
* @param onFail - A function that creates an error from the failing value
|
|
56
|
-
* @returns A function that takes a value and returns a Yieldable
|
|
57
|
-
*
|
|
58
|
-
* @example
|
|
59
|
-
* ```ts
|
|
60
|
-
* const isPositive = (n: number) => n > 0
|
|
61
|
-
*
|
|
62
|
-
* const result = gen(function* () {
|
|
63
|
-
* const value = yield* ensure(isPositive, n => `${n} must be positive`)(userInput)
|
|
64
|
-
* return value * 2
|
|
65
|
-
* }).run()
|
|
66
|
-
* ```
|
|
67
|
-
*/
|
|
68
|
-
declare function ensure<T, E>(predicate: (value: T) => boolean, onFail: (value: T) => E): (value: T) => Yieldable<T, E>;
|
|
69
|
-
/**
|
|
70
|
-
* Convert an async predicate to an async yieldable.
|
|
71
|
-
* Use this to validate values within an async gen computation.
|
|
72
|
-
*
|
|
73
|
-
* @template T - The value type to validate
|
|
74
|
-
* @template E - The error type on failure
|
|
75
|
-
* @param predicate - An async predicate function
|
|
76
|
-
* @param onFail - A function that creates an error from the failing value
|
|
77
|
-
* @returns A function that takes a value and returns a Promise<Yieldable>
|
|
78
|
-
*
|
|
79
|
-
* @example
|
|
80
|
-
* ```ts
|
|
81
|
-
* const isAvailable = async (id: number) => await checkAvailability(id)
|
|
82
|
-
*
|
|
83
|
-
* const result = await gen(async function* () {
|
|
84
|
-
* const id = yield* await ensure(isAvailable, id => `${id} not available`)(userId)
|
|
85
|
-
* return `user-${id}`
|
|
86
|
-
* }).run()
|
|
87
|
-
* ```
|
|
88
|
-
*/
|
|
89
|
-
declare function ensure<T, E>(predicate: (value: T) => Promise<boolean>, onFail: (value: T) => E): (value: T) => Promise<Yieldable<T, E>>;
|
|
90
|
-
/**
|
|
91
|
-
* Convert a type refinement to a yieldable with type narrowing.
|
|
92
|
-
* Use this to narrow types within a gen computation.
|
|
93
|
-
*
|
|
94
|
-
* Note: Refinements are inherently synchronous (TypeScript type guards).
|
|
95
|
-
*
|
|
96
|
-
* @template T - The input type
|
|
97
|
-
* @template U - The narrowed type (must extend T)
|
|
98
|
-
* @template E - The error type on failure
|
|
99
|
-
* @param refinement - A type guard function
|
|
100
|
-
* @param onFail - A function that creates an error from the failing value
|
|
101
|
-
* @returns A function that takes a value and returns a Yieldable with narrowed type
|
|
102
|
-
*
|
|
103
|
-
* @example
|
|
104
|
-
* ```ts
|
|
105
|
-
* const isString = (v: unknown): v is string => typeof v === "string"
|
|
106
|
-
*
|
|
107
|
-
* const result = gen(function* () {
|
|
108
|
-
* const str = yield* ensureRefinement(isString, () => "Expected string")(unknownValue)
|
|
109
|
-
* return str.toUpperCase() // str is typed as string
|
|
110
|
-
* }).run()
|
|
111
|
-
* ```
|
|
112
|
-
*/
|
|
113
|
-
declare const ensureRefinement: <T, U extends T, E>(refinement: (value: T) => value is U, onFail: (value: T) => E) => (value: T) => Yieldable<U, E>;
|
|
114
|
-
//#endregion
|
|
115
|
-
export { ensureRefinement as n, gen as r, ensure as t };
|
|
116
|
-
//# sourceMappingURL=index-BLG9B4bn.d.mts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-BLG9B4bn.d.mts","names":[],"sources":["../src/gen/gen.ts"],"sourcesContent":[],"mappings":";;;;;;AAyBA;;;;;;;;AAsBA;;;;;;;;AA0GA;;;AAAqF,iBAhIrE,GAgIqE,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,WAAA,EAAA,GAAA,GAhIxC,YAgIwC,CAhI3B,CAgI2B,EAhIxB,CAgIwB,CAAA,CAAA,EAhInB,eAgImB,CAhIH,CAgIG,EAhIA,CAgIA,CAAA;;;;;;AAsBrF;;;;;;;;;;;AAuDA;;;;AAC4E,iBAxL5D,GAwL4D,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,WAAA,EAAA,GAAA,GAxL/B,iBAwL+B,CAxLb,CAwLa,EAxLV,CAwLU,CAAA,CAAA,EAxLL,gBAwLK,CAxLY,CAwLZ,EAxLe,CAwLf,CAAA;;;;;;;;;;;;;;;;;;;;;iBA9E5D,gCAAgC,+BAA+B,MAAM,YAAY,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;iBAsBpG,gCACK,MAAM,kCACT,MAAM,YACb,MAAM,QAAQ,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;cAoDzB,gCACG,0BAA0B,eAAe,mBAAmB,MAAM,cACxE,MAAI,UAAU,GAAG"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-BR7takNf.d.mts","names":[],"sources":["../src/err/err.types.ts","../src/err/err.ts"],"sourcesContent":[],"mappings":";;AAcA;;;;;AAWA;;;;;;;;AAGyB,KAdb,aAca,CAAA,YAAA,MAAA,EAAA,aAAA,MAAA,GAAA,MAAA,CAAA,GAAA;EAAS,SAAA,UAAA,EAbX,GAaW;AASlC,CAAA,GArBI,QAqBQ,CArBC,IAqBD,CAAA;;;;;;;;AAkBA,KA9BA,mBA8BwB,CAAA,YAAW,MAAA,EAAA,aAAA,MAAA,GAAA,MAAA,CAAA,GA9BqC,KA8BrC,GA7B7C,QA6B6C,CA7BpC,IA6BoC,CAAA,GAAA;EAanC,SAAA,UAAS,EAzCI,GAyCE;uBAxCF,UAAU,oBAAoB,KAAK;;;AC5BM;;;;;AAU7D,KD2BO,kBC3BI,CAAA,YAAmB,MAAA,CAAA,GAAA;EAkEnB,IAAA,CAAA,aAAW,MAAA,GAAA,MAAA,CAAA,CAAA,GAAA,IAAA,EAAA,MDrCR,ICqCQ,SAAA,KAAA,GAAA,EAAA,GAAA,CAAA,IAAA,EDrCyB,ICqCzB,CAAA,CAAA,EDpCtB,mBCoCsB,CDpCF,GCoCE,EDpCG,ICoCH,CAAA;EAA0B,SAAA,UAAA,EDnC9B,GCmC8B;CAAyB;;;AAqG9E;;;;;;;;;AA3I0E,KDiB9D,QCjB8D,CAAA,CAAA,CAAA,GDiBhD,CCjBgD,SDiBtC,aCjBsC,CAAA,KAAA,IAAA,CAAA,GAAA,GAAA,GAAA,KAAA;;;;;;;;;;;;KD8B9D,eAAe,UAAU;;;AAtDrC;;;KCTK,MDWD,CAAA,UCXkB,WDWlB,CAAA,MAAA,CAAA,CAAA,GCXyC,IDWzC,CCX8C,CDW9C,EAAA,YAAA,CAAA;;AASJ;;KCfK,WDgBM,CAAA,IAAA,CAAA,GAAA,MChBoB,IDgBpB,SAAA,KAAA,GAAA,IAAA,GAAA,KAAA;;;;;;;;AAWX;;;;;;;;AAkBA;AAaA;;;;ACpEkE;;;;;AAKjB;AAuEjD;;;;;AAqGA;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBArGgB,qCAAqC,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAqGjE;8BA7ImB,0BACzB,oBACF,YAAY,OAAO,yBAAyB,WAAW,OAAO,OAAO;0BAwF7C,0BAA0B,kDAAgD"}
|
|
@@ -1,211 +0,0 @@
|
|
|
1
|
-
import { i as Result, y as Yieldable } from "./result.types-Bd8a43Fg.mjs";
|
|
2
|
-
import { a as Option } from "./option.types-eqVODMIy.mjs";
|
|
3
|
-
|
|
4
|
-
//#region src/either/either.types.d.ts
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* A discriminated union representing a choice between two alternatives.
|
|
8
|
-
* By convention: Right = correct/preferred, Left = alternative.
|
|
9
|
-
*
|
|
10
|
-
* Unlike Result, neither side has inherent error semantics. Use Either when
|
|
11
|
-
* both outcomes are valid alternatives (e.g., cached vs fresh data).
|
|
12
|
-
*
|
|
13
|
-
* Use Result when modeling success/failure with error semantics.
|
|
14
|
-
*
|
|
15
|
-
* Implements Yieldable protocol for use in Do computations with yield*.
|
|
16
|
-
*
|
|
17
|
-
* @example
|
|
18
|
-
* ```ts
|
|
19
|
-
* // Either: Valid alternatives
|
|
20
|
-
* type DataSource = Either<CachedData, FreshData>
|
|
21
|
-
*
|
|
22
|
-
* // Result: Success/failure
|
|
23
|
-
* type ApiResult = Result<User, ApiError>
|
|
24
|
-
* ```
|
|
25
|
-
*/
|
|
26
|
-
type Either$1<L, R> = Yieldable<R, L> & ({
|
|
27
|
-
readonly right: true;
|
|
28
|
-
readonly value: R;
|
|
29
|
-
} | {
|
|
30
|
-
readonly right: false;
|
|
31
|
-
readonly value: L;
|
|
32
|
-
});
|
|
33
|
-
/**
|
|
34
|
-
* Extract the left type from an Either
|
|
35
|
-
*/
|
|
36
|
-
type LeftValue<E> = E extends {
|
|
37
|
-
readonly right: false;
|
|
38
|
-
readonly value: infer L;
|
|
39
|
-
} ? L : never;
|
|
40
|
-
/**
|
|
41
|
-
* Extract the right type from an Either
|
|
42
|
-
*/
|
|
43
|
-
type RightValue<E> = E extends {
|
|
44
|
-
readonly right: true;
|
|
45
|
-
readonly value: infer R;
|
|
46
|
-
} ? R : never;
|
|
47
|
-
/**
|
|
48
|
-
* Return type for all() with array input - preserves tuple structure
|
|
49
|
-
*/
|
|
50
|
-
type AllArrayReturn<T extends readonly Either$1<unknown, unknown>[]> = Either$1<LeftValue<T[number]>, { -readonly [K in keyof T]: RightValue<T[K]> }>;
|
|
51
|
-
/**
|
|
52
|
-
* Return type for all() with object input - preserves object structure
|
|
53
|
-
*/
|
|
54
|
-
type AllObjectReturn<T extends Record<string, Either$1<unknown, unknown>>> = Either$1<LeftValue<T[keyof T]>, { -readonly [K in keyof T]: RightValue<T[K]> }>;
|
|
55
|
-
/**
|
|
56
|
-
* Type-safe interface for map() with async detection
|
|
57
|
-
* Async overload must come first for proper type inference
|
|
58
|
-
*/
|
|
59
|
-
type EitherMap = {
|
|
60
|
-
<A, B>(fn: (value: A) => Promise<B>): <L>(either: Either$1<L, A>) => Promise<Either$1<L, B>>;
|
|
61
|
-
<A, B>(fn: (value: A) => B): <L>(either: Either$1<L, A>) => Either$1<L, B>;
|
|
62
|
-
};
|
|
63
|
-
/**
|
|
64
|
-
* Type-safe interface for mapLeft() with async detection
|
|
65
|
-
*/
|
|
66
|
-
type EitherMapLeft = {
|
|
67
|
-
<L1, L2$1>(fn: (value: L1) => Promise<L2$1>): <R>(either: Either$1<L1, R>) => Promise<Either$1<L2$1, R>>;
|
|
68
|
-
<L1, L2$1>(fn: (value: L1) => L2$1): <R>(either: Either$1<L1, R>) => Either$1<L2$1, R>;
|
|
69
|
-
};
|
|
70
|
-
/**
|
|
71
|
-
* Type-safe interface for bimap() with async detection
|
|
72
|
-
*/
|
|
73
|
-
type EitherBimap = {
|
|
74
|
-
<L1, L2$1, R1, R2$1>(fnLeft: (left: L1) => Promise<L2$1>, fnRight: (right: R1) => Promise<R2$1>): (either: Either$1<L1, R1>) => Promise<Either$1<L2$1, R2$1>>;
|
|
75
|
-
<L1, L2$1, R1, R2$1>(fnLeft: (left: L1) => Promise<L2$1>, fnRight: (right: R1) => R2$1): (either: Either$1<L1, R1>) => Promise<Either$1<L2$1, R2$1>>;
|
|
76
|
-
<L1, L2$1, R1, R2$1>(fnLeft: (left: L1) => L2$1, fnRight: (right: R1) => Promise<R2$1>): (either: Either$1<L1, R1>) => Promise<Either$1<L2$1, R2$1>>;
|
|
77
|
-
<L1, L2$1, R1, R2$1>(fnLeft: (left: L1) => L2$1, fnRight: (right: R1) => R2$1): (either: Either$1<L1, R1>) => Either$1<L2$1, R2$1>;
|
|
78
|
-
};
|
|
79
|
-
/**
|
|
80
|
-
* Type-safe interface for flatMap() with async detection and left union
|
|
81
|
-
*/
|
|
82
|
-
type EitherFlatMap = {
|
|
83
|
-
<A, B, L2$1>(fn: (value: A) => Promise<Either$1<L2$1, B>>): <L>(either: Either$1<L, A>) => Promise<Either$1<L | L2$1, B>>;
|
|
84
|
-
<A, B, L2$1>(fn: (value: A) => Either$1<L2$1, B>): <L>(either: Either$1<L, A>) => Either$1<L | L2$1, B>;
|
|
85
|
-
};
|
|
86
|
-
/**
|
|
87
|
-
* Type-safe interface for tap() with async detection
|
|
88
|
-
*/
|
|
89
|
-
type EitherTap = {
|
|
90
|
-
<A>(fn: (value: A) => Promise<void>): <L>(either: Either$1<L, A>) => Promise<Either$1<L, A>>;
|
|
91
|
-
<A>(fn: (value: A) => void): <L>(either: Either$1<L, A>) => Either$1<L, A>;
|
|
92
|
-
};
|
|
93
|
-
/**
|
|
94
|
-
* Type-safe interface for tapLeft() with async detection
|
|
95
|
-
*/
|
|
96
|
-
type EitherTapLeft = {
|
|
97
|
-
<L>(fn: (value: L) => Promise<void>): <R>(either: Either$1<L, R>) => Promise<Either$1<L, R>>;
|
|
98
|
-
<L>(fn: (value: L) => void): <R>(either: Either$1<L, R>) => Either$1<L, R>;
|
|
99
|
-
};
|
|
100
|
-
/**
|
|
101
|
-
* Type-safe interface for orElse() with async detection and right union
|
|
102
|
-
*/
|
|
103
|
-
type EitherOrElse = {
|
|
104
|
-
<L1, L2$1, R2$1>(fn: (left: L1) => Promise<Either$1<L2$1, R2$1>>): <R>(either: Either$1<L1, R>) => Promise<Either$1<L2$1, R | R2$1>>;
|
|
105
|
-
<L1, L2$1, R2$1>(fn: (left: L1) => Either$1<L2$1, R2$1>): <R>(either: Either$1<L1, R>) => Either$1<L2$1, R | R2$1>;
|
|
106
|
-
};
|
|
107
|
-
/**
|
|
108
|
-
* Type-safe interface for filter()
|
|
109
|
-
*/
|
|
110
|
-
type EitherFilter = {
|
|
111
|
-
<R, L2$1>(predicate: (value: R) => boolean, onFail: (value: R) => L2$1): <L>(either: Either$1<L, R>) => Either$1<L | L2$1, R>;
|
|
112
|
-
};
|
|
113
|
-
//#endregion
|
|
114
|
-
//#region src/either/either.d.ts
|
|
115
|
-
|
|
116
|
-
/**
|
|
117
|
-
* Combine multiple Eithers into a single Either.
|
|
118
|
-
* Short-circuits on the first left value.
|
|
119
|
-
*
|
|
120
|
-
* Supports both array and object inputs with full type preservation.
|
|
121
|
-
*
|
|
122
|
-
* @param eithers - Array or object of Eithers to combine
|
|
123
|
-
* @returns Either with all right values or first left
|
|
124
|
-
*
|
|
125
|
-
* @example
|
|
126
|
-
* ```ts
|
|
127
|
-
* // Array form (with const assertion for tuple typing)
|
|
128
|
-
* all([right(1), right("hello")] as const)
|
|
129
|
-
* // => right([1, "hello"])
|
|
130
|
-
*
|
|
131
|
-
* all([right(1), left("error"), right(3)])
|
|
132
|
-
* // => left("error")
|
|
133
|
-
*
|
|
134
|
-
* // Object form
|
|
135
|
-
* all({ a: right(1), b: right("hello") })
|
|
136
|
-
* // => right({ a: 1, b: "hello" })
|
|
137
|
-
* ```
|
|
138
|
-
*/
|
|
139
|
-
declare function all<const T extends readonly Either$1<unknown, unknown>[]>(eithers: T): AllArrayReturn<T>;
|
|
140
|
-
declare function all<const T extends Record<string, Either$1<unknown, unknown>>>(eithers: T): AllObjectReturn<T>;
|
|
141
|
-
/**
|
|
142
|
-
* Either namespace containing all utility functions for working with Either types.
|
|
143
|
-
*
|
|
144
|
-
* Either represents a value that can be one of two types: Left<L> or Right<R>.
|
|
145
|
-
* By convention, Right is the "success" or preferred path, while Left represents
|
|
146
|
-
* an alternative outcome (not necessarily an error, unlike Result).
|
|
147
|
-
*
|
|
148
|
-
* Use Either when both outcomes are valid and meaningful, not just success/failure.
|
|
149
|
-
* For error handling, prefer Result instead.
|
|
150
|
-
*
|
|
151
|
-
* @see {@link Result} for success/error semantics
|
|
152
|
-
* @see {@link Option} for presence/absence semantics
|
|
153
|
-
*
|
|
154
|
-
* @example
|
|
155
|
-
* ```ts
|
|
156
|
-
* import { Either, pipe } from '@repo/std'
|
|
157
|
-
* import type { Either as EitherType } from '@repo/std'
|
|
158
|
-
*
|
|
159
|
-
* // Either for branching logic (cache vs fresh data)
|
|
160
|
-
* const fetchOrCache = (id: number): EitherType<CachedData, FreshData> =>
|
|
161
|
-
* cache.has(id) ? Either.left(cache.get(id)) : Either.right(fetch(id))
|
|
162
|
-
*
|
|
163
|
-
* const result = pipe(
|
|
164
|
-
* fetchOrCache(1),
|
|
165
|
-
* Either.map(data => data.value),
|
|
166
|
-
* Either.unwrapOr(defaultValue)
|
|
167
|
-
* )
|
|
168
|
-
*
|
|
169
|
-
* // Async example
|
|
170
|
-
* const processed = await pipe(
|
|
171
|
-
* Either.right(userId),
|
|
172
|
-
* Either.map(async id => await fetchUser(id)),
|
|
173
|
-
* Either.flatMap(async user => Either.right(await enrichUser(user)))
|
|
174
|
-
* )
|
|
175
|
-
* ```
|
|
176
|
-
*/
|
|
177
|
-
declare const Either: {
|
|
178
|
-
readonly left: <L>(value: L) => Either$1<L, never>;
|
|
179
|
-
readonly right: <R>(value: R) => Either$1<never, R>;
|
|
180
|
-
readonly isLeft: <L, R>(either: Either$1<L, R>) => either is Extract<Either$1<L, R>, {
|
|
181
|
-
right: false;
|
|
182
|
-
}>;
|
|
183
|
-
readonly isRight: <L, R>(either: Either$1<L, R>) => either is Extract<Either$1<L, R>, {
|
|
184
|
-
right: true;
|
|
185
|
-
}>;
|
|
186
|
-
readonly map: EitherMap;
|
|
187
|
-
readonly mapLeft: EitherMapLeft;
|
|
188
|
-
readonly bimap: EitherBimap;
|
|
189
|
-
readonly flatMap: EitherFlatMap;
|
|
190
|
-
readonly tap: EitherTap;
|
|
191
|
-
readonly tapLeft: EitherTapLeft;
|
|
192
|
-
readonly orElse: EitherOrElse;
|
|
193
|
-
readonly swap: <L, R>() => (either: Either$1<L, R>) => Either$1<R, L>;
|
|
194
|
-
readonly filter: EitherFilter;
|
|
195
|
-
readonly all: typeof all;
|
|
196
|
-
readonly unwrapOr: <R>(defaultValue: R) => <L>(either: Either$1<L, R>) => R;
|
|
197
|
-
readonly unwrapOrElse: <L, R>(fn: (left: L) => R) => (either: Either$1<L, R>) => R;
|
|
198
|
-
readonly match: <L, R, U$1>(handlers: {
|
|
199
|
-
left: (value: L) => U$1;
|
|
200
|
-
right: (value: R) => U$1;
|
|
201
|
-
}) => (either: Either$1<L, R>) => U$1;
|
|
202
|
-
readonly fromResult: <R, E>(result: Result<R, E>) => Either$1<E, R>;
|
|
203
|
-
readonly toResult: <L, R>(either: Either$1<L, R>) => Result<R, L>;
|
|
204
|
-
readonly fromOption: <R, L>(option: Option<R>, onNone: () => L) => Either$1<L, R>;
|
|
205
|
-
readonly toOption: <L, R>(either: Either$1<L, R>) => Option<R>;
|
|
206
|
-
readonly fromNullable: <R, L>(value: R | null | undefined, onNull: () => L) => Either$1<L, R>;
|
|
207
|
-
readonly fromPredicate: <R, L>(value: R, predicate: (value: R) => boolean, onFail: (value: R) => L) => Either$1<L, R>;
|
|
208
|
-
};
|
|
209
|
-
//#endregion
|
|
210
|
-
export { EitherFilter as a, EitherMapLeft as c, EitherTapLeft as d, EitherBimap as i, EitherOrElse as l, all as n, EitherFlatMap as o, Either$1 as r, EitherMap as s, Either as t, EitherTap as u };
|
|
211
|
-
//# sourceMappingURL=index-BiFc2xWF.d.mts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-BiFc2xWF.d.mts","names":[],"sources":["../src/either/either.types.ts","../src/either/either.ts"],"sourcesContent":[],"mappings":"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"}
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import { a as ResultFilter, c as ResultMapErr, i as Result$1, l as ResultOrElse, n as AllObjectReturn, o as ResultFlatMap, r as FromTryReturn, s as ResultMap, t as AllArrayReturn, u as ResultTap } from "./result.types-Bd8a43Fg.mjs";
|
|
2
|
-
|
|
3
|
-
//#region src/result/result.d.ts
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Combine multiple Results into a single Result.
|
|
7
|
-
* Supports both array and object inputs.
|
|
8
|
-
*
|
|
9
|
-
* - If all Results are ok, returns ok with all values
|
|
10
|
-
* - If any Result is an error, returns the first error (short-circuits)
|
|
11
|
-
*
|
|
12
|
-
* @example
|
|
13
|
-
* ```ts
|
|
14
|
-
* // Array form (use `as const` for tuple types) - returns Result<[number, string], E>
|
|
15
|
-
* const [num, str] = pipe(
|
|
16
|
-
* Result.all([parseNumber(input), parseString(other)] as const),
|
|
17
|
-
* Result.unwrapOr([0, ''])
|
|
18
|
-
* )
|
|
19
|
-
*
|
|
20
|
-
* // Object form - returns Result<{ user: User, config: Config }, E>
|
|
21
|
-
* pipe(
|
|
22
|
-
* Result.all({ user: fetchUser(id), config: loadConfig() }),
|
|
23
|
-
* Result.tap(({ user, config }) => console.log(user.name, config.theme))
|
|
24
|
-
* )
|
|
25
|
-
* ```
|
|
26
|
-
*/
|
|
27
|
-
declare function all<T extends readonly Result$1<unknown, unknown>[]>(results: T): AllArrayReturn<T>;
|
|
28
|
-
declare function all<T extends Record<string, Result$1<unknown, unknown>>>(results: T): AllObjectReturn<T>;
|
|
29
|
-
/**
|
|
30
|
-
* Result namespace containing all utility functions for working with Result types.
|
|
31
|
-
*
|
|
32
|
-
* Result represents either success (ok) or failure (err). Use this for operations
|
|
33
|
-
* that can fail with typed errors.
|
|
34
|
-
*
|
|
35
|
-
* @see {@link Option} for presence/absence semantics (no error information)
|
|
36
|
-
* @see {@link Either} for two valid outcomes (not just success/failure)
|
|
37
|
-
*
|
|
38
|
-
* @example
|
|
39
|
-
* ```ts
|
|
40
|
-
* import { Result, pipe } from '@repo/std'
|
|
41
|
-
* import type { Result as ResultType } from '@repo/std'
|
|
42
|
-
*
|
|
43
|
-
* const divide = (a: number, b: number): ResultType<number, string> =>
|
|
44
|
-
* b === 0 ? Result.err('division by zero') : Result.ok(a / b)
|
|
45
|
-
*
|
|
46
|
-
* const result = pipe(
|
|
47
|
-
* divide(10, 2),
|
|
48
|
-
* Result.map(n => n * 2),
|
|
49
|
-
* Result.unwrapOr(0)
|
|
50
|
-
* )
|
|
51
|
-
* ```
|
|
52
|
-
*/
|
|
53
|
-
declare const Result: {
|
|
54
|
-
readonly ok: <T>(value: T) => Result$1<T, never>;
|
|
55
|
-
readonly err: <E>(error: E) => Result$1<never, E>;
|
|
56
|
-
readonly isOk: <T, E>(result: Result$1<T, E>) => result is Extract<Result$1<T, E>, {
|
|
57
|
-
ok: true;
|
|
58
|
-
}>;
|
|
59
|
-
readonly isErr: <T, E>(result: Result$1<T, E>) => result is Extract<Result$1<T, E>, {
|
|
60
|
-
ok: false;
|
|
61
|
-
}>;
|
|
62
|
-
readonly map: ResultMap;
|
|
63
|
-
readonly mapErr: ResultMapErr;
|
|
64
|
-
readonly flatMap: ResultFlatMap;
|
|
65
|
-
readonly tap: ResultTap;
|
|
66
|
-
readonly orElse: ResultOrElse;
|
|
67
|
-
readonly filter: ResultFilter;
|
|
68
|
-
readonly all: typeof all;
|
|
69
|
-
readonly unwrapOr: <T>(defaultValue: T) => <E>(result: Result$1<T, E>) => T;
|
|
70
|
-
readonly unwrapOrElse: <E, T>(fn: (error: E) => T) => (result: Result$1<T, E>) => T;
|
|
71
|
-
readonly match: <T, E, U>(handlers: {
|
|
72
|
-
ok: (value: T) => U;
|
|
73
|
-
err: (error: E) => U;
|
|
74
|
-
}) => (result: Result$1<T, E>) => U;
|
|
75
|
-
readonly fromTry: <T>(fn: () => T) => FromTryReturn<T>;
|
|
76
|
-
};
|
|
77
|
-
//#endregion
|
|
78
|
-
export { all as n, Result as t };
|
|
79
|
-
//# sourceMappingURL=index-BwVaI5d0.d.mts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-BwVaI5d0.d.mts","names":[],"sources":["../src/result/result.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;iBAqVgB,uBAAuB,uCAAyC,IAAI,eAAe;iBACnF,cAAc,eAAe,sCAAwC,IAAI,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;cA2K5F;0BApegB,MAAI,SAAW;2BAoBd,MAAI,gBAAkB;gCA2BjB,SAAW,GAAG,iBAAe,QAAQ,SAAW,GAAG;;;iCAgBlD,SAAW,GAAG,iBAAe,QAAQ,SAAW,GAAG;;;;;;;;;;uCAiSnE,kBACN,SAAW,GAAG,OAAK;4CAkBZ,MAAM,eAChB,SAAW,GAAG,OAAK;;gBAqBM,MAAM;iBAAgB,MAAM;iBACrD,SAAW,GAAG,OAAK;kCA+CO,MAAI,cAAc"}
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
import { a as Option$1, c as OptionMap, l as OptionOrElse, n as AllObjectReturn, o as OptionFilter, r as FromTryReturn, s as OptionFlatMap, t as AllArrayReturn, u as OptionTap } from "./option.types-eqVODMIy.mjs";
|
|
2
|
-
|
|
3
|
-
//#region src/option/option.d.ts
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Combine multiple Options into a single Option.
|
|
7
|
-
* Supports both array and object inputs.
|
|
8
|
-
*
|
|
9
|
-
* - If all Options are some, returns some with all values
|
|
10
|
-
* - If any Option is none, returns none (short-circuits)
|
|
11
|
-
*
|
|
12
|
-
* @example
|
|
13
|
-
* ```ts
|
|
14
|
-
* // Array form (use `as const` for tuple types) - returns Option<[number, string]>
|
|
15
|
-
* const [num, str] = pipe(
|
|
16
|
-
* Option.all([parseNumber(input), parseString(other)] as const),
|
|
17
|
-
* Option.unwrapOr([0, ''])
|
|
18
|
-
* )
|
|
19
|
-
*
|
|
20
|
-
* // Object form - returns Option<{ user: User, config: Config }>
|
|
21
|
-
* pipe(
|
|
22
|
-
* Option.all({ user: findUser(id), config: loadConfig() }),
|
|
23
|
-
* Option.tap(({ user, config }) => console.log(user.name, config.theme))
|
|
24
|
-
* )
|
|
25
|
-
* ```
|
|
26
|
-
*/
|
|
27
|
-
declare function all<T extends readonly Option$1<unknown>[]>(options: T): AllArrayReturn<T>;
|
|
28
|
-
declare function all<T extends Record<string, Option$1<unknown>>>(options: T): AllObjectReturn<T>;
|
|
29
|
-
/**
|
|
30
|
-
* Option namespace containing all utility functions for working with Option types.
|
|
31
|
-
*
|
|
32
|
-
* Option represents either the presence (some) or absence (none) of a value.
|
|
33
|
-
* Use this for optional values without needing to track why the value is missing.
|
|
34
|
-
*
|
|
35
|
-
* @see {@link Result} for success/failure with error information
|
|
36
|
-
* @see {@link Either} for two valid outcomes
|
|
37
|
-
*
|
|
38
|
-
* @example
|
|
39
|
-
* ```ts
|
|
40
|
-
* import { Option, pipe } from '@repo/std'
|
|
41
|
-
* import type { Option as OptionType } from '@repo/std'
|
|
42
|
-
*
|
|
43
|
-
* const findUser = (id: number): OptionType<User> =>
|
|
44
|
-
* id > 0 ? Option.some({ id, name: 'Alice' }) : Option.none()
|
|
45
|
-
*
|
|
46
|
-
* const result = pipe(
|
|
47
|
-
* Option.some(10),
|
|
48
|
-
* Option.flatMap(findUser),
|
|
49
|
-
* Option.map(user => user.name),
|
|
50
|
-
* Option.unwrapOr('Unknown')
|
|
51
|
-
* )
|
|
52
|
-
* ```
|
|
53
|
-
*/
|
|
54
|
-
declare const Option: {
|
|
55
|
-
readonly some: <T>(value: T) => Option$1<T>;
|
|
56
|
-
readonly none: <T>() => Option$1<T>;
|
|
57
|
-
readonly isSome: <T>(option: Option$1<T>) => option is Extract<Option$1<T>, {
|
|
58
|
-
some: true;
|
|
59
|
-
}>;
|
|
60
|
-
readonly isNone: <T>(option: Option$1<T>) => option is Extract<Option$1<T>, {
|
|
61
|
-
some: false;
|
|
62
|
-
}>;
|
|
63
|
-
readonly map: OptionMap;
|
|
64
|
-
readonly flatMap: OptionFlatMap;
|
|
65
|
-
readonly tap: OptionTap;
|
|
66
|
-
readonly orElse: OptionOrElse;
|
|
67
|
-
readonly filter: OptionFilter;
|
|
68
|
-
readonly all: typeof all;
|
|
69
|
-
readonly unwrapOr: <T>(defaultValue: T) => (option: Option$1<T>) => T;
|
|
70
|
-
readonly unwrapOrElse: <T>(fn: () => T) => (option: Option$1<T>) => T;
|
|
71
|
-
readonly match: <T, U>(handlers: {
|
|
72
|
-
some: (value: T) => U;
|
|
73
|
-
none: () => U;
|
|
74
|
-
}) => (option: Option$1<T>) => U;
|
|
75
|
-
readonly fromNullable: <T>(value: T | null | undefined) => Option$1<T>;
|
|
76
|
-
readonly fromTry: <T>(fn: () => T) => FromTryReturn<T>;
|
|
77
|
-
};
|
|
78
|
-
//#endregion
|
|
79
|
-
export { all as n, Option as t };
|
|
80
|
-
//# sourceMappingURL=index-CckxkaUd.d.mts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-CckxkaUd.d.mts","names":[],"sources":["../src/option/option.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;iBA6SgB,uBAAuB,8BAAgC,IAAI,eAAe;iBAC1E,cAAc,eAAe,6BAA+B,IAAI,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;cA0LnF;4BA1ckB,MAAI,SAAW;0BAmBnB,SAAW;+BA0BJ,SAAW,iBAAe,QAAQ,SAAW;;;+BAgB7C,SAAW,iBAAe,QAAQ,SAAW;;;;;;;;;uCA0P3D,eACT,SAAW,OAAK;uCAkBX,eACL,SAAW,OAAK;;kBAqBQ,MAAM;gBAAe;iBAC7C,SAAW,OAAK;oCAqBY,yBAAuB,SAAW;kCA2CpC,MAAI,cAAc"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-Cp_4sFun.d.mts","names":[],"sources":["../src/adt/adt.types.ts","../src/adt/adt.record.ts","../src/adt/adt.data.ts","../src/adt/adt.match.ts","../src/adt/adt.codec.ts"],"sourcesContent":[],"mappings":"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OoB,SDmOV,GCnOU,CAAA,KAAA,EAAA,CAAA,GDoOhB,QCpOgB,CDoOP,aCpOO,CDoOO,CCpOP,CAAA,CAAA,GDqOhB,CCrOgB,SDqON,YCrOM,CAAA,KAAA,SAAA,EAAA,KAAA,EAAA,CAAA,GDsOd,QCtOc,CDsOL,WCtOK,CDsOO,CCtOP,CAAA,GDsOY,aCtOZ,CDsO0B,QCtO1B,CAAA,CAAA,GAAA,KAAA;;;;;;;;;;KDsPV,kBAAkB,UAAU,qBAAqB;AErQ7D;;;;;;;;;;AC7CY,KH8TA,SG9Ta,CAAA,CAAA,EAAA,YAAA,MAAA,CAAA,GH+TvB,CG/TuB,SH+Tb,GG/Ta,CAAA,KAAA,EAAA,CAAA,GHgUnB,GGhUmB,SAAA,MHgUH,CGhUG,GHiUjB,QGjUiB,CHiUR,WGjUQ,CHiUI,aGjUJ,CHiUkB,CGjUlB,CHiUoB,GGjUpB,CAAA,CAAA,CAAA,GHiU2B,aGjU3B,CHiUyC,GGjUzC,CAAA,CAAA,GAAA,KAAA,GAAA,KAAA;;;;;;AHLoC;;;;;AAkB7D;;;;;AAiBA;;;;;;AAqBA;;;;;;;;AAcA;AAeA;;;;;AAMA;;;;;AAAoG;AAWzE;AAe3B;;;;;;;;;;AAKmC,iBChEnB,MDgEmB,CAAA,mBAAA,MAAA,EAAA,YC9DvB,gBD8DuB,EAAA,eC7DlB,eD6DkB,CC7DF,UD6DE,EC7DQ,GD6DR,CAAA,CAAA,CAAA,UAAA,EC5DrB,UD4DqB,EAAA,MAAA,EC5DH,GD4DG,EAAA,MAAA,EC5DQ,MD4DR,CAAA,EC5DiB,YD4DjB,CC5D8B,UD4D9B,EC5DwC,GD4DxC,EC5D2C,MD4D3C,CAAA;AAAyC,iBCzD5D,MDyD4D,CAAA,mBAAA,MAAA,EAAA,YCzDlB,gBDyDkB,CAAA,CAAA,UAAA,ECxD9D,UDwD8D,EAAA,MAAA,ECvDlE,GDuDkE,CAAA,ECtDzE,YDsDyE,CCtD5D,UDsD4D,ECtDlD,GDsDkD,CAAA;;;;;;;AA1Hf;;;;;AAkB7D;;;;;AAiBA;;;;;;AAqBA;;;;;;;;AAcA;AAeA;;;;;AAMA;;;;;AAAoG;AAWzE;AAe3B;;;;;AACkC,iBEpElB,IFoEkB,CAAA,YEpEH,MFoEG,CAAA,MAAA,EEpEY,SFoEZ,CAAA,CAAA,CAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EEpE+C,GFoE/C,CAAA,EEpEmD,GFoEnD,CEpEuD,GFoEvD,CAAA;;;;;;;;AAtH2B;;AAO3C,KGFN,aHEM,CAAA,UAAA;EAAE,SAAA,UAAA,EAAA,MAAA;CAAC,EAAA,OAAA,CAAA,GAAA,QGDb,CHYI,CAAA,YAAe,CAAA,GAAA,CAAA,KAAA,EGZO,OHYP,CGZe,CHYf,EAAA;EAGO,SAAA,UAAA,EGfkC,CHelC;AAAd,CAAA,CAAA,EAAA,GGfyD,OHezD,EAFD;;AAgBnB;;;;;;AAqBA;;;;;;;;AAcA;AAeA;;;;;AAMA;;;;;AAAoG;AAWzE;AAe3B;AAAgC,iBG/EhB,KH+EgB,CAAA,UAAA;EACL,SAAA,UAAA,EAAA,MAAA;CAAX,EAAA,OAAA,EAAA,iBG7EG,aH6EH,CG7EiB,CH6EjB,EG7EoB,OH6EpB,CAAA,GG7E+B,aH6E/B,CG7E6C,CH6E7C,EG7EgD,OH6EhD,CAAA,CAAA,CAAA,KAAA,EG5EP,CH4EO,EAAA,QAAA,EG5EM,QH4EN,CAAA,EG5EiB,OH4EjB;;;;;AAtH6C;AAO/C,iBIUE,gBAAA,CJVF,IAAA,EIWN,UJXM,CAAA,MAAA,CAAA,EAAA,OAAA,EAAA,MAAA,EAAA,KAAA,CAAA,EAAA,OAAA,EAAA,gBAAA,CAAA,EIcO,eJdP,CAAA,QAAA,CAAA,CAAA,EIeX,UJfW"}
|