@shirudo/result 1.0.1 → 1.1.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/collections.cjs +4 -3
- package/dist/collections.d.cts +2 -2
- package/dist/collections.d.mts +2 -2
- package/dist/collections.mjs +2 -2
- package/dist/errors.cjs +131 -20
- package/dist/errors.cjs.map +1 -0
- package/dist/errors.d.cts +63 -2
- package/dist/errors.d.cts.map +1 -0
- package/dist/errors.d.mts +63 -2
- package/dist/errors.d.mts.map +1 -0
- package/dist/errors.mjs +109 -2
- package/dist/errors.mjs.map +1 -0
- package/dist/{flatten-Df9U40nO.cjs → flatten-B_XIkaOK.cjs} +29 -3
- package/dist/flatten-B_XIkaOK.cjs.map +1 -0
- package/dist/flatten-C7D6Kttf.d.mts +81 -0
- package/dist/flatten-C7D6Kttf.d.mts.map +1 -0
- package/dist/{flatten-C6Y9hx79.mjs → flatten-ChTL5BfA.mjs} +24 -4
- package/dist/flatten-ChTL5BfA.mjs.map +1 -0
- package/dist/flatten-D0K8UcQH.d.cts +81 -0
- package/dist/flatten-D0K8UcQH.d.cts.map +1 -0
- package/dist/index.cjs +90 -40
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +78 -58
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +78 -58
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +58 -12
- package/dist/index.mjs.map +1 -1
- package/dist/operators.cjs +31 -30
- package/dist/operators.d.cts +2 -2
- package/dist/operators.d.mts +2 -2
- package/dist/operators.mjs +2 -2
- package/dist/{result-CY-KIivk.cjs → result-BBOGxvSH.cjs} +86 -503
- package/dist/result-BBOGxvSH.cjs.map +1 -0
- package/dist/{result-DKKaNdOx.mjs → result-q9Na2bGa.mjs} +87 -372
- package/dist/result-q9Na2bGa.mjs.map +1 -0
- package/dist/sequence-DDwePRLd.d.cts +283 -0
- package/dist/sequence-DDwePRLd.d.cts.map +1 -0
- package/dist/sequence-DDwePRLd.d.mts +283 -0
- package/dist/sequence-DDwePRLd.d.mts.map +1 -0
- package/dist/swap-BnyMBdD_.cjs +552 -0
- package/dist/swap-BnyMBdD_.cjs.map +1 -0
- package/dist/swap-CFD2g1cB.mjs +385 -0
- package/dist/swap-CFD2g1cB.mjs.map +1 -0
- package/dist/swap-CrHQZIax.d.cts +212 -0
- package/dist/swap-CrHQZIax.d.cts.map +1 -0
- package/dist/swap-DT4LdRFV.d.mts +212 -0
- package/dist/swap-DT4LdRFV.d.mts.map +1 -0
- package/package.json +9 -8
- package/dist/errors-2WOswg7r.mjs +0 -95
- package/dist/errors-2WOswg7r.mjs.map +0 -1
- package/dist/errors-BFjY06EV.d.cts +0 -55
- package/dist/errors-BFjY06EV.d.cts.map +0 -1
- package/dist/errors-C5qGMRiU.d.mts +0 -55
- package/dist/errors-C5qGMRiU.d.mts.map +0 -1
- package/dist/errors-D2EMzJQl.cjs +0 -209
- package/dist/errors-D2EMzJQl.cjs.map +0 -1
- package/dist/flatten-B8bN6fiI.d.mts +0 -71
- package/dist/flatten-B8bN6fiI.d.mts.map +0 -1
- package/dist/flatten-C6Y9hx79.mjs.map +0 -1
- package/dist/flatten-DK7eJKPx.d.cts +0 -71
- package/dist/flatten-DK7eJKPx.d.cts.map +0 -1
- package/dist/flatten-Df9U40nO.cjs.map +0 -1
- package/dist/mapOrElse-B0_4r6Jn.mjs +0 -96
- package/dist/mapOrElse-B0_4r6Jn.mjs.map +0 -1
- package/dist/mapOrElse-B5gx9x2E.d.mts +0 -64
- package/dist/mapOrElse-B5gx9x2E.d.mts.map +0 -1
- package/dist/mapOrElse-DIe7LkYV.d.cts +0 -64
- package/dist/mapOrElse-DIe7LkYV.d.cts.map +0 -1
- package/dist/mapOrElse-H-GvAUka.cjs +0 -137
- package/dist/mapOrElse-H-GvAUka.cjs.map +0 -1
- package/dist/result-CY-KIivk.cjs.map +0 -1
- package/dist/result-DKKaNdOx.mjs.map +0 -1
- package/dist/sequence-Br6tAIIu.d.cts +0 -419
- package/dist/sequence-Br6tAIIu.d.cts.map +0 -1
- package/dist/sequence-C0jlR3AY.d.mts +0 -419
- package/dist/sequence-C0jlR3AY.d.mts.map +0 -1
package/dist/errors-D2EMzJQl.cjs
DELETED
|
@@ -1,209 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
//#region src/errors.ts
|
|
3
|
-
const ERR_INVALID_RESULT_STATE = "ERR_INVALID_RESULT_STATE";
|
|
4
|
-
const ERR_INVALID_STATE = ERR_INVALID_RESULT_STATE;
|
|
5
|
-
const ERR_TASK_YIELD_NOT_RESULT = "ERR_TASK_YIELD_NOT_RESULT";
|
|
6
|
-
const ERR_MATCH_ON_OK = "ERR_MATCH_ON_OK";
|
|
7
|
-
const ERR_MATCH_ERR_HANDLER_NOT_RESULT = "ERR_MATCH_ERR_HANDLER_NOT_RESULT";
|
|
8
|
-
const ERR_UNWRAP_ON_ERR = "ERR_UNWRAP_ON_ERR";
|
|
9
|
-
const ERR_UNWRAP_ERR_ON_OK = "ERR_UNWRAP_ERR_ON_OK";
|
|
10
|
-
const ERR_EXPECT_OK = "ERR_EXPECT_OK";
|
|
11
|
-
const ERR_EXPECT_ERR = "ERR_EXPECT_ERR";
|
|
12
|
-
const formatResultErrorMessage = (code, message, context) => {
|
|
13
|
-
if (context) return `${code}: ${message} (context: ${context})`;
|
|
14
|
-
return `${code}: ${message}`;
|
|
15
|
-
};
|
|
16
|
-
var ResultError = class extends Error {
|
|
17
|
-
code;
|
|
18
|
-
context;
|
|
19
|
-
constructor(message, code, context) {
|
|
20
|
-
super(formatResultErrorMessage(code, message, context));
|
|
21
|
-
this.code = code;
|
|
22
|
-
this.context = context;
|
|
23
|
-
this.name = new.target.name;
|
|
24
|
-
Object.setPrototypeOf(this, new.target.prototype);
|
|
25
|
-
}
|
|
26
|
-
};
|
|
27
|
-
var ResultTypeError = class extends TypeError {
|
|
28
|
-
code;
|
|
29
|
-
context;
|
|
30
|
-
constructor(message, code, context) {
|
|
31
|
-
super(formatResultErrorMessage(code, message, context));
|
|
32
|
-
this.code = code;
|
|
33
|
-
this.context = context;
|
|
34
|
-
this.name = new.target.name;
|
|
35
|
-
Object.setPrototypeOf(this, new.target.prototype);
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
const INVALID_RESULT_STATE_MESSAGE = "Unreachable: Result is neither Ok nor Err";
|
|
39
|
-
var InvalidResultStateError = class extends ResultError {
|
|
40
|
-
constructor(context) {
|
|
41
|
-
super(INVALID_RESULT_STATE_MESSAGE, ERR_INVALID_RESULT_STATE, context);
|
|
42
|
-
}
|
|
43
|
-
};
|
|
44
|
-
var TaskYieldNotResultError = class extends ResultTypeError {
|
|
45
|
-
yieldedValue;
|
|
46
|
-
constructor(yieldedValue) {
|
|
47
|
-
super("task() expected yielded values to be Result. Use `yield*` on a Result.", ERR_TASK_YIELD_NOT_RESULT);
|
|
48
|
-
this.yieldedValue = yieldedValue;
|
|
49
|
-
}
|
|
50
|
-
};
|
|
51
|
-
var MatchOnOkError = class extends ResultTypeError {
|
|
52
|
-
constructor(methodName = "match") {
|
|
53
|
-
super(`${methodName}() can only be called on Err results. Use \`if (result.isErr()) { ... }\` first.`, ERR_MATCH_ON_OK);
|
|
54
|
-
}
|
|
55
|
-
};
|
|
56
|
-
var MatchErrHandlerNotResultError = class extends ResultTypeError {
|
|
57
|
-
handlerName;
|
|
58
|
-
returnedValue;
|
|
59
|
-
constructor(handlerName, returnedValue) {
|
|
60
|
-
super(`matchErr().${handlerName}() handlers must return a Result. Wrap values with ok(...) or err(...).`, ERR_MATCH_ERR_HANDLER_NOT_RESULT);
|
|
61
|
-
this.handlerName = handlerName;
|
|
62
|
-
this.returnedValue = returnedValue;
|
|
63
|
-
}
|
|
64
|
-
};
|
|
65
|
-
var UnwrapOnErrError = class extends ResultTypeError {
|
|
66
|
-
errorValue;
|
|
67
|
-
constructor(errorValue) {
|
|
68
|
-
super(`Called unwrap() on Err: ${String(errorValue)}`, ERR_UNWRAP_ON_ERR);
|
|
69
|
-
this.errorValue = errorValue;
|
|
70
|
-
}
|
|
71
|
-
};
|
|
72
|
-
var UnwrapErrOnOkError = class extends ResultTypeError {
|
|
73
|
-
okValue;
|
|
74
|
-
constructor(okValue) {
|
|
75
|
-
super(`Called unwrapErr() on Ok: ${String(okValue)}`, ERR_UNWRAP_ERR_ON_OK);
|
|
76
|
-
this.okValue = okValue;
|
|
77
|
-
}
|
|
78
|
-
};
|
|
79
|
-
var ExpectOkError = class extends ResultError {
|
|
80
|
-
expectedMessage;
|
|
81
|
-
constructor(expectedMessage) {
|
|
82
|
-
super(expectedMessage, ERR_EXPECT_OK);
|
|
83
|
-
this.expectedMessage = expectedMessage;
|
|
84
|
-
}
|
|
85
|
-
};
|
|
86
|
-
var ExpectErrError = class extends ResultError {
|
|
87
|
-
expectedMessage;
|
|
88
|
-
constructor(expectedMessage) {
|
|
89
|
-
super(expectedMessage, ERR_EXPECT_ERR);
|
|
90
|
-
this.expectedMessage = expectedMessage;
|
|
91
|
-
}
|
|
92
|
-
};
|
|
93
|
-
|
|
94
|
-
//#endregion
|
|
95
|
-
Object.defineProperty(exports, 'ERR_EXPECT_ERR', {
|
|
96
|
-
enumerable: true,
|
|
97
|
-
get: function () {
|
|
98
|
-
return ERR_EXPECT_ERR;
|
|
99
|
-
}
|
|
100
|
-
});
|
|
101
|
-
Object.defineProperty(exports, 'ERR_EXPECT_OK', {
|
|
102
|
-
enumerable: true,
|
|
103
|
-
get: function () {
|
|
104
|
-
return ERR_EXPECT_OK;
|
|
105
|
-
}
|
|
106
|
-
});
|
|
107
|
-
Object.defineProperty(exports, 'ERR_INVALID_RESULT_STATE', {
|
|
108
|
-
enumerable: true,
|
|
109
|
-
get: function () {
|
|
110
|
-
return ERR_INVALID_RESULT_STATE;
|
|
111
|
-
}
|
|
112
|
-
});
|
|
113
|
-
Object.defineProperty(exports, 'ERR_INVALID_STATE', {
|
|
114
|
-
enumerable: true,
|
|
115
|
-
get: function () {
|
|
116
|
-
return ERR_INVALID_STATE;
|
|
117
|
-
}
|
|
118
|
-
});
|
|
119
|
-
Object.defineProperty(exports, 'ERR_MATCH_ERR_HANDLER_NOT_RESULT', {
|
|
120
|
-
enumerable: true,
|
|
121
|
-
get: function () {
|
|
122
|
-
return ERR_MATCH_ERR_HANDLER_NOT_RESULT;
|
|
123
|
-
}
|
|
124
|
-
});
|
|
125
|
-
Object.defineProperty(exports, 'ERR_MATCH_ON_OK', {
|
|
126
|
-
enumerable: true,
|
|
127
|
-
get: function () {
|
|
128
|
-
return ERR_MATCH_ON_OK;
|
|
129
|
-
}
|
|
130
|
-
});
|
|
131
|
-
Object.defineProperty(exports, 'ERR_TASK_YIELD_NOT_RESULT', {
|
|
132
|
-
enumerable: true,
|
|
133
|
-
get: function () {
|
|
134
|
-
return ERR_TASK_YIELD_NOT_RESULT;
|
|
135
|
-
}
|
|
136
|
-
});
|
|
137
|
-
Object.defineProperty(exports, 'ERR_UNWRAP_ERR_ON_OK', {
|
|
138
|
-
enumerable: true,
|
|
139
|
-
get: function () {
|
|
140
|
-
return ERR_UNWRAP_ERR_ON_OK;
|
|
141
|
-
}
|
|
142
|
-
});
|
|
143
|
-
Object.defineProperty(exports, 'ERR_UNWRAP_ON_ERR', {
|
|
144
|
-
enumerable: true,
|
|
145
|
-
get: function () {
|
|
146
|
-
return ERR_UNWRAP_ON_ERR;
|
|
147
|
-
}
|
|
148
|
-
});
|
|
149
|
-
Object.defineProperty(exports, 'ExpectErrError', {
|
|
150
|
-
enumerable: true,
|
|
151
|
-
get: function () {
|
|
152
|
-
return ExpectErrError;
|
|
153
|
-
}
|
|
154
|
-
});
|
|
155
|
-
Object.defineProperty(exports, 'ExpectOkError', {
|
|
156
|
-
enumerable: true,
|
|
157
|
-
get: function () {
|
|
158
|
-
return ExpectOkError;
|
|
159
|
-
}
|
|
160
|
-
});
|
|
161
|
-
Object.defineProperty(exports, 'InvalidResultStateError', {
|
|
162
|
-
enumerable: true,
|
|
163
|
-
get: function () {
|
|
164
|
-
return InvalidResultStateError;
|
|
165
|
-
}
|
|
166
|
-
});
|
|
167
|
-
Object.defineProperty(exports, 'MatchErrHandlerNotResultError', {
|
|
168
|
-
enumerable: true,
|
|
169
|
-
get: function () {
|
|
170
|
-
return MatchErrHandlerNotResultError;
|
|
171
|
-
}
|
|
172
|
-
});
|
|
173
|
-
Object.defineProperty(exports, 'MatchOnOkError', {
|
|
174
|
-
enumerable: true,
|
|
175
|
-
get: function () {
|
|
176
|
-
return MatchOnOkError;
|
|
177
|
-
}
|
|
178
|
-
});
|
|
179
|
-
Object.defineProperty(exports, 'ResultError', {
|
|
180
|
-
enumerable: true,
|
|
181
|
-
get: function () {
|
|
182
|
-
return ResultError;
|
|
183
|
-
}
|
|
184
|
-
});
|
|
185
|
-
Object.defineProperty(exports, 'ResultTypeError', {
|
|
186
|
-
enumerable: true,
|
|
187
|
-
get: function () {
|
|
188
|
-
return ResultTypeError;
|
|
189
|
-
}
|
|
190
|
-
});
|
|
191
|
-
Object.defineProperty(exports, 'TaskYieldNotResultError', {
|
|
192
|
-
enumerable: true,
|
|
193
|
-
get: function () {
|
|
194
|
-
return TaskYieldNotResultError;
|
|
195
|
-
}
|
|
196
|
-
});
|
|
197
|
-
Object.defineProperty(exports, 'UnwrapErrOnOkError', {
|
|
198
|
-
enumerable: true,
|
|
199
|
-
get: function () {
|
|
200
|
-
return UnwrapErrOnOkError;
|
|
201
|
-
}
|
|
202
|
-
});
|
|
203
|
-
Object.defineProperty(exports, 'UnwrapOnErrError', {
|
|
204
|
-
enumerable: true,
|
|
205
|
-
get: function () {
|
|
206
|
-
return UnwrapOnErrError;
|
|
207
|
-
}
|
|
208
|
-
});
|
|
209
|
-
//# sourceMappingURL=errors-D2EMzJQl.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"errors-D2EMzJQl.cjs","names":[],"sources":["../src/errors.ts"],"sourcesContent":["export const ERR_INVALID_RESULT_STATE = 'ERR_INVALID_RESULT_STATE' as const;\nexport const ERR_INVALID_STATE = ERR_INVALID_RESULT_STATE;\nexport const ERR_TASK_YIELD_NOT_RESULT = 'ERR_TASK_YIELD_NOT_RESULT' as const;\nexport const ERR_MATCH_ON_OK = 'ERR_MATCH_ON_OK' as const;\nexport const ERR_MATCH_ERR_HANDLER_NOT_RESULT = 'ERR_MATCH_ERR_HANDLER_NOT_RESULT' as const;\nexport const ERR_UNWRAP_ON_ERR = 'ERR_UNWRAP_ON_ERR' as const;\nexport const ERR_UNWRAP_ERR_ON_OK = 'ERR_UNWRAP_ERR_ON_OK' as const;\nexport const ERR_EXPECT_OK = 'ERR_EXPECT_OK' as const;\nexport const ERR_EXPECT_ERR = 'ERR_EXPECT_ERR' as const;\n\nexport type ResultErrorCode =\n | typeof ERR_INVALID_RESULT_STATE\n | typeof ERR_TASK_YIELD_NOT_RESULT\n | typeof ERR_MATCH_ON_OK\n | typeof ERR_MATCH_ERR_HANDLER_NOT_RESULT\n | typeof ERR_UNWRAP_ON_ERR\n | typeof ERR_UNWRAP_ERR_ON_OK\n | typeof ERR_EXPECT_OK\n | typeof ERR_EXPECT_ERR;\n\nconst formatResultErrorMessage = (code: ResultErrorCode, message: string, context?: string): string => {\n if (context) {\n return `${code}: ${message} (context: ${context})`;\n }\n return `${code}: ${message}`;\n};\n\nexport class ResultError extends Error {\n readonly code: ResultErrorCode;\n readonly context?: string;\n\n constructor(message: string, code: ResultErrorCode, context?: string) {\n super(formatResultErrorMessage(code, message, context));\n this.code = code;\n this.context = context;\n this.name = new.target.name;\n Object.setPrototypeOf(this, new.target.prototype);\n }\n}\n\nexport class ResultTypeError extends TypeError {\n readonly code: ResultErrorCode;\n readonly context?: string;\n\n constructor(message: string, code: ResultErrorCode, context?: string) {\n super(formatResultErrorMessage(code, message, context));\n this.code = code;\n this.context = context;\n this.name = new.target.name;\n Object.setPrototypeOf(this, new.target.prototype);\n }\n}\n\nconst INVALID_RESULT_STATE_MESSAGE = 'Unreachable: Result is neither Ok nor Err';\n\nexport class InvalidResultStateError extends ResultError {\n constructor(context?: string) {\n super(INVALID_RESULT_STATE_MESSAGE, ERR_INVALID_RESULT_STATE, context);\n }\n}\n\nexport class TaskYieldNotResultError extends ResultTypeError {\n readonly yieldedValue: unknown;\n\n constructor(yieldedValue: unknown) {\n super('task() expected yielded values to be Result. Use `yield*` on a Result.', ERR_TASK_YIELD_NOT_RESULT);\n this.yieldedValue = yieldedValue;\n }\n}\n\nexport class MatchOnOkError extends ResultTypeError {\n constructor(methodName = 'match') {\n super(`${methodName}() can only be called on Err results. Use \\`if (result.isErr()) { ... }\\` first.`, ERR_MATCH_ON_OK);\n }\n}\n\nexport class MatchErrHandlerNotResultError extends ResultTypeError {\n readonly handlerName: string;\n readonly returnedValue: unknown;\n\n constructor(handlerName: string, returnedValue: unknown) {\n super(`matchErr().${handlerName}() handlers must return a Result. Wrap values with ok(...) or err(...).`, ERR_MATCH_ERR_HANDLER_NOT_RESULT);\n this.handlerName = handlerName;\n this.returnedValue = returnedValue;\n }\n}\n\nexport class UnwrapOnErrError extends ResultTypeError {\n readonly errorValue: unknown;\n\n constructor(errorValue: unknown) {\n super(`Called unwrap() on Err: ${String(errorValue)}`, ERR_UNWRAP_ON_ERR);\n this.errorValue = errorValue;\n }\n}\n\nexport class UnwrapErrOnOkError extends ResultTypeError {\n readonly okValue: unknown;\n\n constructor(okValue: unknown) {\n super(`Called unwrapErr() on Ok: ${String(okValue)}`, ERR_UNWRAP_ERR_ON_OK);\n this.okValue = okValue;\n }\n}\n\nexport class ExpectOkError extends ResultError {\n readonly expectedMessage: string;\n\n constructor(expectedMessage: string) {\n super(expectedMessage, ERR_EXPECT_OK);\n this.expectedMessage = expectedMessage;\n }\n}\n\nexport class ExpectErrError extends ResultError {\n readonly expectedMessage: string;\n\n constructor(expectedMessage: string) {\n super(expectedMessage, ERR_EXPECT_ERR);\n this.expectedMessage = expectedMessage;\n }\n}\n"],"mappings":";;AAAA,MAAa,2BAA2B;AACxC,MAAa,oBAAoB;AACjC,MAAa,4BAA4B;AACzC,MAAa,kBAAkB;AAC/B,MAAa,mCAAmC;AAChD,MAAa,oBAAoB;AACjC,MAAa,uBAAuB;AACpC,MAAa,gBAAgB;AAC7B,MAAa,iBAAiB;AAY9B,MAAM,4BAA4B,MAAuB,SAAiB,YAA6B;AACnG,KAAI,QACA,QAAO,GAAG,KAAK,IAAI,QAAQ,aAAa,QAAQ;AAEpD,QAAO,GAAG,KAAK,IAAI;;AAGvB,IAAa,cAAb,cAAiC,MAAM;CACnC,AAAS;CACT,AAAS;CAET,YAAY,SAAiB,MAAuB,SAAkB;AAClE,QAAM,yBAAyB,MAAM,SAAS,QAAQ,CAAC;AACvD,OAAK,OAAO;AACZ,OAAK,UAAU;AACf,OAAK,OAAO,IAAI,OAAO;AACvB,SAAO,eAAe,MAAM,IAAI,OAAO,UAAU;;;AAIzD,IAAa,kBAAb,cAAqC,UAAU;CAC3C,AAAS;CACT,AAAS;CAET,YAAY,SAAiB,MAAuB,SAAkB;AAClE,QAAM,yBAAyB,MAAM,SAAS,QAAQ,CAAC;AACvD,OAAK,OAAO;AACZ,OAAK,UAAU;AACf,OAAK,OAAO,IAAI,OAAO;AACvB,SAAO,eAAe,MAAM,IAAI,OAAO,UAAU;;;AAIzD,MAAM,+BAA+B;AAErC,IAAa,0BAAb,cAA6C,YAAY;CACrD,YAAY,SAAkB;AAC1B,QAAM,8BAA8B,0BAA0B,QAAQ;;;AAI9E,IAAa,0BAAb,cAA6C,gBAAgB;CACzD,AAAS;CAET,YAAY,cAAuB;AAC/B,QAAM,0EAA0E,0BAA0B;AAC1G,OAAK,eAAe;;;AAI5B,IAAa,iBAAb,cAAoC,gBAAgB;CAChD,YAAY,aAAa,SAAS;AAC9B,QAAM,GAAG,WAAW,mFAAmF,gBAAgB;;;AAI/H,IAAa,gCAAb,cAAmD,gBAAgB;CAC/D,AAAS;CACT,AAAS;CAET,YAAY,aAAqB,eAAwB;AACrD,QAAM,cAAc,YAAY,0EAA0E,iCAAiC;AAC3I,OAAK,cAAc;AACnB,OAAK,gBAAgB;;;AAI7B,IAAa,mBAAb,cAAsC,gBAAgB;CAClD,AAAS;CAET,YAAY,YAAqB;AAC7B,QAAM,2BAA2B,OAAO,WAAW,IAAI,kBAAkB;AACzE,OAAK,aAAa;;;AAI1B,IAAa,qBAAb,cAAwC,gBAAgB;CACpD,AAAS;CAET,YAAY,SAAkB;AAC1B,QAAM,6BAA6B,OAAO,QAAQ,IAAI,qBAAqB;AAC3E,OAAK,UAAU;;;AAIvB,IAAa,gBAAb,cAAmC,YAAY;CAC3C,AAAS;CAET,YAAY,iBAAyB;AACjC,QAAM,iBAAiB,cAAc;AACrC,OAAK,kBAAkB;;;AAI/B,IAAa,iBAAb,cAAoC,YAAY;CAC5C,AAAS;CAET,YAAY,iBAAyB;AACjC,QAAM,iBAAiB,eAAe;AACtC,OAAK,kBAAkB"}
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import { W as Awaitable, s as Result } from "./sequence-C0jlR3AY.mjs";
|
|
2
|
-
|
|
3
|
-
//#region src/core/sequenceRecord.d.ts
|
|
4
|
-
type OkValueOf$2<R$1> = R$1 extends Result<infer T, any> ? T : never;
|
|
5
|
-
type ErrValueOf$2<R$1> = R$1 extends Result<any, infer E> ? E : never;
|
|
6
|
-
/**
|
|
7
|
-
* Like `sequence`, but for Records/Objects.
|
|
8
|
-
* Short-circuits on the first Err.
|
|
9
|
-
*/
|
|
10
|
-
declare function sequenceRecord<const R$1 extends { readonly [K in keyof R$1]: Result<any, any> }>(record: R$1): Result<{ [K in keyof R$1]: OkValueOf$2<R$1[K]> }, ErrValueOf$2<R$1[keyof R$1]>>;
|
|
11
|
-
//#endregion
|
|
12
|
-
//#region src/core/collectFirstOkAsync.d.ts
|
|
13
|
-
type CollectFirstOkAsyncInput$1 = Promise<Result<any, any>> | (() => Awaitable<Result<any, any>>);
|
|
14
|
-
type ResolvedResult$1<I> = I extends (() => infer R) ? Awaited<R> : I extends Promise<infer R> ? R : never;
|
|
15
|
-
type OkValueOfInput$1<I> = ResolvedResult$1<I> extends Result<infer T, any> ? T : never;
|
|
16
|
-
type ErrValueOfInput$1<I> = ResolvedResult$1<I> extends Result<any, infer E> ? E : never;
|
|
17
|
-
/**
|
|
18
|
-
* Async version of collectFirstOk.
|
|
19
|
-
*
|
|
20
|
-
* - Takes either already started Promises or "Thunks" (`() => Awaitable<Result<...>>`).
|
|
21
|
-
* - Processes inputs strictly sequentially (like `for ... of` + `await`).
|
|
22
|
-
* - Returns the first `Ok` and collects all errors if no `Ok` is found.
|
|
23
|
-
*/
|
|
24
|
-
declare function collectFirstOkAsync<const Inputs extends readonly CollectFirstOkAsyncInput$1[]>(inputs: Inputs): Promise<Result<OkValueOfInput$1<Inputs[number]>, ErrValueOfInput$1<Inputs[number]>[]>>;
|
|
25
|
-
//#endregion
|
|
26
|
-
//#region src/core/collectFirstOkParallelAsync.d.ts
|
|
27
|
-
type CollectFirstOkAsyncInput = Promise<Result<any, any>> | (() => Awaitable<Result<any, any>>);
|
|
28
|
-
type ResolvedResult<I> = I extends (() => infer R) ? Awaited<R> : I extends Promise<infer R> ? R : never;
|
|
29
|
-
type OkValueOfInput<I> = ResolvedResult<I> extends Result<infer T, any> ? T : never;
|
|
30
|
-
type ErrValueOfInput<I> = ResolvedResult<I> extends Result<any, infer E> ? E : never;
|
|
31
|
-
/**
|
|
32
|
-
* Parallel version of `collectFirstOkAsync`.
|
|
33
|
-
*
|
|
34
|
-
* - Starts all inputs immediately (Promises or Thunks).
|
|
35
|
-
* - Returns the first `Ok` as soon as it is available.
|
|
36
|
-
* - If no `Ok` is found, returns an `Err` with all error values (in input order).
|
|
37
|
-
* - Rejections are treated as `ErrValue` (`caught as ErrValue`).
|
|
38
|
-
* - If multiple inputs provide an `Ok`, the one that completes first wins.
|
|
39
|
-
* In case of simultaneous completion, the first observed result wins.
|
|
40
|
-
* - If no `Ok` arrives and at least one input never settles, the Promise remains pending.
|
|
41
|
-
*/
|
|
42
|
-
declare function collectFirstOkParallelAsync<const Inputs extends readonly CollectFirstOkAsyncInput[]>(inputs: Inputs): Promise<Result<OkValueOfInput<Inputs[number]>, ErrValueOfInput<Inputs[number]>[]>>;
|
|
43
|
-
//#endregion
|
|
44
|
-
//#region src/core/collectAllErrors.d.ts
|
|
45
|
-
type OkValueOf$1<R$1> = R$1 extends Result<infer T, any> ? T : never;
|
|
46
|
-
type ErrValueOf$1<R$1> = R$1 extends Result<any, infer E> ? E : never;
|
|
47
|
-
type CollectionValues<Results extends readonly Result<any, any>[]> = { -readonly [K in keyof Results]: OkValueOf$1<Results[K]> };
|
|
48
|
-
/**
|
|
49
|
-
* Combines a list of Results.
|
|
50
|
-
* Return Ok(values) only if all are Ok, otherwise Err([errors]).
|
|
51
|
-
*/
|
|
52
|
-
declare function collectAllErrors<const Results extends readonly Result<any, any>[]>(results: Results): Result<CollectionValues<Results>, Array<ErrValueOf$1<Results[number]>>>;
|
|
53
|
-
//#endregion
|
|
54
|
-
//#region src/core/partition.d.ts
|
|
55
|
-
type OkValueOf<R$1> = R$1 extends Result<infer T, any> ? T : never;
|
|
56
|
-
type ErrValueOf<R$1> = R$1 extends Result<any, infer E> ? E : never;
|
|
57
|
-
/**
|
|
58
|
-
* Partitions Results into Ok values and Err errors.
|
|
59
|
-
*/
|
|
60
|
-
declare function partition<const Results extends readonly Result<any, any>[]>(results: Results): [oks: Array<OkValueOf<Results[number]>>, errs: Array<ErrValueOf<Results[number]>>];
|
|
61
|
-
//#endregion
|
|
62
|
-
//#region src/core/flatten.d.ts
|
|
63
|
-
/**
|
|
64
|
-
* Flattens a nested Result.
|
|
65
|
-
* Result<Result<T, E>, E> → Result<T, E>
|
|
66
|
-
* Corresponds to Rust `flatten`.
|
|
67
|
-
*/
|
|
68
|
-
declare function flatten<T, E>(result: Result<Result<T, E>, E>): Result<T, E>;
|
|
69
|
-
//#endregion
|
|
70
|
-
export { collectFirstOkAsync as a, collectFirstOkParallelAsync as i, partition as n, sequenceRecord as o, collectAllErrors as r, flatten as t };
|
|
71
|
-
//# sourceMappingURL=flatten-B8bN6fiI.d.mts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"flatten-B8bN6fiI.d.mts","names":[],"sources":["../src/core/sequenceRecord.ts","../src/core/collectFirstOkAsync.ts","../src/core/collectFirstOkParallelAsync.ts","../src/core/collectAllErrors.ts","../src/core/partition.ts","../src/core/flatten.ts"],"sourcesContent":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"flatten-C6Y9hx79.mjs","names":["out: Partial<Out>","errors: Array<ErrValueOfInput<Inputs[number]>>","result: Result<any, any>","errors: ErrValue[]","values: Array<OkValueOf<Results[number]>>","errors: Array<ErrValueOf<Results[number]>>","oks: Array<OkValueOf<Results[number]>>","errs: Array<ErrValueOf<Results[number]>>"],"sources":["../src/core/sequenceRecord.ts","../src/core/collectFirstOkAsync.ts","../src/core/collectFirstOkParallelAsync.ts","../src/core/collectAllErrors.ts","../src/core/partition.ts","../src/core/flatten.ts"],"sourcesContent":["import type { Result } from './result';\nimport { ok } from './result';\nimport { InvalidResultStateError } from '../errors';\nimport { isResult } from './isResult';\n\ntype OkValueOf<R> = R extends Result<infer T, any> ? T : never;\ntype ErrValueOf<R> = R extends Result<any, infer E> ? E : never;\n\n/**\n * Like `sequence`, but for Records/Objects.\n * Short-circuits on the first Err.\n */\nexport function sequenceRecord<const R extends { readonly [K in keyof R]: Result<any, any> }>(\n record: R\n): Result<{ [K in keyof R]: OkValueOf<R[K]> }, ErrValueOf<R[keyof R]>> {\n type Out = { [K in keyof R]: OkValueOf<R[K]> };\n type E = ErrValueOf<R[keyof R]>;\n\n const out: Partial<Out> = {};\n\n for (const key of Reflect.ownKeys(record) as Array<keyof R>) {\n const result = record[key];\n if (!isResult(result)) throw new InvalidResultStateError('sequenceRecord');\n if (result.isOk()) {\n out[key] = result.value as Out[typeof key];\n continue;\n }\n if (result.isErr()) return result as unknown as Result<Out, E>;\n throw new InvalidResultStateError('sequenceRecord');\n }\n\n return ok<Out, E>(out as Out);\n}\n","import type { Result } from './result';\nimport { ok, err } from './result';\nimport type { Awaitable } from './pipeable';\nimport { InvalidResultStateError } from '../errors';\n\ntype CollectFirstOkAsyncInput =\n | Promise<Result<any, any>>\n | (() => Awaitable<Result<any, any>>);\n\ntype ResolvedResult<I> = I extends () => infer R ? Awaited<R> : I extends Promise<infer R> ? R : never;\ntype OkValueOfInput<I> = ResolvedResult<I> extends Result<infer T, any> ? T : never;\ntype ErrValueOfInput<I> = ResolvedResult<I> extends Result<any, infer E> ? E : never;\n\n/**\n * Async version of collectFirstOk.\n *\n * - Takes either already started Promises or \"Thunks\" (`() => Awaitable<Result<...>>`).\n * - Processes inputs strictly sequentially (like `for ... of` + `await`).\n * - Returns the first `Ok` and collects all errors if no `Ok` is found.\n */\nexport async function collectFirstOkAsync<const Inputs extends readonly CollectFirstOkAsyncInput[]>(\n inputs: Inputs\n): Promise<Result<OkValueOfInput<Inputs[number]>, ErrValueOfInput<Inputs[number]>[]>> {\n const errors: Array<ErrValueOfInput<Inputs[number]>> = [];\n\n for (const input of inputs) {\n const pendingResult = typeof input === 'function' ? input() : input;\n let result: Result<any, any>;\n try {\n result = await pendingResult;\n } catch (error) {\n errors.push(error as ErrValueOfInput<Inputs[number]>);\n continue;\n }\n\n if (result.isOk()) {\n return ok<OkValueOfInput<Inputs[number]>, ErrValueOfInput<Inputs[number]>[]>(\n result.value as OkValueOfInput<Inputs[number]>\n );\n }\n if (result.isErr()) {\n errors.push(result.error as ErrValueOfInput<Inputs[number]>);\n continue;\n }\n throw new InvalidResultStateError('collectFirstOkAsync');\n }\n\n return err<ErrValueOfInput<Inputs[number]>[], OkValueOfInput<Inputs[number]>>(errors);\n}\n","import type { Awaitable } from './pipeable';\nimport type { Result } from './result';\nimport { err, ok } from './result';\nimport { InvalidResultStateError } from '../errors';\n\ntype CollectFirstOkAsyncInput = Promise<Result<any, any>> | (() => Awaitable<Result<any, any>>);\n\ntype ResolvedResult<I> = I extends () => infer R ? Awaited<R> : I extends Promise<infer R> ? R : never;\ntype OkValueOfInput<I> = ResolvedResult<I> extends Result<infer T, any> ? T : never;\ntype ErrValueOfInput<I> = ResolvedResult<I> extends Result<any, infer E> ? E : never;\n\n/**\n * Parallel version of `collectFirstOkAsync`.\n *\n * - Starts all inputs immediately (Promises or Thunks).\n * - Returns the first `Ok` as soon as it is available.\n * - If no `Ok` is found, returns an `Err` with all error values (in input order).\n * - Rejections are treated as `ErrValue` (`caught as ErrValue`).\n * - If multiple inputs provide an `Ok`, the one that completes first wins.\n * In case of simultaneous completion, the first observed result wins.\n * - If no `Ok` arrives and at least one input never settles, the Promise remains pending.\n */\nexport async function collectFirstOkParallelAsync<const Inputs extends readonly CollectFirstOkAsyncInput[]>(\n inputs: Inputs\n): Promise<Result<OkValueOfInput<Inputs[number]>, ErrValueOfInput<Inputs[number]>[]>> {\n type OkValue = OkValueOfInput<Inputs[number]>;\n type ErrValue = ErrValueOfInput<Inputs[number]>;\n\n if (inputs.length === 0) {\n return err<ErrValue[], OkValue>([]);\n }\n\n const started = inputs.map((input) =>\n typeof input === 'function' ? Promise.resolve().then(input) : input\n );\n\n const firstOk = new Promise<Result<OkValue, ErrValue[]>>((resolve) => {\n for (const promise of started) {\n promise\n .then((result) => {\n if (result.isOk()) {\n resolve(ok<OkValue, ErrValue[]>(result.value as OkValue));\n }\n })\n .catch(() => {\n // Ignored here; handled in allSettled below.\n });\n }\n });\n\n const allErrors = Promise.allSettled(started).then((settled) => {\n const errors: ErrValue[] = [];\n for (const entry of settled) {\n if (entry.status === 'fulfilled') {\n const result = entry.value;\n if (result.isErr()) {\n errors.push(result.error as ErrValue);\n } else if (!result.isOk()) {\n throw new InvalidResultStateError('collectFirstOkParallelAsync');\n }\n } else {\n errors.push(entry.reason as ErrValue);\n }\n }\n return err<ErrValue[], OkValue>(errors);\n });\n\n return Promise.race([firstOk, allErrors]);\n}\n","import type { Result } from './result';\nimport { ok, err } from './result';\nimport { InvalidResultStateError } from '../errors';\n\ntype OkValueOf<R> = R extends Result<infer T, any> ? T : never;\ntype ErrValueOf<R> = R extends Result<any, infer E> ? E : never;\ntype CollectionValues<Results extends readonly Result<any, any>[]> = {\n -readonly [K in keyof Results]: OkValueOf<Results[K]>;\n};\n\n/**\n * Combines a list of Results.\n * Return Ok(values) only if all are Ok, otherwise Err([errors]).\n */\nexport function collectAllErrors<const Results extends readonly Result<any, any>[]>(\n results: Results\n): Result<CollectionValues<Results>, Array<ErrValueOf<Results[number]>>> {\n const values: Array<OkValueOf<Results[number]>> = [];\n const errors: Array<ErrValueOf<Results[number]>> = [];\n\n for (const result of results) {\n if (result.isOk()) {\n values.push(result.value as OkValueOf<Results[number]>);\n continue;\n }\n if (result.isErr()) {\n errors.push(result.error as ErrValueOf<Results[number]>);\n continue;\n }\n throw new InvalidResultStateError('collectAllErrors');\n }\n\n return errors.length === 0\n ? ok<CollectionValues<Results>, Array<ErrValueOf<Results[number]>>>(values as CollectionValues<Results>)\n : err<Array<ErrValueOf<Results[number]>>, CollectionValues<Results>>(errors);\n}\n","import type { Result } from './result';\nimport { InvalidResultStateError } from '../errors';\n\ntype OkValueOf<R> = R extends Result<infer T, any> ? T : never;\ntype ErrValueOf<R> = R extends Result<any, infer E> ? E : never;\n\n/**\n * Partitions Results into Ok values and Err errors.\n */\nexport function partition<const Results extends readonly Result<any, any>[]>(\n results: Results\n): [oks: Array<OkValueOf<Results[number]>>, errs: Array<ErrValueOf<Results[number]>>] {\n const oks: Array<OkValueOf<Results[number]>> = [];\n const errs: Array<ErrValueOf<Results[number]>> = [];\n\n for (const result of results) {\n if (result.isOk()) {\n oks.push(result.value as OkValueOf<Results[number]>);\n continue;\n }\n if (result.isErr()) {\n errs.push(result.error as ErrValueOf<Results[number]>);\n continue;\n }\n throw new InvalidResultStateError('partition');\n }\n\n return [oks, errs];\n}\n","import type { Result } from './result';\nimport { InvalidResultStateError } from '../errors';\n\n/**\n * Flattens a nested Result.\n * Result<Result<T, E>, E> → Result<T, E>\n * Corresponds to Rust `flatten`.\n */\nexport function flatten<T, E>(result: Result<Result<T, E>, E>): Result<T, E> {\n if (result.isOk()) {\n return result.value;\n }\n if (result.isErr()) return result as unknown as Result<T, E>;\n throw new InvalidResultStateError('flatten');\n}\n"],"mappings":"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"}
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import { W as Awaitable, s as Result } from "./sequence-Br6tAIIu.cjs";
|
|
2
|
-
|
|
3
|
-
//#region src/core/sequenceRecord.d.ts
|
|
4
|
-
type OkValueOf$2<R$1> = R$1 extends Result<infer T, any> ? T : never;
|
|
5
|
-
type ErrValueOf$2<R$1> = R$1 extends Result<any, infer E> ? E : never;
|
|
6
|
-
/**
|
|
7
|
-
* Like `sequence`, but for Records/Objects.
|
|
8
|
-
* Short-circuits on the first Err.
|
|
9
|
-
*/
|
|
10
|
-
declare function sequenceRecord<const R$1 extends { readonly [K in keyof R$1]: Result<any, any> }>(record: R$1): Result<{ [K in keyof R$1]: OkValueOf$2<R$1[K]> }, ErrValueOf$2<R$1[keyof R$1]>>;
|
|
11
|
-
//#endregion
|
|
12
|
-
//#region src/core/collectFirstOkAsync.d.ts
|
|
13
|
-
type CollectFirstOkAsyncInput$1 = Promise<Result<any, any>> | (() => Awaitable<Result<any, any>>);
|
|
14
|
-
type ResolvedResult$1<I> = I extends (() => infer R) ? Awaited<R> : I extends Promise<infer R> ? R : never;
|
|
15
|
-
type OkValueOfInput$1<I> = ResolvedResult$1<I> extends Result<infer T, any> ? T : never;
|
|
16
|
-
type ErrValueOfInput$1<I> = ResolvedResult$1<I> extends Result<any, infer E> ? E : never;
|
|
17
|
-
/**
|
|
18
|
-
* Async version of collectFirstOk.
|
|
19
|
-
*
|
|
20
|
-
* - Takes either already started Promises or "Thunks" (`() => Awaitable<Result<...>>`).
|
|
21
|
-
* - Processes inputs strictly sequentially (like `for ... of` + `await`).
|
|
22
|
-
* - Returns the first `Ok` and collects all errors if no `Ok` is found.
|
|
23
|
-
*/
|
|
24
|
-
declare function collectFirstOkAsync<const Inputs extends readonly CollectFirstOkAsyncInput$1[]>(inputs: Inputs): Promise<Result<OkValueOfInput$1<Inputs[number]>, ErrValueOfInput$1<Inputs[number]>[]>>;
|
|
25
|
-
//#endregion
|
|
26
|
-
//#region src/core/collectFirstOkParallelAsync.d.ts
|
|
27
|
-
type CollectFirstOkAsyncInput = Promise<Result<any, any>> | (() => Awaitable<Result<any, any>>);
|
|
28
|
-
type ResolvedResult<I> = I extends (() => infer R) ? Awaited<R> : I extends Promise<infer R> ? R : never;
|
|
29
|
-
type OkValueOfInput<I> = ResolvedResult<I> extends Result<infer T, any> ? T : never;
|
|
30
|
-
type ErrValueOfInput<I> = ResolvedResult<I> extends Result<any, infer E> ? E : never;
|
|
31
|
-
/**
|
|
32
|
-
* Parallel version of `collectFirstOkAsync`.
|
|
33
|
-
*
|
|
34
|
-
* - Starts all inputs immediately (Promises or Thunks).
|
|
35
|
-
* - Returns the first `Ok` as soon as it is available.
|
|
36
|
-
* - If no `Ok` is found, returns an `Err` with all error values (in input order).
|
|
37
|
-
* - Rejections are treated as `ErrValue` (`caught as ErrValue`).
|
|
38
|
-
* - If multiple inputs provide an `Ok`, the one that completes first wins.
|
|
39
|
-
* In case of simultaneous completion, the first observed result wins.
|
|
40
|
-
* - If no `Ok` arrives and at least one input never settles, the Promise remains pending.
|
|
41
|
-
*/
|
|
42
|
-
declare function collectFirstOkParallelAsync<const Inputs extends readonly CollectFirstOkAsyncInput[]>(inputs: Inputs): Promise<Result<OkValueOfInput<Inputs[number]>, ErrValueOfInput<Inputs[number]>[]>>;
|
|
43
|
-
//#endregion
|
|
44
|
-
//#region src/core/collectAllErrors.d.ts
|
|
45
|
-
type OkValueOf$1<R$1> = R$1 extends Result<infer T, any> ? T : never;
|
|
46
|
-
type ErrValueOf$1<R$1> = R$1 extends Result<any, infer E> ? E : never;
|
|
47
|
-
type CollectionValues<Results extends readonly Result<any, any>[]> = { -readonly [K in keyof Results]: OkValueOf$1<Results[K]> };
|
|
48
|
-
/**
|
|
49
|
-
* Combines a list of Results.
|
|
50
|
-
* Return Ok(values) only if all are Ok, otherwise Err([errors]).
|
|
51
|
-
*/
|
|
52
|
-
declare function collectAllErrors<const Results extends readonly Result<any, any>[]>(results: Results): Result<CollectionValues<Results>, Array<ErrValueOf$1<Results[number]>>>;
|
|
53
|
-
//#endregion
|
|
54
|
-
//#region src/core/partition.d.ts
|
|
55
|
-
type OkValueOf<R$1> = R$1 extends Result<infer T, any> ? T : never;
|
|
56
|
-
type ErrValueOf<R$1> = R$1 extends Result<any, infer E> ? E : never;
|
|
57
|
-
/**
|
|
58
|
-
* Partitions Results into Ok values and Err errors.
|
|
59
|
-
*/
|
|
60
|
-
declare function partition<const Results extends readonly Result<any, any>[]>(results: Results): [oks: Array<OkValueOf<Results[number]>>, errs: Array<ErrValueOf<Results[number]>>];
|
|
61
|
-
//#endregion
|
|
62
|
-
//#region src/core/flatten.d.ts
|
|
63
|
-
/**
|
|
64
|
-
* Flattens a nested Result.
|
|
65
|
-
* Result<Result<T, E>, E> → Result<T, E>
|
|
66
|
-
* Corresponds to Rust `flatten`.
|
|
67
|
-
*/
|
|
68
|
-
declare function flatten<T, E>(result: Result<Result<T, E>, E>): Result<T, E>;
|
|
69
|
-
//#endregion
|
|
70
|
-
export { collectFirstOkAsync as a, collectFirstOkParallelAsync as i, partition as n, sequenceRecord as o, collectAllErrors as r, flatten as t };
|
|
71
|
-
//# sourceMappingURL=flatten-DK7eJKPx.d.cts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"flatten-DK7eJKPx.d.cts","names":[],"sources":["../src/core/sequenceRecord.ts","../src/core/collectFirstOkAsync.ts","../src/core/collectFirstOkParallelAsync.ts","../src/core/collectAllErrors.ts","../src/core/partition.ts","../src/core/flatten.ts"],"sourcesContent":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"flatten-Df9U40nO.cjs","names":["out: Partial<Out>","isResult","InvalidResultStateError","ok","errors: Array<ErrValueOfInput<Inputs[number]>>","result: Result<any, any>","ok","InvalidResultStateError","err","err","ok","errors: ErrValue[]","InvalidResultStateError","values: Array<OkValueOf<Results[number]>>","errors: Array<ErrValueOf<Results[number]>>","InvalidResultStateError","ok","err","oks: Array<OkValueOf<Results[number]>>","errs: Array<ErrValueOf<Results[number]>>","InvalidResultStateError","InvalidResultStateError"],"sources":["../src/core/sequenceRecord.ts","../src/core/collectFirstOkAsync.ts","../src/core/collectFirstOkParallelAsync.ts","../src/core/collectAllErrors.ts","../src/core/partition.ts","../src/core/flatten.ts"],"sourcesContent":["import type { Result } from './result';\nimport { ok } from './result';\nimport { InvalidResultStateError } from '../errors';\nimport { isResult } from './isResult';\n\ntype OkValueOf<R> = R extends Result<infer T, any> ? T : never;\ntype ErrValueOf<R> = R extends Result<any, infer E> ? E : never;\n\n/**\n * Like `sequence`, but for Records/Objects.\n * Short-circuits on the first Err.\n */\nexport function sequenceRecord<const R extends { readonly [K in keyof R]: Result<any, any> }>(\n record: R\n): Result<{ [K in keyof R]: OkValueOf<R[K]> }, ErrValueOf<R[keyof R]>> {\n type Out = { [K in keyof R]: OkValueOf<R[K]> };\n type E = ErrValueOf<R[keyof R]>;\n\n const out: Partial<Out> = {};\n\n for (const key of Reflect.ownKeys(record) as Array<keyof R>) {\n const result = record[key];\n if (!isResult(result)) throw new InvalidResultStateError('sequenceRecord');\n if (result.isOk()) {\n out[key] = result.value as Out[typeof key];\n continue;\n }\n if (result.isErr()) return result as unknown as Result<Out, E>;\n throw new InvalidResultStateError('sequenceRecord');\n }\n\n return ok<Out, E>(out as Out);\n}\n","import type { Result } from './result';\nimport { ok, err } from './result';\nimport type { Awaitable } from './pipeable';\nimport { InvalidResultStateError } from '../errors';\n\ntype CollectFirstOkAsyncInput =\n | Promise<Result<any, any>>\n | (() => Awaitable<Result<any, any>>);\n\ntype ResolvedResult<I> = I extends () => infer R ? Awaited<R> : I extends Promise<infer R> ? R : never;\ntype OkValueOfInput<I> = ResolvedResult<I> extends Result<infer T, any> ? T : never;\ntype ErrValueOfInput<I> = ResolvedResult<I> extends Result<any, infer E> ? E : never;\n\n/**\n * Async version of collectFirstOk.\n *\n * - Takes either already started Promises or \"Thunks\" (`() => Awaitable<Result<...>>`).\n * - Processes inputs strictly sequentially (like `for ... of` + `await`).\n * - Returns the first `Ok` and collects all errors if no `Ok` is found.\n */\nexport async function collectFirstOkAsync<const Inputs extends readonly CollectFirstOkAsyncInput[]>(\n inputs: Inputs\n): Promise<Result<OkValueOfInput<Inputs[number]>, ErrValueOfInput<Inputs[number]>[]>> {\n const errors: Array<ErrValueOfInput<Inputs[number]>> = [];\n\n for (const input of inputs) {\n const pendingResult = typeof input === 'function' ? input() : input;\n let result: Result<any, any>;\n try {\n result = await pendingResult;\n } catch (error) {\n errors.push(error as ErrValueOfInput<Inputs[number]>);\n continue;\n }\n\n if (result.isOk()) {\n return ok<OkValueOfInput<Inputs[number]>, ErrValueOfInput<Inputs[number]>[]>(\n result.value as OkValueOfInput<Inputs[number]>\n );\n }\n if (result.isErr()) {\n errors.push(result.error as ErrValueOfInput<Inputs[number]>);\n continue;\n }\n throw new InvalidResultStateError('collectFirstOkAsync');\n }\n\n return err<ErrValueOfInput<Inputs[number]>[], OkValueOfInput<Inputs[number]>>(errors);\n}\n","import type { Awaitable } from './pipeable';\nimport type { Result } from './result';\nimport { err, ok } from './result';\nimport { InvalidResultStateError } from '../errors';\n\ntype CollectFirstOkAsyncInput = Promise<Result<any, any>> | (() => Awaitable<Result<any, any>>);\n\ntype ResolvedResult<I> = I extends () => infer R ? Awaited<R> : I extends Promise<infer R> ? R : never;\ntype OkValueOfInput<I> = ResolvedResult<I> extends Result<infer T, any> ? T : never;\ntype ErrValueOfInput<I> = ResolvedResult<I> extends Result<any, infer E> ? E : never;\n\n/**\n * Parallel version of `collectFirstOkAsync`.\n *\n * - Starts all inputs immediately (Promises or Thunks).\n * - Returns the first `Ok` as soon as it is available.\n * - If no `Ok` is found, returns an `Err` with all error values (in input order).\n * - Rejections are treated as `ErrValue` (`caught as ErrValue`).\n * - If multiple inputs provide an `Ok`, the one that completes first wins.\n * In case of simultaneous completion, the first observed result wins.\n * - If no `Ok` arrives and at least one input never settles, the Promise remains pending.\n */\nexport async function collectFirstOkParallelAsync<const Inputs extends readonly CollectFirstOkAsyncInput[]>(\n inputs: Inputs\n): Promise<Result<OkValueOfInput<Inputs[number]>, ErrValueOfInput<Inputs[number]>[]>> {\n type OkValue = OkValueOfInput<Inputs[number]>;\n type ErrValue = ErrValueOfInput<Inputs[number]>;\n\n if (inputs.length === 0) {\n return err<ErrValue[], OkValue>([]);\n }\n\n const started = inputs.map((input) =>\n typeof input === 'function' ? Promise.resolve().then(input) : input\n );\n\n const firstOk = new Promise<Result<OkValue, ErrValue[]>>((resolve) => {\n for (const promise of started) {\n promise\n .then((result) => {\n if (result.isOk()) {\n resolve(ok<OkValue, ErrValue[]>(result.value as OkValue));\n }\n })\n .catch(() => {\n // Ignored here; handled in allSettled below.\n });\n }\n });\n\n const allErrors = Promise.allSettled(started).then((settled) => {\n const errors: ErrValue[] = [];\n for (const entry of settled) {\n if (entry.status === 'fulfilled') {\n const result = entry.value;\n if (result.isErr()) {\n errors.push(result.error as ErrValue);\n } else if (!result.isOk()) {\n throw new InvalidResultStateError('collectFirstOkParallelAsync');\n }\n } else {\n errors.push(entry.reason as ErrValue);\n }\n }\n return err<ErrValue[], OkValue>(errors);\n });\n\n return Promise.race([firstOk, allErrors]);\n}\n","import type { Result } from './result';\nimport { ok, err } from './result';\nimport { InvalidResultStateError } from '../errors';\n\ntype OkValueOf<R> = R extends Result<infer T, any> ? T : never;\ntype ErrValueOf<R> = R extends Result<any, infer E> ? E : never;\ntype CollectionValues<Results extends readonly Result<any, any>[]> = {\n -readonly [K in keyof Results]: OkValueOf<Results[K]>;\n};\n\n/**\n * Combines a list of Results.\n * Return Ok(values) only if all are Ok, otherwise Err([errors]).\n */\nexport function collectAllErrors<const Results extends readonly Result<any, any>[]>(\n results: Results\n): Result<CollectionValues<Results>, Array<ErrValueOf<Results[number]>>> {\n const values: Array<OkValueOf<Results[number]>> = [];\n const errors: Array<ErrValueOf<Results[number]>> = [];\n\n for (const result of results) {\n if (result.isOk()) {\n values.push(result.value as OkValueOf<Results[number]>);\n continue;\n }\n if (result.isErr()) {\n errors.push(result.error as ErrValueOf<Results[number]>);\n continue;\n }\n throw new InvalidResultStateError('collectAllErrors');\n }\n\n return errors.length === 0\n ? ok<CollectionValues<Results>, Array<ErrValueOf<Results[number]>>>(values as CollectionValues<Results>)\n : err<Array<ErrValueOf<Results[number]>>, CollectionValues<Results>>(errors);\n}\n","import type { Result } from './result';\nimport { InvalidResultStateError } from '../errors';\n\ntype OkValueOf<R> = R extends Result<infer T, any> ? T : never;\ntype ErrValueOf<R> = R extends Result<any, infer E> ? E : never;\n\n/**\n * Partitions Results into Ok values and Err errors.\n */\nexport function partition<const Results extends readonly Result<any, any>[]>(\n results: Results\n): [oks: Array<OkValueOf<Results[number]>>, errs: Array<ErrValueOf<Results[number]>>] {\n const oks: Array<OkValueOf<Results[number]>> = [];\n const errs: Array<ErrValueOf<Results[number]>> = [];\n\n for (const result of results) {\n if (result.isOk()) {\n oks.push(result.value as OkValueOf<Results[number]>);\n continue;\n }\n if (result.isErr()) {\n errs.push(result.error as ErrValueOf<Results[number]>);\n continue;\n }\n throw new InvalidResultStateError('partition');\n }\n\n return [oks, errs];\n}\n","import type { Result } from './result';\nimport { InvalidResultStateError } from '../errors';\n\n/**\n * Flattens a nested Result.\n * Result<Result<T, E>, E> → Result<T, E>\n * Corresponds to Rust `flatten`.\n */\nexport function flatten<T, E>(result: Result<Result<T, E>, E>): Result<T, E> {\n if (result.isOk()) {\n return result.value;\n }\n if (result.isErr()) return result as unknown as Result<T, E>;\n throw new InvalidResultStateError('flatten');\n}\n"],"mappings":";;;;;;;;AAYA,SAAgB,eACZ,QACmE;CAInE,MAAMA,MAAoB,EAAE;AAE5B,MAAK,MAAM,OAAO,QAAQ,QAAQ,OAAO,EAAoB;EACzD,MAAM,SAAS,OAAO;AACtB,MAAI,CAACC,wBAAS,OAAO,CAAE,OAAM,IAAIC,uCAAwB,iBAAiB;AAC1E,MAAI,OAAO,MAAM,EAAE;AACf,OAAI,OAAO,OAAO;AAClB;;AAEJ,MAAI,OAAO,OAAO,CAAE,QAAO;AAC3B,QAAM,IAAIA,uCAAwB,iBAAiB;;AAGvD,QAAOC,kBAAW,IAAW;;;;;;;;;;;;ACXjC,eAAsB,oBAClB,QACkF;CAClF,MAAMC,SAAiD,EAAE;AAEzD,MAAK,MAAM,SAAS,QAAQ;EACxB,MAAM,gBAAgB,OAAO,UAAU,aAAa,OAAO,GAAG;EAC9D,IAAIC;AACJ,MAAI;AACA,YAAS,MAAM;WACV,OAAO;AACZ,UAAO,KAAK,MAAyC;AACrD;;AAGJ,MAAI,OAAO,MAAM,CACb,QAAOC,kBACH,OAAO,MACV;AAEL,MAAI,OAAO,OAAO,EAAE;AAChB,UAAO,KAAK,OAAO,MAAyC;AAC5D;;AAEJ,QAAM,IAAIC,uCAAwB,sBAAsB;;AAG5D,QAAOC,mBAAuE,OAAO;;;;;;;;;;;;;;;;ACzBzF,eAAsB,4BAClB,QACkF;AAIlF,KAAI,OAAO,WAAW,EAClB,QAAOC,mBAAyB,EAAE,CAAC;CAGvC,MAAM,UAAU,OAAO,KAAK,UACxB,OAAO,UAAU,aAAa,QAAQ,SAAS,CAAC,KAAK,MAAM,GAAG,MACjE;CAED,MAAM,UAAU,IAAI,SAAsC,YAAY;AAClE,OAAK,MAAM,WAAW,QAClB,SACK,MAAM,WAAW;AACd,OAAI,OAAO,MAAM,CACb,SAAQC,kBAAwB,OAAO,MAAiB,CAAC;IAE/D,CACD,YAAY,GAEX;GAEZ;CAEF,MAAM,YAAY,QAAQ,WAAW,QAAQ,CAAC,MAAM,YAAY;EAC5D,MAAMC,SAAqB,EAAE;AAC7B,OAAK,MAAM,SAAS,QAChB,KAAI,MAAM,WAAW,aAAa;GAC9B,MAAM,SAAS,MAAM;AACrB,OAAI,OAAO,OAAO,CACd,QAAO,KAAK,OAAO,MAAkB;YAC9B,CAAC,OAAO,MAAM,CACrB,OAAM,IAAIC,uCAAwB,8BAA8B;QAGpE,QAAO,KAAK,MAAM,OAAmB;AAG7C,SAAOH,mBAAyB,OAAO;GACzC;AAEF,QAAO,QAAQ,KAAK,CAAC,SAAS,UAAU,CAAC;;;;;;;;;ACrD7C,SAAgB,iBACZ,SACqE;CACrE,MAAMI,SAA4C,EAAE;CACpD,MAAMC,SAA6C,EAAE;AAErD,MAAK,MAAM,UAAU,SAAS;AAC1B,MAAI,OAAO,MAAM,EAAE;AACf,UAAO,KAAK,OAAO,MAAoC;AACvD;;AAEJ,MAAI,OAAO,OAAO,EAAE;AAChB,UAAO,KAAK,OAAO,MAAqC;AACxD;;AAEJ,QAAM,IAAIC,uCAAwB,mBAAmB;;AAGzD,QAAO,OAAO,WAAW,IACnBC,kBAAkE,OAAoC,GACtGC,mBAAmE,OAAO;;;;;;;;ACzBpF,SAAgB,UACZ,SACkF;CAClF,MAAMC,MAAyC,EAAE;CACjD,MAAMC,OAA2C,EAAE;AAEnD,MAAK,MAAM,UAAU,SAAS;AAC1B,MAAI,OAAO,MAAM,EAAE;AACf,OAAI,KAAK,OAAO,MAAoC;AACpD;;AAEJ,MAAI,OAAO,OAAO,EAAE;AAChB,QAAK,KAAK,OAAO,MAAqC;AACtD;;AAEJ,QAAM,IAAIC,uCAAwB,YAAY;;AAGlD,QAAO,CAAC,KAAK,KAAK;;;;;;;;;;ACnBtB,SAAgB,QAAc,QAA+C;AACzE,KAAI,OAAO,MAAM,CACb,QAAO,OAAO;AAElB,KAAI,OAAO,OAAO,CAAE,QAAO;AAC3B,OAAM,IAAIC,uCAAwB,UAAU"}
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
import { f as InvalidResultStateError } from "./errors-2WOswg7r.mjs";
|
|
2
|
-
|
|
3
|
-
//#region src/core/fold.ts
|
|
4
|
-
/**
|
|
5
|
-
* Folds the Result into a single value by applying one of two functions.
|
|
6
|
-
* The end of the pipe.
|
|
7
|
-
*
|
|
8
|
-
* This is the pipe operator equivalent of the `.fold()` instance method.
|
|
9
|
-
*/
|
|
10
|
-
function fold(handlers) {
|
|
11
|
-
return (source) => {
|
|
12
|
-
if (source.isOk()) return handlers.ok(source.value);
|
|
13
|
-
if (source.isErr()) return handlers.err(source.error);
|
|
14
|
-
throw new InvalidResultStateError("fold");
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
//#endregion
|
|
19
|
-
//#region src/core/foldAsync.ts
|
|
20
|
-
/**
|
|
21
|
-
* Async version of `fold`. Folds the Result into a single value asynchronously.
|
|
22
|
-
* The end of the pipe.
|
|
23
|
-
*
|
|
24
|
-
* This is the async pipe operator equivalent of the `.fold()` instance method.
|
|
25
|
-
*/
|
|
26
|
-
function foldAsync(handlers) {
|
|
27
|
-
return async (source) => {
|
|
28
|
-
if (source.isOk()) return await handlers.ok(source.value);
|
|
29
|
-
if (source.isErr()) return await handlers.err(source.error);
|
|
30
|
-
throw new InvalidResultStateError("foldAsync");
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
//#endregion
|
|
35
|
-
//#region src/core/and.ts
|
|
36
|
-
/**
|
|
37
|
-
* Combines two Results. Returns the second one only if the first is Ok.
|
|
38
|
-
* Corresponds to Rust `and`.
|
|
39
|
-
*/
|
|
40
|
-
function and(result, other) {
|
|
41
|
-
if (result.isOk()) return other;
|
|
42
|
-
if (result.isErr()) return result;
|
|
43
|
-
throw new InvalidResultStateError("and");
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
//#endregion
|
|
47
|
-
//#region src/core/or.ts
|
|
48
|
-
/**
|
|
49
|
-
* Fallback to another Result if the first is Err.
|
|
50
|
-
* Corresponds to Rust `or`.
|
|
51
|
-
*/
|
|
52
|
-
function or(result, other) {
|
|
53
|
-
if (result.isOk()) return result;
|
|
54
|
-
if (result.isErr()) return other;
|
|
55
|
-
throw new InvalidResultStateError("or");
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
//#endregion
|
|
59
|
-
//#region src/core/orElse.ts
|
|
60
|
-
/**
|
|
61
|
-
* Fallback with a function that returns a Result.
|
|
62
|
-
* Corresponds to Rust `or_else`.
|
|
63
|
-
*/
|
|
64
|
-
function orElse(result, fn) {
|
|
65
|
-
if (result.isOk()) return result;
|
|
66
|
-
if (result.isErr()) return fn(result.error);
|
|
67
|
-
throw new InvalidResultStateError("orElse");
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
//#endregion
|
|
71
|
-
//#region src/core/mapOr.ts
|
|
72
|
-
/**
|
|
73
|
-
* Transforms the value or returns a default value.
|
|
74
|
-
* Corresponds to Rust `map_or`.
|
|
75
|
-
*/
|
|
76
|
-
function mapOr(result, defaultValue, fn) {
|
|
77
|
-
if (result.isOk()) return fn(result.value);
|
|
78
|
-
if (result.isErr()) return defaultValue;
|
|
79
|
-
throw new InvalidResultStateError("mapOr");
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
//#endregion
|
|
83
|
-
//#region src/core/mapOrElse.ts
|
|
84
|
-
/**
|
|
85
|
-
* Transforms the value or calculates a default value using a function.
|
|
86
|
-
* Corresponds to Rust `map_or_else`.
|
|
87
|
-
*/
|
|
88
|
-
function mapOrElse(result, defaultFn, fn) {
|
|
89
|
-
if (result.isOk()) return fn(result.value);
|
|
90
|
-
if (result.isErr()) return defaultFn(result.error);
|
|
91
|
-
throw new InvalidResultStateError("mapOrElse");
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
//#endregion
|
|
95
|
-
export { and as a, or as i, mapOr as n, foldAsync as o, orElse as r, fold as s, mapOrElse as t };
|
|
96
|
-
//# sourceMappingURL=mapOrElse-B0_4r6Jn.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mapOrElse-B0_4r6Jn.mjs","names":[],"sources":["../src/core/fold.ts","../src/core/foldAsync.ts","../src/core/and.ts","../src/core/or.ts","../src/core/orElse.ts","../src/core/mapOr.ts","../src/core/mapOrElse.ts"],"sourcesContent":["import type { Result } from './result';\nimport { InvalidResultStateError } from '../errors';\n\n/**\n * Folds the Result into a single value by applying one of two functions.\n * The end of the pipe.\n *\n * This is the pipe operator equivalent of the `.fold()` instance method.\n */\nexport function fold<T, E, R>(handlers: { ok: (val: T) => R; err: (e: E) => R }) {\n return (source: Result<T, E>): R => {\n if (source.isOk()) {\n return handlers.ok(source.value);\n }\n if (source.isErr()) return handlers.err(source.error);\n throw new InvalidResultStateError('fold');\n };\n}\n","import type { Result } from './result';\nimport { InvalidResultStateError } from '../errors';\n\n/**\n * Async version of `fold`. Folds the Result into a single value asynchronously.\n * The end of the pipe.\n *\n * This is the async pipe operator equivalent of the `.fold()` instance method.\n */\nexport function foldAsync<T, E, R>(handlers: { ok: (val: T) => Promise<R>; err: (e: E) => Promise<R> }) {\n return async (source: Result<T, E>): Promise<R> => {\n if (source.isOk()) {\n return await handlers.ok(source.value);\n }\n if (source.isErr()) return await handlers.err(source.error);\n throw new InvalidResultStateError('foldAsync');\n };\n}\n","import type { Result } from './result';\nimport { InvalidResultStateError } from '../errors';\n\n/**\n * Combines two Results. Returns the second one only if the first is Ok.\n * Corresponds to Rust `and`.\n */\nexport function and<T, E, U>(result: Result<T, E>, other: Result<U, E>): Result<U, E> {\n if (result.isOk()) return other;\n if (result.isErr()) return result as unknown as Result<U, E>;\n throw new InvalidResultStateError('and');\n}\n","import type { Result } from './result';\nimport { InvalidResultStateError } from '../errors';\n\n/**\n * Fallback to another Result if the first is Err.\n * Corresponds to Rust `or`.\n */\nexport function or<T, E, F>(result: Result<T, E>, other: Result<T, F>): Result<T, F> {\n if (result.isOk()) return result as unknown as Result<T, F>;\n if (result.isErr()) return other;\n throw new InvalidResultStateError('or');\n}\n","import type { Result } from './result';\nimport { InvalidResultStateError } from '../errors';\n\n/**\n * Fallback with a function that returns a Result.\n * Corresponds to Rust `or_else`.\n */\nexport function orElse<T, E, F>(result: Result<T, E>, fn: (error: E) => Result<T, F>): Result<T, F> {\n if (result.isOk()) return result as unknown as Result<T, F>;\n if (result.isErr()) return fn(result.error);\n throw new InvalidResultStateError('orElse');\n}\n","import type { Result } from './result';\nimport { InvalidResultStateError } from '../errors';\n\n/**\n * Transforms the value or returns a default value.\n * Corresponds to Rust `map_or`.\n */\nexport function mapOr<T, E, U>(result: Result<T, E>, defaultValue: U, fn: (value: T) => U): U {\n if (result.isOk()) return fn(result.value);\n if (result.isErr()) return defaultValue;\n throw new InvalidResultStateError('mapOr');\n}\n","import type { Result } from './result';\nimport { InvalidResultStateError } from '../errors';\n\n/**\n * Transforms the value or calculates a default value using a function.\n * Corresponds to Rust `map_or_else`.\n */\nexport function mapOrElse<T, E, U>(result: Result<T, E>, defaultFn: (error: E) => U, fn: (value: T) => U): U {\n if (result.isOk()) return fn(result.value);\n if (result.isErr()) return defaultFn(result.error);\n throw new InvalidResultStateError('mapOrElse');\n}\n"],"mappings":";;;;;;;;;AASA,SAAgB,KAAc,UAAmD;AAC7E,SAAQ,WAA4B;AAChC,MAAI,OAAO,MAAM,CACb,QAAO,SAAS,GAAG,OAAO,MAAM;AAEpC,MAAI,OAAO,OAAO,CAAE,QAAO,SAAS,IAAI,OAAO,MAAM;AACrD,QAAM,IAAI,wBAAwB,OAAO;;;;;;;;;;;;ACNjD,SAAgB,UAAmB,UAAqE;AACpG,QAAO,OAAO,WAAqC;AAC/C,MAAI,OAAO,MAAM,CACb,QAAO,MAAM,SAAS,GAAG,OAAO,MAAM;AAE1C,MAAI,OAAO,OAAO,CAAE,QAAO,MAAM,SAAS,IAAI,OAAO,MAAM;AAC3D,QAAM,IAAI,wBAAwB,YAAY;;;;;;;;;;ACRtD,SAAgB,IAAa,QAAsB,OAAmC;AAClF,KAAI,OAAO,MAAM,CAAE,QAAO;AAC1B,KAAI,OAAO,OAAO,CAAE,QAAO;AAC3B,OAAM,IAAI,wBAAwB,MAAM;;;;;;;;;ACH5C,SAAgB,GAAY,QAAsB,OAAmC;AACjF,KAAI,OAAO,MAAM,CAAE,QAAO;AAC1B,KAAI,OAAO,OAAO,CAAE,QAAO;AAC3B,OAAM,IAAI,wBAAwB,KAAK;;;;;;;;;ACH3C,SAAgB,OAAgB,QAAsB,IAA8C;AAChG,KAAI,OAAO,MAAM,CAAE,QAAO;AAC1B,KAAI,OAAO,OAAO,CAAE,QAAO,GAAG,OAAO,MAAM;AAC3C,OAAM,IAAI,wBAAwB,SAAS;;;;;;;;;ACH/C,SAAgB,MAAe,QAAsB,cAAiB,IAAwB;AAC1F,KAAI,OAAO,MAAM,CAAE,QAAO,GAAG,OAAO,MAAM;AAC1C,KAAI,OAAO,OAAO,CAAE,QAAO;AAC3B,OAAM,IAAI,wBAAwB,QAAQ;;;;;;;;;ACH9C,SAAgB,UAAmB,QAAsB,WAA4B,IAAwB;AACzG,KAAI,OAAO,MAAM,CAAE,QAAO,GAAG,OAAO,MAAM;AAC1C,KAAI,OAAO,OAAO,CAAE,QAAO,UAAU,OAAO,MAAM;AAClD,OAAM,IAAI,wBAAwB,YAAY"}
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import { s as Result } from "./sequence-C0jlR3AY.mjs";
|
|
2
|
-
|
|
3
|
-
//#region src/core/fold.d.ts
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Folds the Result into a single value by applying one of two functions.
|
|
7
|
-
* The end of the pipe.
|
|
8
|
-
*
|
|
9
|
-
* This is the pipe operator equivalent of the `.fold()` instance method.
|
|
10
|
-
*/
|
|
11
|
-
declare function fold<T, E, R>(handlers: {
|
|
12
|
-
ok: (val: T) => R;
|
|
13
|
-
err: (e: E) => R;
|
|
14
|
-
}): (source: Result<T, E>) => R;
|
|
15
|
-
//#endregion
|
|
16
|
-
//#region src/core/foldAsync.d.ts
|
|
17
|
-
/**
|
|
18
|
-
* Async version of `fold`. Folds the Result into a single value asynchronously.
|
|
19
|
-
* The end of the pipe.
|
|
20
|
-
*
|
|
21
|
-
* This is the async pipe operator equivalent of the `.fold()` instance method.
|
|
22
|
-
*/
|
|
23
|
-
declare function foldAsync<T, E, R>(handlers: {
|
|
24
|
-
ok: (val: T) => Promise<R>;
|
|
25
|
-
err: (e: E) => Promise<R>;
|
|
26
|
-
}): (source: Result<T, E>) => Promise<R>;
|
|
27
|
-
//#endregion
|
|
28
|
-
//#region src/core/and.d.ts
|
|
29
|
-
/**
|
|
30
|
-
* Combines two Results. Returns the second one only if the first is Ok.
|
|
31
|
-
* Corresponds to Rust `and`.
|
|
32
|
-
*/
|
|
33
|
-
declare function and<T, E, U>(result: Result<T, E>, other: Result<U, E>): Result<U, E>;
|
|
34
|
-
//#endregion
|
|
35
|
-
//#region src/core/or.d.ts
|
|
36
|
-
/**
|
|
37
|
-
* Fallback to another Result if the first is Err.
|
|
38
|
-
* Corresponds to Rust `or`.
|
|
39
|
-
*/
|
|
40
|
-
declare function or<T, E, F>(result: Result<T, E>, other: Result<T, F>): Result<T, F>;
|
|
41
|
-
//#endregion
|
|
42
|
-
//#region src/core/orElse.d.ts
|
|
43
|
-
/**
|
|
44
|
-
* Fallback with a function that returns a Result.
|
|
45
|
-
* Corresponds to Rust `or_else`.
|
|
46
|
-
*/
|
|
47
|
-
declare function orElse<T, E, F>(result: Result<T, E>, fn: (error: E) => Result<T, F>): Result<T, F>;
|
|
48
|
-
//#endregion
|
|
49
|
-
//#region src/core/mapOr.d.ts
|
|
50
|
-
/**
|
|
51
|
-
* Transforms the value or returns a default value.
|
|
52
|
-
* Corresponds to Rust `map_or`.
|
|
53
|
-
*/
|
|
54
|
-
declare function mapOr<T, E, U>(result: Result<T, E>, defaultValue: U, fn: (value: T) => U): U;
|
|
55
|
-
//#endregion
|
|
56
|
-
//#region src/core/mapOrElse.d.ts
|
|
57
|
-
/**
|
|
58
|
-
* Transforms the value or calculates a default value using a function.
|
|
59
|
-
* Corresponds to Rust `map_or_else`.
|
|
60
|
-
*/
|
|
61
|
-
declare function mapOrElse<T, E, U>(result: Result<T, E>, defaultFn: (error: E) => U, fn: (value: T) => U): U;
|
|
62
|
-
//#endregion
|
|
63
|
-
export { and as a, or as i, mapOr as n, foldAsync as o, orElse as r, fold as s, mapOrElse as t };
|
|
64
|
-
//# sourceMappingURL=mapOrElse-B5gx9x2E.d.mts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mapOrElse-B5gx9x2E.d.mts","names":[],"sources":["../src/core/fold.ts","../src/core/foldAsync.ts","../src/core/and.ts","../src/core/or.ts","../src/core/orElse.ts","../src/core/mapOr.ts","../src/core/mapOrElse.ts"],"sourcesContent":[],"mappings":";;;;;;AASA;;;;AAA4E,iBAA5D,IAA4D,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,QAAA,EAAA;EACjD,EAAA,EAAA,CAAA,GAAA,EADyB,CACzB,EAAA,GAD+B,CAC/B;EAAG,GAAA,EAAA,CAAA,CAAA,EADwC,CACxC,EAAA,GAD8C,CAC9C;CAAV,CAAA,EAAA,CAAA,MAAA,EAAA,MAAA,CAAO,CAAP,EAAU,CAAV,CAAA,EAAA,GAAe,CAAf;;;;;AADpB;;;;AAA4E,iBCA5D,SDA4D,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,QAAA,EAAA;EACjD,EAAA,EAAA,CAAA,GAAA,ECD8B,CDC9B,EAAA,GCDoC,ODCpC,CCD4C,CDC5C,CAAA;EAAG,GAAA,EAAA,CAAA,CAAA,ECDsD,CDCtD,EAAA,GCD4D,ODC5D,CCDoE,CDCpE,CAAA;CAAV,CAAA,EAAA,CAAA,MAAA,ECAM,MDAN,CCAa,CDAb,ECAgB,CDAhB,CAAA,EAAA,GCAqB,ODArB,CCA6B,CDA7B,CAAA;;;;;AADpB;;AAA0D,iBEF1C,GFE0C,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,MAAA,EEFrB,MFEqB,CEFd,CFEc,EEFX,CFEW,CAAA,EAAA,KAAA,EEFA,MFEA,CEFO,CFEP,EEFU,CFEV,CAAA,CAAA,EEFe,MFEf,CEFsB,CFEtB,EEFyB,CFEzB,CAAA;;;;;AAA1D;;AAA0D,iBGF1C,EHE0C,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,MAAA,EGFtB,MHEsB,CGFf,CHEe,EGFZ,CHEY,CAAA,EAAA,KAAA,EGFD,MHEC,CGFM,CHEN,EGFS,CHET,CAAA,CAAA,EGFc,MHEd,CGFqB,CHErB,EGFwB,CHExB,CAAA;;;;;AAA1D;;AAA0D,iBIF1C,MJE0C,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,MAAA,EIFlB,MJEkB,CIFX,CJEW,EIFR,CJEQ,CAAA,EAAA,EAAA,EAAA,CAAA,KAAA,EIFQ,CJER,EAAA,GIFc,MJEd,CIFqB,CJErB,EIFwB,CJExB,CAAA,CAAA,EIF6B,MJE7B,CIFoC,CJEpC,EIFuC,CJEvC,CAAA;;;;;AAA1D;;AAA0D,iBKF1C,KLE0C,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,MAAA,EKFnB,MLEmB,CKFZ,CLEY,EKFT,CLES,CAAA,EAAA,YAAA,EKFS,CLET,EAAA,EAAA,EAAA,CAAA,KAAA,EKFwB,CLExB,EAAA,GKF8B,CLE9B,CAAA,EKFkC,CLElC;;;;;AAA1D;;AAA0D,iBMF1C,SNE0C,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,MAAA,EMFf,MNEe,CMFR,CNEQ,EMFL,CNEK,CAAA,EAAA,SAAA,EAAA,CAAA,KAAA,EMFkB,CNElB,EAAA,GMFwB,CNExB,EAAA,EAAA,EAAA,CAAA,KAAA,EMFuC,CNEvC,EAAA,GMF6C,CNE7C,CAAA,EMFiD,CNEjD"}
|