retuple 0.0.1 → 1.0.0-next.1
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/LICENSE +19 -0
- package/README.md +1 -0
- package/dist/index.cjs +531 -0
- package/dist/index.d.cts +286 -0
- package/dist/index.d.ts +286 -0
- package/dist/index.js +518 -0
- package/package.json +44 -6
package/dist/index.js
ADDED
|
@@ -0,0 +1,518 @@
|
|
|
1
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
2
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
3
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
4
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
5
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
6
|
+
};
|
|
7
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
8
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
9
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
10
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
|
+
};
|
|
12
|
+
var _ResultAsync_inner;
|
|
13
|
+
export class RetupleUnwrapFailed extends Error {
|
|
14
|
+
constructor(value, msg = "Unwrap failed") {
|
|
15
|
+
super(msg, value instanceof Error ? { cause: value } : undefined);
|
|
16
|
+
this.value = value;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
export class RetupleUnwrapErrFailed extends Error {
|
|
20
|
+
constructor(value, msg = "Unwrap error failed") {
|
|
21
|
+
super(msg);
|
|
22
|
+
this.value = value;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
export class RetupleExpectFailed extends Error {
|
|
26
|
+
constructor(value) {
|
|
27
|
+
super("Expect failed");
|
|
28
|
+
this.value = value;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
export class RetupleThrownValueError extends Error {
|
|
32
|
+
constructor(value) {
|
|
33
|
+
super("Caught value was not an instance of Error");
|
|
34
|
+
this.value = value;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* ## Result
|
|
39
|
+
*
|
|
40
|
+
* @TODO
|
|
41
|
+
*/
|
|
42
|
+
export const Result = {
|
|
43
|
+
Ok,
|
|
44
|
+
Err,
|
|
45
|
+
from,
|
|
46
|
+
safe,
|
|
47
|
+
safeAsync,
|
|
48
|
+
safePromise,
|
|
49
|
+
};
|
|
50
|
+
export default Result;
|
|
51
|
+
export function Ok(val) {
|
|
52
|
+
return new ResultOk(val);
|
|
53
|
+
}
|
|
54
|
+
export function Err(err) {
|
|
55
|
+
return new ResultErr(err);
|
|
56
|
+
}
|
|
57
|
+
export function from(value, error) {
|
|
58
|
+
if (value) {
|
|
59
|
+
return new ResultOk(value);
|
|
60
|
+
}
|
|
61
|
+
if (error) {
|
|
62
|
+
return new ResultErr(error());
|
|
63
|
+
}
|
|
64
|
+
return new ResultErr(true);
|
|
65
|
+
}
|
|
66
|
+
export function safe(f, mapError = ensureError) {
|
|
67
|
+
try {
|
|
68
|
+
return Ok(f());
|
|
69
|
+
}
|
|
70
|
+
catch (err) {
|
|
71
|
+
return Err(mapError(err));
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
export function safeAsync(f, mapError = ensureError) {
|
|
75
|
+
return new ResultAsync((async () => {
|
|
76
|
+
try {
|
|
77
|
+
return Ok(await f());
|
|
78
|
+
}
|
|
79
|
+
catch (err) {
|
|
80
|
+
return Err(await mapError(err));
|
|
81
|
+
}
|
|
82
|
+
})());
|
|
83
|
+
}
|
|
84
|
+
export function safePromise(promise, mapError = ensureError) {
|
|
85
|
+
return new ResultAsync(promise.then((Ok), async (err) => Err(await mapError(err))));
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* ## Ok
|
|
89
|
+
*
|
|
90
|
+
* @TODO
|
|
91
|
+
*/
|
|
92
|
+
class ResultOk extends Array {
|
|
93
|
+
constructor(value) {
|
|
94
|
+
super(2);
|
|
95
|
+
this[0] = undefined;
|
|
96
|
+
this[1] = value;
|
|
97
|
+
}
|
|
98
|
+
$value() {
|
|
99
|
+
return this[1];
|
|
100
|
+
}
|
|
101
|
+
$isOk() {
|
|
102
|
+
return true;
|
|
103
|
+
}
|
|
104
|
+
$isOkAnd(f) {
|
|
105
|
+
return f(this[1]);
|
|
106
|
+
}
|
|
107
|
+
$isErr() {
|
|
108
|
+
return false;
|
|
109
|
+
}
|
|
110
|
+
$isErrAnd() {
|
|
111
|
+
return false;
|
|
112
|
+
}
|
|
113
|
+
$expect() {
|
|
114
|
+
return this[1];
|
|
115
|
+
}
|
|
116
|
+
$unwrap() {
|
|
117
|
+
return this[1];
|
|
118
|
+
}
|
|
119
|
+
$unwrapErr(msg) {
|
|
120
|
+
throw new RetupleUnwrapErrFailed(this[1], msg);
|
|
121
|
+
}
|
|
122
|
+
$unwrapOr() {
|
|
123
|
+
return this[1];
|
|
124
|
+
}
|
|
125
|
+
$unwrapOrElse() {
|
|
126
|
+
return this[1];
|
|
127
|
+
}
|
|
128
|
+
$map(f) {
|
|
129
|
+
return new ResultOk(f(this[1]));
|
|
130
|
+
}
|
|
131
|
+
$mapErr() {
|
|
132
|
+
return this;
|
|
133
|
+
}
|
|
134
|
+
$mapOr(_def, f) {
|
|
135
|
+
return new ResultOk(f(this[1]));
|
|
136
|
+
}
|
|
137
|
+
$mapOrElse(_def, f) {
|
|
138
|
+
return new ResultOk(f(this[1]));
|
|
139
|
+
}
|
|
140
|
+
$or() {
|
|
141
|
+
return this;
|
|
142
|
+
}
|
|
143
|
+
$orElse() {
|
|
144
|
+
return this;
|
|
145
|
+
}
|
|
146
|
+
$orSafe() {
|
|
147
|
+
return this;
|
|
148
|
+
}
|
|
149
|
+
$and(and) {
|
|
150
|
+
return and;
|
|
151
|
+
}
|
|
152
|
+
$andThen(f) {
|
|
153
|
+
return f(this[1]);
|
|
154
|
+
}
|
|
155
|
+
$andThrough(f) {
|
|
156
|
+
const res = f(this[1]);
|
|
157
|
+
return res instanceof ResultErr ? res : this;
|
|
158
|
+
}
|
|
159
|
+
$andSafe(f, mapError = ensureError) {
|
|
160
|
+
try {
|
|
161
|
+
return new ResultOk(f(this[1]));
|
|
162
|
+
}
|
|
163
|
+
catch (err) {
|
|
164
|
+
return new ResultErr(mapError(err));
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
$peek(f) {
|
|
168
|
+
f(this);
|
|
169
|
+
return this;
|
|
170
|
+
}
|
|
171
|
+
$tap(f) {
|
|
172
|
+
f(this[1]);
|
|
173
|
+
return this;
|
|
174
|
+
}
|
|
175
|
+
$tapErr() {
|
|
176
|
+
return this;
|
|
177
|
+
}
|
|
178
|
+
$flatten() {
|
|
179
|
+
return this[1];
|
|
180
|
+
}
|
|
181
|
+
$async() {
|
|
182
|
+
return new ResultAsync(Promise.resolve(this));
|
|
183
|
+
}
|
|
184
|
+
$promise() {
|
|
185
|
+
return Promise.resolve(this);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* ## Err
|
|
190
|
+
*
|
|
191
|
+
* @TODO
|
|
192
|
+
*/
|
|
193
|
+
class ResultErr extends Array {
|
|
194
|
+
constructor(err) {
|
|
195
|
+
super(2);
|
|
196
|
+
this[0] = err;
|
|
197
|
+
this[1] = undefined;
|
|
198
|
+
}
|
|
199
|
+
$value() {
|
|
200
|
+
return this[0];
|
|
201
|
+
}
|
|
202
|
+
$isOk() {
|
|
203
|
+
return false;
|
|
204
|
+
}
|
|
205
|
+
$isOkAnd() {
|
|
206
|
+
return false;
|
|
207
|
+
}
|
|
208
|
+
$isErr() {
|
|
209
|
+
return true;
|
|
210
|
+
}
|
|
211
|
+
$isErrAnd(f) {
|
|
212
|
+
return f(this[0]);
|
|
213
|
+
}
|
|
214
|
+
$expect() {
|
|
215
|
+
if (this[0] instanceof Error) {
|
|
216
|
+
throw this[0];
|
|
217
|
+
}
|
|
218
|
+
throw new RetupleExpectFailed(this[0]);
|
|
219
|
+
}
|
|
220
|
+
$unwrap(msg) {
|
|
221
|
+
throw new RetupleUnwrapFailed(this[0], msg);
|
|
222
|
+
}
|
|
223
|
+
$unwrapErr() {
|
|
224
|
+
return this[0];
|
|
225
|
+
}
|
|
226
|
+
$unwrapOr(def) {
|
|
227
|
+
return def;
|
|
228
|
+
}
|
|
229
|
+
$unwrapOrElse(f) {
|
|
230
|
+
return f();
|
|
231
|
+
}
|
|
232
|
+
$map() {
|
|
233
|
+
return this;
|
|
234
|
+
}
|
|
235
|
+
$mapErr(f) {
|
|
236
|
+
return new ResultErr(f(this[0]));
|
|
237
|
+
}
|
|
238
|
+
$mapOr(def) {
|
|
239
|
+
return new ResultOk(def);
|
|
240
|
+
}
|
|
241
|
+
$mapOrElse(def) {
|
|
242
|
+
return new ResultOk(def(this[0]));
|
|
243
|
+
}
|
|
244
|
+
$or(or) {
|
|
245
|
+
return or;
|
|
246
|
+
}
|
|
247
|
+
$orElse(f) {
|
|
248
|
+
return f(this[0]);
|
|
249
|
+
}
|
|
250
|
+
$orSafe(f, mapError = ensureError) {
|
|
251
|
+
try {
|
|
252
|
+
return new ResultOk(f(this[0]));
|
|
253
|
+
}
|
|
254
|
+
catch (err) {
|
|
255
|
+
return new ResultErr(mapError(err));
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
$and() {
|
|
259
|
+
return this;
|
|
260
|
+
}
|
|
261
|
+
$andThen() {
|
|
262
|
+
return this;
|
|
263
|
+
}
|
|
264
|
+
$andThrough() {
|
|
265
|
+
return this;
|
|
266
|
+
}
|
|
267
|
+
$andSafe() {
|
|
268
|
+
return this;
|
|
269
|
+
}
|
|
270
|
+
$peek(f) {
|
|
271
|
+
f(this);
|
|
272
|
+
return this;
|
|
273
|
+
}
|
|
274
|
+
$tap() {
|
|
275
|
+
return this;
|
|
276
|
+
}
|
|
277
|
+
$tapErr(f) {
|
|
278
|
+
f(this[0]);
|
|
279
|
+
return this;
|
|
280
|
+
}
|
|
281
|
+
$flatten() {
|
|
282
|
+
return this;
|
|
283
|
+
}
|
|
284
|
+
$async() {
|
|
285
|
+
return new ResultAsync(Promise.resolve(this));
|
|
286
|
+
}
|
|
287
|
+
$promise() {
|
|
288
|
+
return Promise.resolve(this);
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
/**
|
|
292
|
+
* ## ResultAsync
|
|
293
|
+
*
|
|
294
|
+
* @TODO
|
|
295
|
+
*/
|
|
296
|
+
class ResultAsync {
|
|
297
|
+
constructor(inner) {
|
|
298
|
+
_ResultAsync_inner.set(this, void 0);
|
|
299
|
+
__classPrivateFieldSet(this, _ResultAsync_inner, inner, "f");
|
|
300
|
+
}
|
|
301
|
+
then(onfulfilled, onrejected) {
|
|
302
|
+
return __classPrivateFieldGet(this, _ResultAsync_inner, "f").then(onfulfilled, onrejected);
|
|
303
|
+
}
|
|
304
|
+
/**
|
|
305
|
+
* @TODO
|
|
306
|
+
*/
|
|
307
|
+
async $value() {
|
|
308
|
+
return (await __classPrivateFieldGet(this, _ResultAsync_inner, "f")).$value();
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* @TODO
|
|
312
|
+
*/
|
|
313
|
+
async $expect() {
|
|
314
|
+
return (await __classPrivateFieldGet(this, _ResultAsync_inner, "f")).$expect();
|
|
315
|
+
}
|
|
316
|
+
/**
|
|
317
|
+
* @TODO
|
|
318
|
+
*/
|
|
319
|
+
async $unwrap(msg) {
|
|
320
|
+
return (await __classPrivateFieldGet(this, _ResultAsync_inner, "f")).$unwrap(msg);
|
|
321
|
+
}
|
|
322
|
+
/**
|
|
323
|
+
* @TODO
|
|
324
|
+
*/
|
|
325
|
+
async $unwrapErr(msg) {
|
|
326
|
+
return (await __classPrivateFieldGet(this, _ResultAsync_inner, "f")).$unwrapErr(msg);
|
|
327
|
+
}
|
|
328
|
+
/**
|
|
329
|
+
* @TODO
|
|
330
|
+
*/
|
|
331
|
+
async $unwrapOr(def) {
|
|
332
|
+
return (await __classPrivateFieldGet(this, _ResultAsync_inner, "f")).$unwrapOr(def);
|
|
333
|
+
}
|
|
334
|
+
/**
|
|
335
|
+
* @TODO
|
|
336
|
+
*/
|
|
337
|
+
async $unwrapOrElse(f) {
|
|
338
|
+
const res = await __classPrivateFieldGet(this, _ResultAsync_inner, "f");
|
|
339
|
+
return res instanceof ResultOk ? res[1] : f();
|
|
340
|
+
}
|
|
341
|
+
/**
|
|
342
|
+
* @TODO
|
|
343
|
+
*/
|
|
344
|
+
$map(f) {
|
|
345
|
+
return new ResultAsync(__classPrivateFieldGet(this, _ResultAsync_inner, "f").then(async (res) => {
|
|
346
|
+
return res instanceof ResultOk
|
|
347
|
+
? new ResultOk(f(res[1]))
|
|
348
|
+
: res;
|
|
349
|
+
}));
|
|
350
|
+
}
|
|
351
|
+
/**
|
|
352
|
+
* @TODO
|
|
353
|
+
*/
|
|
354
|
+
$mapErr(f) {
|
|
355
|
+
return new ResultAsync(__classPrivateFieldGet(this, _ResultAsync_inner, "f").then(async (res) => {
|
|
356
|
+
return res instanceof ResultErr
|
|
357
|
+
? new ResultErr(f(res[0]))
|
|
358
|
+
: res;
|
|
359
|
+
}));
|
|
360
|
+
}
|
|
361
|
+
/**
|
|
362
|
+
* @TODO
|
|
363
|
+
*/
|
|
364
|
+
$mapOr(def, f) {
|
|
365
|
+
return new ResultAsync(__classPrivateFieldGet(this, _ResultAsync_inner, "f").then(async (res) => {
|
|
366
|
+
return res instanceof ResultOk
|
|
367
|
+
? new ResultOk(f(res[1]))
|
|
368
|
+
: new ResultOk(def);
|
|
369
|
+
}));
|
|
370
|
+
}
|
|
371
|
+
/**
|
|
372
|
+
* @TODO
|
|
373
|
+
*/
|
|
374
|
+
$mapOrElse(def, f) {
|
|
375
|
+
return new ResultAsync(__classPrivateFieldGet(this, _ResultAsync_inner, "f").then(async (res) => {
|
|
376
|
+
return res instanceof ResultOk
|
|
377
|
+
? new ResultOk(f(res[1]))
|
|
378
|
+
: new ResultOk(def(res[0]));
|
|
379
|
+
}));
|
|
380
|
+
}
|
|
381
|
+
/**
|
|
382
|
+
* @TODO
|
|
383
|
+
*/
|
|
384
|
+
$or(or) {
|
|
385
|
+
return new ResultAsync(__classPrivateFieldGet(this, _ResultAsync_inner, "f").then(async (res) => {
|
|
386
|
+
return res instanceof ResultErr ? await or : res;
|
|
387
|
+
}));
|
|
388
|
+
}
|
|
389
|
+
/**
|
|
390
|
+
* @TODO
|
|
391
|
+
*/
|
|
392
|
+
$orElse(f) {
|
|
393
|
+
return new ResultAsync(__classPrivateFieldGet(this, _ResultAsync_inner, "f").then(async (res) => {
|
|
394
|
+
return res instanceof ResultErr ? await f(res[0]) : res;
|
|
395
|
+
}));
|
|
396
|
+
}
|
|
397
|
+
/**
|
|
398
|
+
* @TODO
|
|
399
|
+
*/
|
|
400
|
+
$orSafe(f, mapError = ensureError) {
|
|
401
|
+
return new ResultAsync(__classPrivateFieldGet(this, _ResultAsync_inner, "f").then(async (res) => {
|
|
402
|
+
if (res instanceof ResultOk) {
|
|
403
|
+
return res;
|
|
404
|
+
}
|
|
405
|
+
try {
|
|
406
|
+
return new ResultOk(await f(res[0]));
|
|
407
|
+
}
|
|
408
|
+
catch (err) {
|
|
409
|
+
return new ResultErr(mapError(err));
|
|
410
|
+
}
|
|
411
|
+
}));
|
|
412
|
+
}
|
|
413
|
+
/**
|
|
414
|
+
* @TODO
|
|
415
|
+
*/
|
|
416
|
+
$and(and) {
|
|
417
|
+
return new ResultAsync(__classPrivateFieldGet(this, _ResultAsync_inner, "f").then(async (res) => {
|
|
418
|
+
return res instanceof ResultOk ? await and : res;
|
|
419
|
+
}));
|
|
420
|
+
}
|
|
421
|
+
/**
|
|
422
|
+
* @TODO
|
|
423
|
+
*/
|
|
424
|
+
$andThen(f) {
|
|
425
|
+
return new ResultAsync(__classPrivateFieldGet(this, _ResultAsync_inner, "f").then(async (res) => {
|
|
426
|
+
return res instanceof ResultOk ? await f(res[1]) : res;
|
|
427
|
+
}));
|
|
428
|
+
}
|
|
429
|
+
/**
|
|
430
|
+
* @TODO
|
|
431
|
+
*/
|
|
432
|
+
$andThrough(f) {
|
|
433
|
+
return new ResultAsync(__classPrivateFieldGet(this, _ResultAsync_inner, "f").then(async (res) => {
|
|
434
|
+
if (res instanceof ResultOk) {
|
|
435
|
+
const through = await f(res[1]);
|
|
436
|
+
if (through instanceof ResultErr) {
|
|
437
|
+
return through;
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
return res;
|
|
441
|
+
}));
|
|
442
|
+
}
|
|
443
|
+
/**
|
|
444
|
+
* @TODO
|
|
445
|
+
*/
|
|
446
|
+
$andSafe(f, mapError = ensureError) {
|
|
447
|
+
return new ResultAsync(__classPrivateFieldGet(this, _ResultAsync_inner, "f").then(async (res) => {
|
|
448
|
+
if (res instanceof ResultErr) {
|
|
449
|
+
return res;
|
|
450
|
+
}
|
|
451
|
+
try {
|
|
452
|
+
return new ResultOk(await f(res[1]));
|
|
453
|
+
}
|
|
454
|
+
catch (err) {
|
|
455
|
+
return new ResultErr(mapError(err));
|
|
456
|
+
}
|
|
457
|
+
}));
|
|
458
|
+
}
|
|
459
|
+
/**
|
|
460
|
+
* @TODO
|
|
461
|
+
*/
|
|
462
|
+
$peek(f) {
|
|
463
|
+
return new ResultAsync(__classPrivateFieldGet(this, _ResultAsync_inner, "f").then(async (res) => {
|
|
464
|
+
await f(res);
|
|
465
|
+
return res;
|
|
466
|
+
}));
|
|
467
|
+
}
|
|
468
|
+
/**
|
|
469
|
+
* @TODO
|
|
470
|
+
*/
|
|
471
|
+
$tap(f) {
|
|
472
|
+
return new ResultAsync(__classPrivateFieldGet(this, _ResultAsync_inner, "f").then(async (res) => {
|
|
473
|
+
if (res instanceof ResultOk) {
|
|
474
|
+
await f(res[1]);
|
|
475
|
+
}
|
|
476
|
+
return res;
|
|
477
|
+
}));
|
|
478
|
+
}
|
|
479
|
+
/**
|
|
480
|
+
* @TODO
|
|
481
|
+
*/
|
|
482
|
+
$tapErr(f) {
|
|
483
|
+
return new ResultAsync(__classPrivateFieldGet(this, _ResultAsync_inner, "f").then(async (res) => {
|
|
484
|
+
if (res instanceof ResultErr) {
|
|
485
|
+
await f(res[0]);
|
|
486
|
+
}
|
|
487
|
+
return res;
|
|
488
|
+
}));
|
|
489
|
+
}
|
|
490
|
+
/**
|
|
491
|
+
* @TODO
|
|
492
|
+
*/
|
|
493
|
+
$promise() {
|
|
494
|
+
return Promise.resolve(this);
|
|
495
|
+
}
|
|
496
|
+
}
|
|
497
|
+
_ResultAsync_inner = new WeakMap();
|
|
498
|
+
function ensureError(err) {
|
|
499
|
+
if (err instanceof Error) {
|
|
500
|
+
return err;
|
|
501
|
+
}
|
|
502
|
+
return new RetupleThrownValueError(err);
|
|
503
|
+
}
|
|
504
|
+
Object.freeze(Result);
|
|
505
|
+
Object.freeze(ResultOk);
|
|
506
|
+
Object.freeze(ResultErr);
|
|
507
|
+
Object.freeze(ResultAsync);
|
|
508
|
+
Object.freeze(RetupleUnwrapFailed);
|
|
509
|
+
Object.freeze(RetupleUnwrapErrFailed);
|
|
510
|
+
Object.freeze(RetupleExpectFailed);
|
|
511
|
+
Object.freeze(RetupleThrownValueError);
|
|
512
|
+
Object.freeze(ResultOk.prototype);
|
|
513
|
+
Object.freeze(ResultErr.prototype);
|
|
514
|
+
Object.freeze(ResultAsync.prototype);
|
|
515
|
+
Object.freeze(RetupleUnwrapFailed.prototype);
|
|
516
|
+
Object.freeze(RetupleUnwrapErrFailed.prototype);
|
|
517
|
+
Object.freeze(RetupleExpectFailed.prototype);
|
|
518
|
+
Object.freeze(RetupleThrownValueError.prototype);
|
package/package.json
CHANGED
|
@@ -1,13 +1,51 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "retuple",
|
|
3
|
-
"version": "0.0.1",
|
|
4
|
-
"
|
|
3
|
+
"version": "1.0.0-next.1",
|
|
4
|
+
"scripts": {
|
|
5
|
+
"test": "vitest",
|
|
6
|
+
"lint": "eslint . --ext .ts -c eslint.config.mjs --fix",
|
|
7
|
+
"build": "zshy",
|
|
8
|
+
"coverage": "vitest run --coverage && open './coverage/index.html'"
|
|
9
|
+
},
|
|
10
|
+
"type": "module",
|
|
11
|
+
"main": "./dist/index.cjs",
|
|
12
|
+
"types": "./dist/index.d.cts",
|
|
13
|
+
"module": "./dist/index.js",
|
|
14
|
+
"zshy": "./src/index.ts",
|
|
5
15
|
"keywords": [
|
|
6
|
-
"result",
|
|
7
|
-
"monad",
|
|
8
16
|
"error",
|
|
9
|
-
"handling"
|
|
17
|
+
"handling",
|
|
18
|
+
"safe",
|
|
19
|
+
"result",
|
|
20
|
+
"throw",
|
|
21
|
+
"monad"
|
|
10
22
|
],
|
|
11
23
|
"author": "Matthew Wilson",
|
|
12
|
-
"license": "MIT"
|
|
24
|
+
"license": "MIT",
|
|
25
|
+
"description": "A strongly typed errors as values library built around tuples.",
|
|
26
|
+
"repository": {
|
|
27
|
+
"type": "git",
|
|
28
|
+
"url": "git+https://github.com/traverse1984/retuple.git"
|
|
29
|
+
},
|
|
30
|
+
"devDependencies": {
|
|
31
|
+
"typescript": "^5.9.2",
|
|
32
|
+
"zshy": "^0.4.1",
|
|
33
|
+
"vitest": "^3.2.4",
|
|
34
|
+
"@vitest/coverage-v8": "^3.2.4",
|
|
35
|
+
"eslint": "^9.35.0",
|
|
36
|
+
"eslint-config-prettier": "^10.1.8",
|
|
37
|
+
"eslint-plugin-prettier": "^5.5.4",
|
|
38
|
+
"@typescript-eslint/eslint-plugin": "^8.43.0",
|
|
39
|
+
"@typescript-eslint/parser": "^8.43.0"
|
|
40
|
+
},
|
|
41
|
+
"exports": {
|
|
42
|
+
".": {
|
|
43
|
+
"types": "./dist/index.d.cts",
|
|
44
|
+
"import": "./dist/index.js",
|
|
45
|
+
"require": "./dist/index.cjs"
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
"files": [
|
|
49
|
+
"dist"
|
|
50
|
+
]
|
|
13
51
|
}
|