@sapphire/result 2.6.7-next.f929edc5.0 → 2.6.7-next.fc35dd86
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/README.md +1 -2
- package/dist/cjs/index.cjs +11 -19
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/esm/index.mjs +11 -19
- package/dist/esm/index.mjs.map +1 -1
- package/dist/iife/index.global.js +11 -19
- package/dist/iife/index.global.js.map +1 -1
- package/package.json +13 -11
package/README.md
CHANGED
|
@@ -7,7 +7,6 @@
|
|
|
7
7
|
**A TypeScript port of Nightly Rust's Result and Option structs**
|
|
8
8
|
|
|
9
9
|
[](https://github.com/sapphiredev/utilities/blob/main/LICENSE.md)
|
|
10
|
-
[](https://codecov.io/gh/sapphiredev/utilities)
|
|
11
10
|
[](https://bundlephobia.com/result?p=@sapphire/result)
|
|
12
11
|
[](https://www.npmjs.com/package/@sapphire/result)
|
|
13
12
|
|
|
@@ -37,7 +36,7 @@ npm install @sapphire/result
|
|
|
37
36
|
|
|
38
37
|
**Note 1:** While this section uses `require`, the imports match 1:1 with ESM imports. For example `const { Result } = require('@sapphire/result')` equals `import { Result } from '@sapphire/result'`.
|
|
39
38
|
|
|
40
|
-
**Note 2:** For more thorough examples check out the generated documentation on [our website here](https://www.sapphirejs.dev/docs/Documentation/api-utilities/interfaces/
|
|
39
|
+
**Note 2:** For more thorough examples check out the generated documentation on [our website here](https://www.sapphirejs.dev/docs/Documentation/api-utilities/@sapphire/result/interfaces/IResult)
|
|
41
40
|
|
|
42
41
|
### Wrapping synchronous `try-catch` blocks
|
|
43
42
|
|
package/dist/cjs/index.cjs
CHANGED
|
@@ -3,10 +3,7 @@
|
|
|
3
3
|
var __defProp = Object.defineProperty;
|
|
4
4
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
5
5
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
6
|
-
var __publicField = (obj, key, value) =>
|
|
7
|
-
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
8
|
-
return value;
|
|
9
|
-
};
|
|
6
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
10
7
|
|
|
11
8
|
// src/lib/common/utils.ts
|
|
12
9
|
function isFunction(input) {
|
|
@@ -128,8 +125,8 @@ var _ResultOk = class _ResultOk {
|
|
|
128
125
|
}
|
|
129
126
|
transpose() {
|
|
130
127
|
return this.value.match({
|
|
131
|
-
some: (value) => createSome(createOk(value)),
|
|
132
|
-
none: () => createNone
|
|
128
|
+
some: /* @__PURE__ */ __name((value) => createSome(createOk(value)), "some"),
|
|
129
|
+
none: /* @__PURE__ */ __name(() => createNone, "none")
|
|
133
130
|
});
|
|
134
131
|
}
|
|
135
132
|
flatten() {
|
|
@@ -253,8 +250,8 @@ var _OptionSome = class _OptionSome {
|
|
|
253
250
|
}
|
|
254
251
|
transpose() {
|
|
255
252
|
return this.value.match({
|
|
256
|
-
ok: (v) => createOk(createSome(v)),
|
|
257
|
-
err: (e) => createErr(e)
|
|
253
|
+
ok: /* @__PURE__ */ __name((v) => createOk(createSome(v)), "ok"),
|
|
254
|
+
err: /* @__PURE__ */ __name((e) => createErr(e), "err")
|
|
258
255
|
});
|
|
259
256
|
}
|
|
260
257
|
flatten() {
|
|
@@ -531,10 +528,8 @@ var createNone = new OptionNone();
|
|
|
531
528
|
exports.Option = void 0;
|
|
532
529
|
((Option2) => {
|
|
533
530
|
function resolve(value) {
|
|
534
|
-
if (value === null || value === void 0)
|
|
535
|
-
|
|
536
|
-
if (is(value))
|
|
537
|
-
return value;
|
|
531
|
+
if (value === null || value === void 0) return Option2.none;
|
|
532
|
+
if (is(value)) return value;
|
|
538
533
|
return (0, Option2.some)(value);
|
|
539
534
|
}
|
|
540
535
|
__name(resolve, "resolve");
|
|
@@ -544,8 +539,7 @@ exports.Option = void 0;
|
|
|
544
539
|
Option2.is = is;
|
|
545
540
|
__name(is, "is");
|
|
546
541
|
function from(op) {
|
|
547
|
-
if (!isFunction(op))
|
|
548
|
-
return resolve(op);
|
|
542
|
+
if (!isFunction(op)) return resolve(op);
|
|
549
543
|
try {
|
|
550
544
|
return resolve(op());
|
|
551
545
|
} catch {
|
|
@@ -593,8 +587,7 @@ exports.Option = void 0;
|
|
|
593
587
|
exports.Result = void 0;
|
|
594
588
|
((Result2) => {
|
|
595
589
|
function resolve(value) {
|
|
596
|
-
if (is(value))
|
|
597
|
-
return value;
|
|
590
|
+
if (is(value)) return value;
|
|
598
591
|
return (0, Result2.ok)(value);
|
|
599
592
|
}
|
|
600
593
|
__name(resolve, "resolve");
|
|
@@ -604,8 +597,7 @@ exports.Result = void 0;
|
|
|
604
597
|
Result2.is = is;
|
|
605
598
|
__name(is, "is");
|
|
606
599
|
function from(op) {
|
|
607
|
-
if (!isFunction(op))
|
|
608
|
-
return resolve(op);
|
|
600
|
+
if (!isFunction(op)) return resolve(op);
|
|
609
601
|
try {
|
|
610
602
|
return resolve(op());
|
|
611
603
|
} catch (error) {
|
|
@@ -657,5 +649,5 @@ exports.err = createErr;
|
|
|
657
649
|
exports.none = createNone;
|
|
658
650
|
exports.ok = createOk;
|
|
659
651
|
exports.some = createSome;
|
|
660
|
-
//# sourceMappingURL=
|
|
652
|
+
//# sourceMappingURL=index.cjs.map
|
|
661
653
|
//# sourceMappingURL=index.cjs.map
|
package/dist/cjs/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/lib/common/utils.ts","../../src/lib/Result/ResultError.ts","../../src/lib/Result/Ok.ts","../../src/lib/Option/Some.ts","../../src/lib/Result/Err.ts","../../src/lib/Option/OptionError.ts","../../src/lib/Option/None.ts","../../src/lib/Option.ts","../../src/lib/Result.ts"],"names":["Option","Result"],"mappings":"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","sourcesContent":["export type Awaitable<T> = PromiseLike<T> | T;\n\nexport function isFunction<A extends readonly any[], R>(cb: (...args: A) => R): true;\nexport function isFunction(input: any): input is (...args: readonly any[]) => any;\nexport function isFunction(input: any) {\n\treturn typeof input === 'function';\n}\n\nexport function isPromise<T>(input: PromiseLike<T>): true;\nexport function isPromise(input: any): input is PromiseLike<any>;\nexport function isPromise(input: any) {\n\treturn typeof input === 'object' && input !== null && typeof input.then === 'function';\n}\n","export class ResultError<E> extends Error {\n\tpublic readonly value: E;\n\n\tpublic constructor(message: string, value: E) {\n\t\tsuper(message);\n\t\tthis.value = value;\n\t}\n\n\tpublic override get name(): string {\n\t\treturn this.constructor.name;\n\t}\n}\n","import type { Awaitable } from '../common/utils';\nimport type { Option } from '../Option';\nimport { createNone, type OptionNone } from '../Option/None';\nimport { createSome, type OptionSome } from '../Option/Some';\nimport type { Result } from '../Result';\nimport type { ResultErr } from './Err';\nimport type { IResult } from './IResult';\nimport { ResultError } from './ResultError';\n\nexport class ResultOk<T> implements IResult<T, any> {\n\tprivate readonly value: T;\n\n\tpublic constructor(value: T) {\n\t\tthis.value = value;\n\t}\n\n\tpublic isOk(): this is ResultOk<T> {\n\t\treturn true;\n\t}\n\n\tpublic isOkAnd<R extends boolean>(cb: (value: T) => R): R {\n\t\treturn cb(this.value);\n\t}\n\n\tpublic isErr(): false {\n\t\treturn false;\n\t}\n\n\tpublic isErrAnd(cb?: (error: never) => boolean): false;\n\tpublic isErrAnd(): false {\n\t\treturn false;\n\t}\n\n\tpublic ok(): OptionSome<T> {\n\t\treturn createSome(this.value);\n\t}\n\n\tpublic err(): OptionNone {\n\t\treturn createNone;\n\t}\n\n\tpublic map<U>(cb: (value: T) => U): ResultOk<U> {\n\t\treturn createOk(cb(this.value));\n\t}\n\n\tpublic mapInto<R extends Result<any, any>>(cb: (value: T) => R): R {\n\t\treturn cb(this.value);\n\t}\n\n\tpublic mapOr<U>(_: U, cb: (value: T) => U): U {\n\t\treturn cb(this.value);\n\t}\n\n\tpublic mapOrElse<U>(_: (error: never) => U, cb: (value: T) => U): U {\n\t\treturn cb(this.value);\n\t}\n\n\tpublic mapErr(cb?: (error: never) => any): this;\n\tpublic mapErr(): this {\n\t\treturn this;\n\t}\n\n\tpublic mapErrInto(cb: (error: never) => Result<any, any>): this;\n\tpublic mapErrInto(): this {\n\t\treturn this;\n\t}\n\n\tpublic inspect(cb: (value: T) => void): this {\n\t\tcb(this.value);\n\t\treturn this;\n\t}\n\n\tpublic async inspectAsync(cb: (value: T) => Awaitable<unknown>): Promise<this> {\n\t\tawait cb(this.value);\n\t\treturn this;\n\t}\n\n\tpublic inspectErr(cb?: (error: never) => void): this;\n\tpublic inspectErr(): this {\n\t\treturn this;\n\t}\n\n\tpublic inspectErrAsync(cb?: (error: never) => Awaitable<unknown>): Promise<this>;\n\tpublic inspectErrAsync(): Promise<this> {\n\t\treturn Promise.resolve(this);\n\t}\n\n\tpublic *iter(): Generator<T> {\n\t\tyield this.value;\n\t}\n\n\tpublic expect(message?: string): T;\n\tpublic expect(): T {\n\t\treturn this.value;\n\t}\n\n\tpublic expectErr(message: string): never {\n\t\tthrow new ResultError(message, this.value);\n\t}\n\n\tpublic unwrap(): T {\n\t\treturn this.value;\n\t}\n\n\tpublic unwrapErr(): never {\n\t\tthrow new ResultError('Unwrap failed', this.value);\n\t}\n\n\tpublic unwrapOr(defaultValue: unknown): T;\n\tpublic unwrapOr(): T {\n\t\treturn this.value;\n\t}\n\n\tpublic unwrapOrElse(op: (error: any) => unknown): T;\n\tpublic unwrapOrElse(): T {\n\t\treturn this.value;\n\t}\n\n\tpublic unwrapRaw(): T {\n\t\treturn this.value;\n\t}\n\n\tpublic and<R extends Result<any, any>>(result: R): R {\n\t\treturn result;\n\t}\n\n\tpublic andThen<R extends Result<any, any>>(cb: (value: T) => R): R {\n\t\treturn cb(this.value);\n\t}\n\n\tpublic or(result: Result<T, any>): this;\n\tpublic or(): this {\n\t\treturn this;\n\t}\n\n\tpublic orElse(cb: (error: never) => Result<T, any>): this;\n\tpublic orElse(): this {\n\t\treturn this;\n\t}\n\n\tpublic contains(value: T): boolean {\n\t\treturn this.value === value;\n\t}\n\n\tpublic containsErr(error?: unknown): false;\n\tpublic containsErr(): false {\n\t\treturn false;\n\t}\n\n\tpublic transpose(this: ResultOk<OptionNone>): OptionNone;\n\tpublic transpose<Inner>(this: ResultOk<OptionSome<Inner>>): OptionSome<ResultOk<Inner>>;\n\tpublic transpose<Inner>(this: ResultOk<Option<Inner>>): Option<ResultOk<Inner>>;\n\tpublic transpose<IT>(this: ResultOk<Option<IT>>): Option<ResultOk<IT>> {\n\t\treturn this.value.match({\n\t\t\tsome: (value) => createSome(createOk(value)),\n\t\t\tnone: () => createNone\n\t\t});\n\t}\n\n\tpublic flatten<Inner extends Result<any, any>>(this: ResultOk<Inner>): Inner {\n\t\treturn this.value;\n\t}\n\n\tpublic intoOkOrErr() {\n\t\treturn this.value;\n\t}\n\n\tpublic async intoPromise(): Promise<ResultOk<Awaited<T>>> {\n\t\treturn createOk(await this.value);\n\t}\n\n\tpublic eq(other: ResultErr<any>): false;\n\tpublic eq(other: Result<T, any>): boolean;\n\tpublic eq(other: Result<T, any>): boolean {\n\t\treturn other.isOkAnd((value) => this.value === value);\n\t}\n\n\tpublic ne(other: ResultErr<any>): true;\n\tpublic ne(other: Result<T, any>): boolean;\n\tpublic ne(other: Result<T, any>): boolean {\n\t\treturn !this.eq(other);\n\t}\n\n\tpublic match<OkValue, ErrValue>(branches: { ok(value: T): OkValue; err(error: never): ErrValue }): OkValue {\n\t\treturn branches.ok(this.value);\n\t}\n\n\tpublic *[Symbol.iterator](): Generator<T> {\n\t\tyield this.value;\n\t}\n}\n\n/**\n * Creates an Ok with no value.\n * @return A successful Result.\n */\nexport function createOk(): ResultOk<unknown>;\n\n/**\n * Creates an Ok.\n * @typeparam T The result's type.\n * @param x Value to use.\n * @return A successful Result.\n */\nexport function createOk<T>(x: T): ResultOk<T>;\nexport function createOk<T>(x?: T): ResultOk<T | undefined> {\n\treturn new ResultOk(x);\n}\n","import type { Awaitable } from '../common/utils';\nimport type { Option } from '../Option';\nimport type { Result } from '../Result';\nimport { createErr, type ResultErr } from '../Result/Err';\nimport { createOk, type ResultOk } from '../Result/Ok';\nimport type { IOption } from './IOption';\nimport { createNone, type OptionNone } from './None';\n\nexport class OptionSome<T> implements IOption<T> {\n\tprivate readonly value: T;\n\n\tpublic constructor(value: T) {\n\t\tthis.value = value;\n\t}\n\n\tpublic isSome(): this is OptionSome<T> {\n\t\treturn true;\n\t}\n\n\tpublic isSomeAnd<R extends boolean>(cb: (value: T) => R): R {\n\t\treturn cb(this.value);\n\t}\n\n\tpublic isNone(): false {\n\t\treturn false;\n\t}\n\n\tpublic expect(message: string): T;\n\tpublic expect(): T {\n\t\treturn this.value;\n\t}\n\n\tpublic unwrap(): T {\n\t\treturn this.value;\n\t}\n\n\tpublic unwrapOr(defaultValue: unknown): T;\n\tpublic unwrapOr(): T {\n\t\treturn this.value;\n\t}\n\n\tpublic unwrapOrElse(cb: () => unknown): T;\n\tpublic unwrapOrElse(): T {\n\t\treturn this.value;\n\t}\n\n\tpublic map<U>(cb: (value: T) => U): OptionSome<U> {\n\t\treturn createSome(cb(this.value));\n\t}\n\n\tpublic mapInto<R extends Option<any>>(cb: (value: T) => R): R {\n\t\treturn cb(this.value);\n\t}\n\n\tpublic mapOr<U>(_: U, cb: (value: T) => U): U {\n\t\treturn cb(this.value);\n\t}\n\n\tpublic mapOrElse<U>(_: () => U, cb: (value: T) => U): U {\n\t\treturn cb(this.value);\n\t}\n\n\tpublic mapNoneInto(cb: () => Option<any>): this;\n\tpublic mapNoneInto(): this {\n\t\treturn this;\n\t}\n\n\tpublic inspect(cb: (value: T) => void): this {\n\t\tcb(this.value);\n\t\treturn this;\n\t}\n\n\tpublic async inspectAsync(cb: (value: T) => Awaitable<unknown>): Promise<this> {\n\t\tawait cb(this.value);\n\t\treturn this;\n\t}\n\n\tpublic okOr(err?: any): ResultOk<T>;\n\tpublic okOr(): ResultOk<T> {\n\t\treturn createOk(this.value);\n\t}\n\n\tpublic okOrElse(cb: () => any): ResultOk<T>;\n\tpublic okOrElse(): ResultOk<T> {\n\t\treturn createOk(this.value);\n\t}\n\n\tpublic *iter(): Generator<T> {\n\t\tyield this.value;\n\t}\n\n\tpublic and<R extends Option<any>>(option: R): R {\n\t\treturn option;\n\t}\n\n\tpublic andThen<R extends Option<any>>(cb: (value: T) => R): R {\n\t\treturn cb(this.value);\n\t}\n\n\tpublic or(option: Option<any>): this;\n\tpublic or(): this {\n\t\treturn this;\n\t}\n\n\tpublic orElse(cb?: () => Option<any>): this;\n\tpublic orElse(): this {\n\t\treturn this;\n\t}\n\n\tpublic xor(option: OptionSome<T>): OptionNone;\n\tpublic xor(option: OptionNone): this;\n\tpublic xor(option: Option<T>): this | OptionNone;\n\tpublic xor(option: Option<T>): this | OptionNone {\n\t\treturn option.isSome() ? createNone : this;\n\t}\n\n\tpublic filter(predicate: (value: T) => true): this;\n\tpublic filter(predicate: (value: T) => false): OptionNone;\n\tpublic filter(predicate: (value: T) => boolean): this | OptionNone;\n\tpublic filter(predicate: (value: T) => boolean): this | OptionNone {\n\t\treturn predicate(this.value) ? this : createNone;\n\t}\n\n\tpublic contains(value: T): boolean {\n\t\treturn this.value === value;\n\t}\n\n\tpublic zip(other: OptionNone): OptionNone;\n\tpublic zip<U>(other: OptionSome<U>): OptionSome<[T, U]>;\n\tpublic zip<U>(other: Option<U>): Option<[T, U]>;\n\tpublic zip<U>(other: Option<U>): Option<[T, U]> {\n\t\treturn other.map((o) => [this.value, o] as [T, U]);\n\t}\n\n\tpublic zipWith<U, R>(other: OptionNone, f: (s: T, o: U) => R): OptionNone;\n\tpublic zipWith<U, R>(other: OptionSome<U>, f: (s: T, o: U) => R): OptionSome<R>;\n\tpublic zipWith<U, R>(other: Option<U>, f: (s: T, o: U) => R): Option<R>;\n\tpublic zipWith<U, R>(other: Option<U>, f: (s: T, o: U) => R): Option<R> {\n\t\treturn other.map((o) => f(this.value, o));\n\t}\n\n\tpublic unzip<I, U>(this: OptionSome<readonly [I, U]>): [OptionSome<I>, OptionSome<U>] {\n\t\tconst [s, o] = this.value;\n\t\treturn [createSome(s), createSome(o)];\n\t}\n\n\tpublic transpose<Inner>(this: OptionSome<ResultOk<Inner>>): ResultOk<OptionSome<Inner>>;\n\tpublic transpose<Inner>(this: OptionSome<ResultErr<Inner>>): ResultErr<OptionSome<Inner>>;\n\tpublic transpose<IT, E>(this: OptionSome<Result<IT, E>>): Result<OptionSome<IT>, E>;\n\tpublic transpose<IT, E>(this: OptionSome<Result<IT, E>>): Result<OptionSome<IT>, E> {\n\t\treturn this.value.match({\n\t\t\tok: (v) => createOk(createSome(v)),\n\t\t\terr: (e) => createErr(e)\n\t\t});\n\t}\n\n\tpublic flatten<Inner extends Option<any>>(this: OptionSome<Inner>): Inner {\n\t\treturn this.value;\n\t}\n\n\tpublic async intoPromise(): Promise<OptionSome<Awaited<T>>> {\n\t\treturn createSome(await this.value);\n\t}\n\n\tpublic eq(other: OptionNone): false;\n\tpublic eq(other: Option<T>): boolean;\n\tpublic eq(other: Option<T>): boolean {\n\t\treturn other.isSomeAnd((value) => this.value === value);\n\t}\n\n\tpublic ne(other: OptionNone): true;\n\tpublic ne(other: Option<T>): boolean;\n\tpublic ne(other: Option<T>): boolean {\n\t\treturn !this.eq(other);\n\t}\n\n\tpublic match<SomeValue, NoneValue>(branches: { some(value: T): SomeValue; none(): NoneValue }): SomeValue {\n\t\treturn branches.some(this.value);\n\t}\n\n\tpublic *[Symbol.iterator](): Generator<T> {\n\t\tyield this.value;\n\t}\n}\n\nexport function createSome<T>(value: T): OptionSome<T> {\n\treturn new OptionSome<T>(value);\n}\n","import type { Awaitable } from '../common/utils';\nimport { createNone, type OptionNone } from '../Option/None';\nimport { createSome, type OptionSome } from '../Option/Some';\nimport type { Result } from '../Result';\nimport type { IResult } from './IResult';\nimport type { ResultOk } from './Ok';\nimport { ResultError } from './ResultError';\n\nexport class ResultErr<E> implements IResult<any, E> {\n\tprivate readonly error: E;\n\n\tpublic constructor(error: E) {\n\t\tthis.error = error;\n\t}\n\n\tpublic isOk(): false {\n\t\treturn false;\n\t}\n\n\tpublic isOkAnd(cb?: (value: never) => boolean): false;\n\tpublic isOkAnd(): false {\n\t\treturn false;\n\t}\n\n\tpublic isErr(): this is ResultErr<E> {\n\t\treturn true;\n\t}\n\n\tpublic isErrAnd(cb: (error: E) => boolean): boolean {\n\t\treturn cb(this.error);\n\t}\n\n\tpublic ok(): OptionNone {\n\t\treturn createNone;\n\t}\n\n\tpublic err(): OptionSome<E> {\n\t\treturn createSome(this.error);\n\t}\n\n\tpublic map(cb?: (value: never) => unknown): this;\n\tpublic map(): this {\n\t\treturn this;\n\t}\n\n\tpublic mapInto(cb: (value: never) => Result<any, any>): this;\n\tpublic mapInto(): this {\n\t\treturn this;\n\t}\n\n\tpublic mapOr<U>(defaultValue: U, cb?: (value: never) => U): U;\n\tpublic mapOr<U>(defaultValue: U): U {\n\t\treturn defaultValue;\n\t}\n\n\tpublic mapOrElse<U>(op: (error: E) => U, cb?: (value: never) => U): U;\n\tpublic mapOrElse<U>(op: (error: E) => U): U {\n\t\treturn op(this.error);\n\t}\n\n\tpublic mapErr<F>(cb: (error: E) => F): ResultErr<F> {\n\t\treturn createErr(cb(this.error));\n\t}\n\n\tpublic mapErrInto<R extends Result<any, any>>(cb: (error: E) => R): R {\n\t\treturn cb(this.error);\n\t}\n\n\tpublic inspect(cb?: (value: never) => void): this;\n\tpublic inspect(): this {\n\t\treturn this;\n\t}\n\n\tpublic inspectAsync(cb?: (value: never) => Awaitable<unknown>): Promise<this>;\n\tpublic inspectAsync(): Promise<this> {\n\t\treturn Promise.resolve(this);\n\t}\n\n\tpublic inspectErr(cb: (error: E) => void): this {\n\t\tcb(this.error);\n\t\treturn this;\n\t}\n\n\tpublic async inspectErrAsync(cb: (error: E) => Awaitable<unknown>): Promise<this> {\n\t\tawait cb(this.error);\n\t\treturn this;\n\t}\n\n\tpublic *iter(): Generator<never> {\n\t\t// Yields no values\n\t}\n\n\tpublic expect(message: string): never {\n\t\tthrow new ResultError(message, this.error);\n\t}\n\n\tpublic expectErr(message?: string): E;\n\tpublic expectErr(): E {\n\t\treturn this.error;\n\t}\n\n\tpublic unwrap(): never {\n\t\tthrow new ResultError('Unwrap failed', this.error);\n\t}\n\n\tpublic unwrapErr(): E {\n\t\treturn this.error;\n\t}\n\n\tpublic unwrapOr<T>(defaultValue: T): T {\n\t\treturn defaultValue;\n\t}\n\n\tpublic unwrapOrElse<T>(op: (error: E) => T): T {\n\t\treturn op(this.error);\n\t}\n\n\tpublic unwrapRaw(): never {\n\t\t// eslint-disable-next-line @typescript-eslint/no-throw-literal\n\t\tthrow this.error;\n\t}\n\n\tpublic and(result?: Result<any, E>): this;\n\tpublic and(): this {\n\t\treturn this;\n\t}\n\n\tpublic andThen(cb?: (value: never) => Result<any, E>): this;\n\tpublic andThen(): this {\n\t\treturn this;\n\t}\n\n\tpublic or<R extends Result<any, any>>(result: R): R {\n\t\treturn result;\n\t}\n\n\tpublic orElse<R extends Result<any, any>>(cb: (error: E) => R): R {\n\t\treturn cb(this.error);\n\t}\n\n\tpublic contains(value?: any): false;\n\tpublic contains(): false {\n\t\treturn false;\n\t}\n\n\tpublic containsErr(error: E): boolean {\n\t\treturn this.error === error;\n\t}\n\n\tpublic transpose(): OptionSome<this> {\n\t\treturn createSome(this);\n\t}\n\n\tpublic flatten(): this {\n\t\treturn this;\n\t}\n\n\tpublic intoOkOrErr(): E {\n\t\treturn this.error;\n\t}\n\n\tpublic async intoPromise(): Promise<ResultErr<Awaited<E>>> {\n\t\treturn createErr(await this.error);\n\t}\n\n\tpublic eq(other: ResultOk<any>): false;\n\tpublic eq(other: Result<any, E>): boolean;\n\tpublic eq(other: Result<any, E>): boolean {\n\t\treturn other.isErrAnd((error) => this.error === error);\n\t}\n\n\tpublic ne(other: ResultOk<any>): true;\n\tpublic ne(other: Result<any, E>): boolean;\n\tpublic ne(other: Result<any, E>): boolean {\n\t\treturn !this.eq(other);\n\t}\n\n\tpublic match<OkValue, ErrValue>(branches: { ok(value: never): OkValue; err(error: E): ErrValue }): ErrValue {\n\t\treturn branches.err(this.error);\n\t}\n\n\tpublic *[Symbol.iterator](): Generator<never> {\n\t\t// Yields no values\n\t}\n}\n\n/**\n * Creates an Err with no error.\n * @return An erroneous Result.\n */\nexport function createErr(): ResultErr<unknown>;\n\n/**\n * Creates an Err.\n * @typeparam E The error's type.\n * @param x Value to use.\n * @return An erroneous Result.\n */\nexport function createErr<E>(x: E): ResultErr<E>;\nexport function createErr<E>(x?: E): ResultErr<unknown> {\n\treturn new ResultErr(x);\n}\n","export class OptionError extends Error {\n\tpublic override get name(): string {\n\t\treturn this.constructor.name;\n\t}\n}\n","import type { Awaitable } from '../common/utils';\nimport type { Option } from '../Option';\nimport { createErr, type ResultErr } from '../Result/Err';\nimport { createOk, type ResultOk } from '../Result/Ok';\nimport type { IOption } from './IOption';\nimport { OptionError } from './OptionError';\nimport type { OptionSome } from './Some';\n\nexport class OptionNone implements IOption<any> {\n\tpublic isSome(): false {\n\t\treturn false;\n\t}\n\n\tpublic isSomeAnd(cb?: (value: never) => boolean): false;\n\tpublic isSomeAnd(): false {\n\t\treturn false;\n\t}\n\n\tpublic isNone(): this is OptionNone {\n\t\treturn true;\n\t}\n\n\tpublic expect(message: string): never {\n\t\tthrow new OptionError(message);\n\t}\n\n\tpublic unwrap(): never {\n\t\tthrow new OptionError('Unwrap failed');\n\t}\n\n\tpublic unwrapOr<R>(defaultValue: R): R {\n\t\treturn defaultValue;\n\t}\n\n\tpublic unwrapOrElse<R>(cb: () => R): R {\n\t\treturn cb();\n\t}\n\n\tpublic map(cb: (value: never) => any): this;\n\tpublic map(): this {\n\t\treturn this;\n\t}\n\n\tpublic mapInto(cb: (value: never) => Option<any>): this;\n\tpublic mapInto(): this {\n\t\treturn this;\n\t}\n\n\tpublic mapOr<R>(defaultValue: R, cb?: (value: never) => R): R;\n\tpublic mapOr<R>(defaultValue: R): R {\n\t\treturn defaultValue;\n\t}\n\n\tpublic mapOrElse<R>(defaultValue: () => R, cb?: (value: never) => R): R;\n\tpublic mapOrElse<R>(defaultValue: () => R): R {\n\t\treturn defaultValue();\n\t}\n\n\tpublic mapNoneInto<R extends Option<any>>(cb: () => R): R {\n\t\treturn cb();\n\t}\n\n\tpublic inspect(cb?: (value: never) => void): this;\n\tpublic inspect(): this {\n\t\treturn this;\n\t}\n\n\tpublic inspectAsync(cb?: (value: never) => Awaitable<unknown>): Promise<this>;\n\tpublic inspectAsync(): Promise<this> {\n\t\treturn Promise.resolve(this);\n\t}\n\n\tpublic okOr<E>(error: E): ResultErr<E> {\n\t\treturn createErr(error);\n\t}\n\n\tpublic okOrElse<E>(cb: () => E): ResultErr<E> {\n\t\treturn createErr(cb());\n\t}\n\n\tpublic *iter(): Generator<never> {\n\t\t// Yields no values\n\t}\n\n\tpublic and(option: Option<any>): this;\n\tpublic and(): this {\n\t\treturn this;\n\t}\n\n\tpublic andThen(cb: (value: never) => Option<any>): this;\n\tpublic andThen(): this {\n\t\treturn this;\n\t}\n\n\tpublic or<R extends Option<any>>(option: R): R {\n\t\treturn option;\n\t}\n\n\tpublic orElse<R extends Option<any>>(cb: () => R): R {\n\t\treturn cb();\n\t}\n\n\tpublic xor<T>(option: OptionNone): OptionNone;\n\tpublic xor<T>(option: OptionSome<T>): OptionSome<T>;\n\tpublic xor<T>(option: Option<T>): OptionSome<T> | OptionNone;\n\tpublic xor<T>(option: OptionSome<T> | OptionNone): OptionSome<T> | OptionNone {\n\t\treturn option.isSome() ? option : this;\n\t}\n\n\tpublic filter(predicate: (value: never) => boolean): OptionNone;\n\tpublic filter(): OptionNone {\n\t\treturn this;\n\t}\n\n\tpublic contains(value?: any): false;\n\tpublic contains(): false {\n\t\treturn false;\n\t}\n\n\tpublic zip(other: Option<any>): OptionNone;\n\tpublic zip(): OptionNone {\n\t\treturn this;\n\t}\n\n\tpublic zipWith(other: Option<any>, f: (s: never, o: never) => any): OptionNone;\n\tpublic zipWith(): OptionNone {\n\t\treturn this;\n\t}\n\n\tpublic unzip(): [OptionNone, OptionNone] {\n\t\treturn [this, this];\n\t}\n\n\tpublic transpose(): ResultOk<OptionNone> {\n\t\treturn createOk(this);\n\t}\n\n\tpublic flatten(): OptionNone {\n\t\treturn this;\n\t}\n\n\tpublic intoPromise(): Promise<OptionNone> {\n\t\treturn Promise.resolve(createNone);\n\t}\n\n\tpublic eq(other: OptionNone): true;\n\tpublic eq(other: OptionSome<any>): false;\n\tpublic eq(other: Option<any>): boolean;\n\tpublic eq(other: Option<any>): boolean {\n\t\treturn other.isNone();\n\t}\n\n\tpublic ne(other: OptionNone): false;\n\tpublic ne(other: OptionSome<any>): true;\n\tpublic ne(other: Option<any>): boolean;\n\tpublic ne(other: Option<any>): boolean {\n\t\treturn other.isSome();\n\t}\n\n\tpublic match<SomeValue, NoneValue>(branches: { some(value: never): SomeValue; none(): NoneValue }): NoneValue {\n\t\treturn branches.none();\n\t}\n\n\tpublic *[Symbol.iterator](): Generator<never> {\n\t\t// Yields no values\n\t}\n}\n\nexport const createNone = new OptionNone();\n","import { isFunction, type Awaitable } from './common/utils';\nimport { createNone, OptionNone } from './Option/None';\nimport { createSome, OptionSome } from './Option/Some';\n\nexport type * from './Option/IOption';\nexport * from './Option/OptionError';\nexport { createSome as some, createNone as none, type OptionNone as None, type OptionSome as Some };\n\n/**\n * The union of the two variations of `Option`.\n * @typeparam T The value's type.\n */\nexport type Option<T> = Option.Some<T> | Option.None;\n\nexport namespace Option {\n\texport type Resolvable<T> = T | null | undefined | Option<T>;\n\tfunction resolve<T>(value: Resolvable<T>) {\n\t\tif (value === null || value === undefined) return none;\n\t\tif (is(value)) return value;\n\t\treturn some(value);\n\t}\n\n\texport function is<T>(value: Option<T>): true;\n\texport function is(value: any): value is Option<unknown>;\n\texport function is(value: any) {\n\t\treturn value instanceof OptionNone || value instanceof OptionSome;\n\t}\n\n\t/**\n\t * Creates an {@link Option} out of a value or callback.\n\t * @typeparam T The result's type.\n\t */\n\texport function from<T>(op: Resolvable<T> | (() => Resolvable<T>)): Option<T> {\n\t\tif (!isFunction(op)) return resolve(op);\n\n\t\ttry {\n\t\t\treturn resolve(op());\n\t\t} catch {\n\t\t\treturn none;\n\t\t}\n\t}\n\n\t/**\n\t * Creates an {@link Option} out of a value or callback.\n\t * @typeparam T The result's type.\n\t */\n\texport async function fromAsync<T>(op: Awaitable<Resolvable<T>> | (() => Awaitable<Resolvable<T>>)): Promise<Option<T>> {\n\t\ttry {\n\t\t\treturn resolve(await (isFunction(op) ? op() : op));\n\t\t} catch {\n\t\t\treturn none;\n\t\t}\n\t}\n\n\t/**\n\t * Creates a {@link Some} that is the combination of all collected {@link Some} values as an array, or the first\n\t * {@link None} encountered.\n\t * @param options An array of {@link Option}s.\n\t * @returns A new {@link Option}.\n\t */\n\texport function all<T extends readonly Option<any>[]>(options: [...T]): Option<UnwrapSomeArray<T>> {\n\t\tconst values: unknown[] = [];\n\t\tfor (const option of options) {\n\t\t\tif (option.isNone()) {\n\t\t\t\treturn option;\n\t\t\t}\n\n\t\t\tvalues.push(option.unwrap());\n\t\t}\n\n\t\treturn some(values as UnwrapSomeArray<T>);\n\t}\n\n\t/**\n\t * Returns the first encountered {@link Some}, or a {@link None} if none was found.\n\t * @param options An array of {@link Option}s.\n\t * @returns A new {@link Option}.\n\t */\n\texport function any<T extends readonly Option<any>[]>(options: [...T]): Option<UnwrapSomeArray<T>[number]> {\n\t\tfor (const result of options) {\n\t\t\tif (result.isSome()) {\n\t\t\t\treturn result;\n\t\t\t}\n\t\t}\n\n\t\treturn none;\n\t}\n\n\texport const none = createNone;\n\texport const some = createSome;\n\n\texport type Some<T> = OptionSome<T>;\n\texport type None = OptionNone;\n\n\texport type UnwrapSome<T extends Option<any>> = T extends Some<infer S> ? S : never;\n\texport type UnwrapSomeArray<T extends readonly Option<any>[] | []> = {\n\t\t-readonly [P in keyof T]: UnwrapSome<T[P]>;\n\t};\n}\n","import { isFunction, type Awaitable } from './common/utils';\nimport { createErr, ResultErr } from './Result/Err';\nimport { createOk, ResultOk } from './Result/Ok';\n\nexport type * from './Result/IResult';\nexport * from './Result/ResultError';\nexport { createOk as ok, createErr as err, type ResultOk as Ok, type ResultErr as Err };\n\n/**\n * The union of the two variations of `Result`.\n * @typeparam T The result's type.\n * @typeparam E The error's type.\n */\nexport type Result<T, E> = Result.Ok<T> | Result.Err<E>;\n\nexport namespace Result {\n\texport type Resolvable<T, E> = T | Result<T, E>;\n\tfunction resolve<T, E>(value: Resolvable<T, E>) {\n\t\tif (is(value)) return value;\n\t\treturn ok(value);\n\t}\n\n\texport function is<T, E>(value: Result<T, E>): true;\n\texport function is(value: any): value is Result<unknown, unknown>;\n\texport function is(value: any) {\n\t\treturn value instanceof ResultOk || value instanceof ResultErr;\n\t}\n\n\t/**\n\t * Creates a {@link Result} out of a callback.\n\t * @typeparam T The result's type.\n\t * @typeparam E The error's type.\n\t */\n\texport function from<T, E = unknown>(op: Resolvable<T, E> | (() => Resolvable<T, E>)): Result<T, E> {\n\t\tif (!isFunction(op)) return resolve(op);\n\n\t\ttry {\n\t\t\treturn resolve(op());\n\t\t} catch (error) {\n\t\t\treturn err(error as E);\n\t\t}\n\t}\n\n\t/**\n\t * Creates a {@link Result} out of a promise or async callback.\n\t * @typeparam T The result's type.\n\t * @typeparam E The error's type.\n\t */\n\texport async function fromAsync<T, E = unknown>(op: Awaitable<Resolvable<T, E>> | (() => Awaitable<Resolvable<T, E>>)): Promise<Result<T, E>> {\n\t\ttry {\n\t\t\treturn resolve(await (isFunction(op) ? op() : op));\n\t\t} catch (error) {\n\t\t\treturn err(error as E);\n\t\t}\n\t}\n\n\t/**\n\t * Creates an {@link Ok} that is the combination of all collected {@link Ok} values as an array, or the first\n\t * {@link Err} encountered.\n\t * @param results An array of {@link Result}s.\n\t * @returns A new {@link Result}.\n\t */\n\texport function all<T extends readonly Result<any, any>[]>(results: [...T]): Result<UnwrapOkArray<T>, UnwrapErrArray<T>[number]> {\n\t\tconst values: unknown[] = [];\n\t\tfor (const result of results) {\n\t\t\tif (result.isErr()) {\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\tvalues.push(result.unwrap());\n\t\t}\n\n\t\treturn ok(values as UnwrapOkArray<T>);\n\t}\n\n\t/**\n\t * Returns the first encountered {@link Ok}, or an {@link Err} that is the combination of all collected error values.\n\t * @param results An array of {@link Result}s.\n\t * @returns A new {@link Result}.\n\t */\n\texport function any<T extends readonly Result<any, any>[]>(results: [...T]): Result<UnwrapOkArray<T>[number], UnwrapErrArray<T>> {\n\t\tconst errors: unknown[] = [];\n\t\tfor (const result of results) {\n\t\t\tif (result.isOk()) {\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\terrors.push(result.unwrapErr());\n\t\t}\n\n\t\treturn err(errors as UnwrapErrArray<T>);\n\t}\n\n\texport const err = createErr;\n\texport const ok = createOk;\n\n\texport type Err<E> = ResultErr<E>;\n\texport type Ok<T> = ResultOk<T>;\n\n\texport type UnwrapOk<T extends Result<any, any>> = T extends Ok<infer S> ? S : never;\n\texport type UnwrapErr<T extends Result<any, any>> = T extends Err<infer S> ? S : never;\n\n\texport type UnwrapOkArray<T extends readonly Result<any, any>[] | []> = {\n\t\t-readonly [P in keyof T]: UnwrapOk<T[P]>;\n\t};\n\texport type UnwrapErrArray<T extends readonly Result<any, any>[] | []> = {\n\t\t-readonly [P in keyof T]: UnwrapErr<T[P]>;\n\t};\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/lib/common/utils.ts","../../src/lib/Result/ResultError.ts","../../src/lib/Result/Ok.ts","../../src/lib/Option/Some.ts","../../src/lib/Result/Err.ts","../../src/lib/Option/OptionError.ts","../../src/lib/Option/None.ts","../../src/lib/Option.ts","../../src/lib/Result.ts"],"names":["Option","Result"],"mappings":"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","file":"index.cjs","sourcesContent":["export type Awaitable<T> = PromiseLike<T> | T;\n\nexport function isFunction<A extends readonly any[], R>(cb: (...args: A) => R): true;\nexport function isFunction(input: any): input is (...args: readonly any[]) => any;\nexport function isFunction(input: any) {\n\treturn typeof input === 'function';\n}\n\nexport function isPromise<T>(input: PromiseLike<T>): true;\nexport function isPromise(input: any): input is PromiseLike<any>;\nexport function isPromise(input: any) {\n\treturn typeof input === 'object' && input !== null && typeof input.then === 'function';\n}\n","export class ResultError<E> extends Error {\n\tpublic readonly value: E;\n\n\tpublic constructor(message: string, value: E) {\n\t\tsuper(message);\n\t\tthis.value = value;\n\t}\n\n\tpublic override get name(): string {\n\t\treturn this.constructor.name;\n\t}\n}\n","import type { Awaitable } from '../common/utils';\nimport type { Option } from '../Option';\nimport { createNone, type OptionNone } from '../Option/None';\nimport { createSome, type OptionSome } from '../Option/Some';\nimport type { Result } from '../Result';\nimport type { ResultErr } from './Err';\nimport type { IResult } from './IResult';\nimport { ResultError } from './ResultError';\n\nexport class ResultOk<T> implements IResult<T, any> {\n\tprivate readonly value: T;\n\n\tpublic constructor(value: T) {\n\t\tthis.value = value;\n\t}\n\n\tpublic isOk(): this is ResultOk<T> {\n\t\treturn true;\n\t}\n\n\tpublic isOkAnd<R extends boolean>(cb: (value: T) => R): R {\n\t\treturn cb(this.value);\n\t}\n\n\tpublic isErr(): false {\n\t\treturn false;\n\t}\n\n\tpublic isErrAnd(cb?: (error: never) => boolean): false;\n\tpublic isErrAnd(): false {\n\t\treturn false;\n\t}\n\n\tpublic ok(): OptionSome<T> {\n\t\treturn createSome(this.value);\n\t}\n\n\tpublic err(): OptionNone {\n\t\treturn createNone;\n\t}\n\n\tpublic map<U>(cb: (value: T) => U): ResultOk<U> {\n\t\treturn createOk(cb(this.value));\n\t}\n\n\tpublic mapInto<R extends Result<any, any>>(cb: (value: T) => R): R {\n\t\treturn cb(this.value);\n\t}\n\n\tpublic mapOr<U>(_: U, cb: (value: T) => U): U {\n\t\treturn cb(this.value);\n\t}\n\n\tpublic mapOrElse<U>(_: (error: never) => U, cb: (value: T) => U): U {\n\t\treturn cb(this.value);\n\t}\n\n\tpublic mapErr(cb?: (error: never) => any): this;\n\tpublic mapErr(): this {\n\t\treturn this;\n\t}\n\n\tpublic mapErrInto(cb: (error: never) => Result<any, any>): this;\n\tpublic mapErrInto(): this {\n\t\treturn this;\n\t}\n\n\tpublic inspect(cb: (value: T) => void): this {\n\t\tcb(this.value);\n\t\treturn this;\n\t}\n\n\tpublic async inspectAsync(cb: (value: T) => Awaitable<unknown>): Promise<this> {\n\t\tawait cb(this.value);\n\t\treturn this;\n\t}\n\n\tpublic inspectErr(cb?: (error: never) => void): this;\n\tpublic inspectErr(): this {\n\t\treturn this;\n\t}\n\n\tpublic inspectErrAsync(cb?: (error: never) => Awaitable<unknown>): Promise<this>;\n\tpublic inspectErrAsync(): Promise<this> {\n\t\treturn Promise.resolve(this);\n\t}\n\n\tpublic *iter(): Generator<T> {\n\t\tyield this.value;\n\t}\n\n\tpublic expect(message?: string): T;\n\tpublic expect(): T {\n\t\treturn this.value;\n\t}\n\n\tpublic expectErr(message: string): never {\n\t\tthrow new ResultError(message, this.value);\n\t}\n\n\tpublic unwrap(): T {\n\t\treturn this.value;\n\t}\n\n\tpublic unwrapErr(): never {\n\t\tthrow new ResultError('Unwrap failed', this.value);\n\t}\n\n\tpublic unwrapOr(defaultValue: unknown): T;\n\tpublic unwrapOr(): T {\n\t\treturn this.value;\n\t}\n\n\tpublic unwrapOrElse(op: (error: any) => unknown): T;\n\tpublic unwrapOrElse(): T {\n\t\treturn this.value;\n\t}\n\n\tpublic unwrapRaw(): T {\n\t\treturn this.value;\n\t}\n\n\tpublic and<R extends Result<any, any>>(result: R): R {\n\t\treturn result;\n\t}\n\n\tpublic andThen<R extends Result<any, any>>(cb: (value: T) => R): R {\n\t\treturn cb(this.value);\n\t}\n\n\tpublic or(result: Result<T, any>): this;\n\tpublic or(): this {\n\t\treturn this;\n\t}\n\n\tpublic orElse(cb: (error: never) => Result<T, any>): this;\n\tpublic orElse(): this {\n\t\treturn this;\n\t}\n\n\tpublic contains(value: T): boolean {\n\t\treturn this.value === value;\n\t}\n\n\tpublic containsErr(error?: unknown): false;\n\tpublic containsErr(): false {\n\t\treturn false;\n\t}\n\n\tpublic transpose(this: ResultOk<OptionNone>): OptionNone;\n\tpublic transpose<Inner>(this: ResultOk<OptionSome<Inner>>): OptionSome<ResultOk<Inner>>;\n\tpublic transpose<Inner>(this: ResultOk<Option<Inner>>): Option<ResultOk<Inner>>;\n\tpublic transpose<IT>(this: ResultOk<Option<IT>>): Option<ResultOk<IT>> {\n\t\treturn this.value.match({\n\t\t\tsome: (value) => createSome(createOk(value)),\n\t\t\tnone: () => createNone\n\t\t});\n\t}\n\n\tpublic flatten<Inner extends Result<any, any>>(this: ResultOk<Inner>): Inner {\n\t\treturn this.value;\n\t}\n\n\tpublic intoOkOrErr() {\n\t\treturn this.value;\n\t}\n\n\tpublic async intoPromise(): Promise<ResultOk<Awaited<T>>> {\n\t\treturn createOk(await this.value);\n\t}\n\n\tpublic eq(other: ResultErr<any>): false;\n\tpublic eq(other: Result<T, any>): boolean;\n\tpublic eq(other: Result<T, any>): boolean {\n\t\treturn other.isOkAnd((value) => this.value === value);\n\t}\n\n\tpublic ne(other: ResultErr<any>): true;\n\tpublic ne(other: Result<T, any>): boolean;\n\tpublic ne(other: Result<T, any>): boolean {\n\t\treturn !this.eq(other);\n\t}\n\n\tpublic match<OkValue, ErrValue>(branches: { ok(value: T): OkValue; err(error: never): ErrValue }): OkValue {\n\t\treturn branches.ok(this.value);\n\t}\n\n\tpublic *[Symbol.iterator](): Generator<T> {\n\t\tyield this.value;\n\t}\n}\n\n/**\n * Creates an Ok with no value.\n * @return A successful Result.\n */\nexport function createOk(): ResultOk<unknown>;\n\n/**\n * Creates an Ok.\n * @typeparam T The result's type.\n * @param x Value to use.\n * @return A successful Result.\n */\nexport function createOk<T>(x: T): ResultOk<T>;\nexport function createOk<T>(x?: T): ResultOk<T | undefined> {\n\treturn new ResultOk(x);\n}\n","import type { Awaitable } from '../common/utils';\nimport type { Option } from '../Option';\nimport type { Result } from '../Result';\nimport { createErr, type ResultErr } from '../Result/Err';\nimport { createOk, type ResultOk } from '../Result/Ok';\nimport type { IOption } from './IOption';\nimport { createNone, type OptionNone } from './None';\n\nexport class OptionSome<T> implements IOption<T> {\n\tprivate readonly value: T;\n\n\tpublic constructor(value: T) {\n\t\tthis.value = value;\n\t}\n\n\tpublic isSome(): this is OptionSome<T> {\n\t\treturn true;\n\t}\n\n\tpublic isSomeAnd<R extends boolean>(cb: (value: T) => R): R {\n\t\treturn cb(this.value);\n\t}\n\n\tpublic isNone(): false {\n\t\treturn false;\n\t}\n\n\tpublic expect(message: string): T;\n\tpublic expect(): T {\n\t\treturn this.value;\n\t}\n\n\tpublic unwrap(): T {\n\t\treturn this.value;\n\t}\n\n\tpublic unwrapOr(defaultValue: unknown): T;\n\tpublic unwrapOr(): T {\n\t\treturn this.value;\n\t}\n\n\tpublic unwrapOrElse(cb: () => unknown): T;\n\tpublic unwrapOrElse(): T {\n\t\treturn this.value;\n\t}\n\n\tpublic map<U>(cb: (value: T) => U): OptionSome<U> {\n\t\treturn createSome(cb(this.value));\n\t}\n\n\tpublic mapInto<R extends Option<any>>(cb: (value: T) => R): R {\n\t\treturn cb(this.value);\n\t}\n\n\tpublic mapOr<U>(_: U, cb: (value: T) => U): U {\n\t\treturn cb(this.value);\n\t}\n\n\tpublic mapOrElse<U>(_: () => U, cb: (value: T) => U): U {\n\t\treturn cb(this.value);\n\t}\n\n\tpublic mapNoneInto(cb: () => Option<any>): this;\n\tpublic mapNoneInto(): this {\n\t\treturn this;\n\t}\n\n\tpublic inspect(cb: (value: T) => void): this {\n\t\tcb(this.value);\n\t\treturn this;\n\t}\n\n\tpublic async inspectAsync(cb: (value: T) => Awaitable<unknown>): Promise<this> {\n\t\tawait cb(this.value);\n\t\treturn this;\n\t}\n\n\tpublic okOr(err?: any): ResultOk<T>;\n\tpublic okOr(): ResultOk<T> {\n\t\treturn createOk(this.value);\n\t}\n\n\tpublic okOrElse(cb: () => any): ResultOk<T>;\n\tpublic okOrElse(): ResultOk<T> {\n\t\treturn createOk(this.value);\n\t}\n\n\tpublic *iter(): Generator<T> {\n\t\tyield this.value;\n\t}\n\n\tpublic and<R extends Option<any>>(option: R): R {\n\t\treturn option;\n\t}\n\n\tpublic andThen<R extends Option<any>>(cb: (value: T) => R): R {\n\t\treturn cb(this.value);\n\t}\n\n\tpublic or(option: Option<any>): this;\n\tpublic or(): this {\n\t\treturn this;\n\t}\n\n\tpublic orElse(cb?: () => Option<any>): this;\n\tpublic orElse(): this {\n\t\treturn this;\n\t}\n\n\tpublic xor(option: OptionSome<T>): OptionNone;\n\tpublic xor(option: OptionNone): this;\n\tpublic xor(option: Option<T>): this | OptionNone;\n\tpublic xor(option: Option<T>): this | OptionNone {\n\t\treturn option.isSome() ? createNone : this;\n\t}\n\n\tpublic filter(predicate: (value: T) => true): this;\n\tpublic filter(predicate: (value: T) => false): OptionNone;\n\tpublic filter(predicate: (value: T) => boolean): this | OptionNone;\n\tpublic filter(predicate: (value: T) => boolean): this | OptionNone {\n\t\treturn predicate(this.value) ? this : createNone;\n\t}\n\n\tpublic contains(value: T): boolean {\n\t\treturn this.value === value;\n\t}\n\n\tpublic zip(other: OptionNone): OptionNone;\n\tpublic zip<U>(other: OptionSome<U>): OptionSome<[T, U]>;\n\tpublic zip<U>(other: Option<U>): Option<[T, U]>;\n\tpublic zip<U>(other: Option<U>): Option<[T, U]> {\n\t\treturn other.map((o) => [this.value, o] as [T, U]);\n\t}\n\n\tpublic zipWith<U, R>(other: OptionNone, f: (s: T, o: U) => R): OptionNone;\n\tpublic zipWith<U, R>(other: OptionSome<U>, f: (s: T, o: U) => R): OptionSome<R>;\n\tpublic zipWith<U, R>(other: Option<U>, f: (s: T, o: U) => R): Option<R>;\n\tpublic zipWith<U, R>(other: Option<U>, f: (s: T, o: U) => R): Option<R> {\n\t\treturn other.map((o) => f(this.value, o));\n\t}\n\n\tpublic unzip<I, U>(this: OptionSome<readonly [I, U]>): [OptionSome<I>, OptionSome<U>] {\n\t\tconst [s, o] = this.value;\n\t\treturn [createSome(s), createSome(o)];\n\t}\n\n\tpublic transpose<Inner>(this: OptionSome<ResultOk<Inner>>): ResultOk<OptionSome<Inner>>;\n\tpublic transpose<Inner>(this: OptionSome<ResultErr<Inner>>): ResultErr<OptionSome<Inner>>;\n\tpublic transpose<IT, E>(this: OptionSome<Result<IT, E>>): Result<OptionSome<IT>, E>;\n\tpublic transpose<IT, E>(this: OptionSome<Result<IT, E>>): Result<OptionSome<IT>, E> {\n\t\treturn this.value.match({\n\t\t\tok: (v) => createOk(createSome(v)),\n\t\t\terr: (e) => createErr(e)\n\t\t});\n\t}\n\n\tpublic flatten<Inner extends Option<any>>(this: OptionSome<Inner>): Inner {\n\t\treturn this.value;\n\t}\n\n\tpublic async intoPromise(): Promise<OptionSome<Awaited<T>>> {\n\t\treturn createSome(await this.value);\n\t}\n\n\tpublic eq(other: OptionNone): false;\n\tpublic eq(other: Option<T>): boolean;\n\tpublic eq(other: Option<T>): boolean {\n\t\treturn other.isSomeAnd((value) => this.value === value);\n\t}\n\n\tpublic ne(other: OptionNone): true;\n\tpublic ne(other: Option<T>): boolean;\n\tpublic ne(other: Option<T>): boolean {\n\t\treturn !this.eq(other);\n\t}\n\n\tpublic match<SomeValue, NoneValue>(branches: { some(value: T): SomeValue; none(): NoneValue }): SomeValue {\n\t\treturn branches.some(this.value);\n\t}\n\n\tpublic *[Symbol.iterator](): Generator<T> {\n\t\tyield this.value;\n\t}\n}\n\nexport function createSome<T>(value: T): OptionSome<T> {\n\treturn new OptionSome<T>(value);\n}\n","import type { Awaitable } from '../common/utils';\nimport { createNone, type OptionNone } from '../Option/None';\nimport { createSome, type OptionSome } from '../Option/Some';\nimport type { Result } from '../Result';\nimport type { IResult } from './IResult';\nimport type { ResultOk } from './Ok';\nimport { ResultError } from './ResultError';\n\nexport class ResultErr<E> implements IResult<any, E> {\n\tprivate readonly error: E;\n\n\tpublic constructor(error: E) {\n\t\tthis.error = error;\n\t}\n\n\tpublic isOk(): false {\n\t\treturn false;\n\t}\n\n\tpublic isOkAnd(cb?: (value: never) => boolean): false;\n\tpublic isOkAnd(): false {\n\t\treturn false;\n\t}\n\n\tpublic isErr(): this is ResultErr<E> {\n\t\treturn true;\n\t}\n\n\tpublic isErrAnd(cb: (error: E) => boolean): boolean {\n\t\treturn cb(this.error);\n\t}\n\n\tpublic ok(): OptionNone {\n\t\treturn createNone;\n\t}\n\n\tpublic err(): OptionSome<E> {\n\t\treturn createSome(this.error);\n\t}\n\n\tpublic map(cb?: (value: never) => unknown): this;\n\tpublic map(): this {\n\t\treturn this;\n\t}\n\n\tpublic mapInto(cb: (value: never) => Result<any, any>): this;\n\tpublic mapInto(): this {\n\t\treturn this;\n\t}\n\n\tpublic mapOr<U>(defaultValue: U, cb?: (value: never) => U): U;\n\tpublic mapOr<U>(defaultValue: U): U {\n\t\treturn defaultValue;\n\t}\n\n\tpublic mapOrElse<U>(op: (error: E) => U, cb?: (value: never) => U): U;\n\tpublic mapOrElse<U>(op: (error: E) => U): U {\n\t\treturn op(this.error);\n\t}\n\n\tpublic mapErr<F>(cb: (error: E) => F): ResultErr<F> {\n\t\treturn createErr(cb(this.error));\n\t}\n\n\tpublic mapErrInto<R extends Result<any, any>>(cb: (error: E) => R): R {\n\t\treturn cb(this.error);\n\t}\n\n\tpublic inspect(cb?: (value: never) => void): this;\n\tpublic inspect(): this {\n\t\treturn this;\n\t}\n\n\tpublic inspectAsync(cb?: (value: never) => Awaitable<unknown>): Promise<this>;\n\tpublic inspectAsync(): Promise<this> {\n\t\treturn Promise.resolve(this);\n\t}\n\n\tpublic inspectErr(cb: (error: E) => void): this {\n\t\tcb(this.error);\n\t\treturn this;\n\t}\n\n\tpublic async inspectErrAsync(cb: (error: E) => Awaitable<unknown>): Promise<this> {\n\t\tawait cb(this.error);\n\t\treturn this;\n\t}\n\n\tpublic *iter(): Generator<never> {\n\t\t// Yields no values\n\t}\n\n\tpublic expect(message: string): never {\n\t\tthrow new ResultError(message, this.error);\n\t}\n\n\tpublic expectErr(message?: string): E;\n\tpublic expectErr(): E {\n\t\treturn this.error;\n\t}\n\n\tpublic unwrap(): never {\n\t\tthrow new ResultError('Unwrap failed', this.error);\n\t}\n\n\tpublic unwrapErr(): E {\n\t\treturn this.error;\n\t}\n\n\tpublic unwrapOr<T>(defaultValue: T): T {\n\t\treturn defaultValue;\n\t}\n\n\tpublic unwrapOrElse<T>(op: (error: E) => T): T {\n\t\treturn op(this.error);\n\t}\n\n\tpublic unwrapRaw(): never {\n\t\t// eslint-disable-next-line @typescript-eslint/no-throw-literal\n\t\tthrow this.error;\n\t}\n\n\tpublic and(result?: Result<any, E>): this;\n\tpublic and(): this {\n\t\treturn this;\n\t}\n\n\tpublic andThen(cb?: (value: never) => Result<any, E>): this;\n\tpublic andThen(): this {\n\t\treturn this;\n\t}\n\n\tpublic or<R extends Result<any, any>>(result: R): R {\n\t\treturn result;\n\t}\n\n\tpublic orElse<R extends Result<any, any>>(cb: (error: E) => R): R {\n\t\treturn cb(this.error);\n\t}\n\n\tpublic contains(value?: any): false;\n\tpublic contains(): false {\n\t\treturn false;\n\t}\n\n\tpublic containsErr(error: E): boolean {\n\t\treturn this.error === error;\n\t}\n\n\tpublic transpose(): OptionSome<this> {\n\t\treturn createSome(this);\n\t}\n\n\tpublic flatten(): this {\n\t\treturn this;\n\t}\n\n\tpublic intoOkOrErr(): E {\n\t\treturn this.error;\n\t}\n\n\tpublic async intoPromise(): Promise<ResultErr<Awaited<E>>> {\n\t\treturn createErr(await this.error);\n\t}\n\n\tpublic eq(other: ResultOk<any>): false;\n\tpublic eq(other: Result<any, E>): boolean;\n\tpublic eq(other: Result<any, E>): boolean {\n\t\treturn other.isErrAnd((error) => this.error === error);\n\t}\n\n\tpublic ne(other: ResultOk<any>): true;\n\tpublic ne(other: Result<any, E>): boolean;\n\tpublic ne(other: Result<any, E>): boolean {\n\t\treturn !this.eq(other);\n\t}\n\n\tpublic match<OkValue, ErrValue>(branches: { ok(value: never): OkValue; err(error: E): ErrValue }): ErrValue {\n\t\treturn branches.err(this.error);\n\t}\n\n\tpublic *[Symbol.iterator](): Generator<never> {\n\t\t// Yields no values\n\t}\n}\n\n/**\n * Creates an Err with no error.\n * @return An erroneous Result.\n */\nexport function createErr(): ResultErr<unknown>;\n\n/**\n * Creates an Err.\n * @typeparam E The error's type.\n * @param x Value to use.\n * @return An erroneous Result.\n */\nexport function createErr<E>(x: E): ResultErr<E>;\nexport function createErr<E>(x?: E): ResultErr<unknown> {\n\treturn new ResultErr(x);\n}\n","export class OptionError extends Error {\n\tpublic override get name(): string {\n\t\treturn this.constructor.name;\n\t}\n}\n","import type { Awaitable } from '../common/utils';\nimport type { Option } from '../Option';\nimport { createErr, type ResultErr } from '../Result/Err';\nimport { createOk, type ResultOk } from '../Result/Ok';\nimport type { IOption } from './IOption';\nimport { OptionError } from './OptionError';\nimport type { OptionSome } from './Some';\n\nexport class OptionNone implements IOption<any> {\n\tpublic isSome(): false {\n\t\treturn false;\n\t}\n\n\tpublic isSomeAnd(cb?: (value: never) => boolean): false;\n\tpublic isSomeAnd(): false {\n\t\treturn false;\n\t}\n\n\tpublic isNone(): this is OptionNone {\n\t\treturn true;\n\t}\n\n\tpublic expect(message: string): never {\n\t\tthrow new OptionError(message);\n\t}\n\n\tpublic unwrap(): never {\n\t\tthrow new OptionError('Unwrap failed');\n\t}\n\n\tpublic unwrapOr<R>(defaultValue: R): R {\n\t\treturn defaultValue;\n\t}\n\n\tpublic unwrapOrElse<R>(cb: () => R): R {\n\t\treturn cb();\n\t}\n\n\tpublic map(cb: (value: never) => any): this;\n\tpublic map(): this {\n\t\treturn this;\n\t}\n\n\tpublic mapInto(cb: (value: never) => Option<any>): this;\n\tpublic mapInto(): this {\n\t\treturn this;\n\t}\n\n\tpublic mapOr<R>(defaultValue: R, cb?: (value: never) => R): R;\n\tpublic mapOr<R>(defaultValue: R): R {\n\t\treturn defaultValue;\n\t}\n\n\tpublic mapOrElse<R>(defaultValue: () => R, cb?: (value: never) => R): R;\n\tpublic mapOrElse<R>(defaultValue: () => R): R {\n\t\treturn defaultValue();\n\t}\n\n\tpublic mapNoneInto<R extends Option<any>>(cb: () => R): R {\n\t\treturn cb();\n\t}\n\n\tpublic inspect(cb?: (value: never) => void): this;\n\tpublic inspect(): this {\n\t\treturn this;\n\t}\n\n\tpublic inspectAsync(cb?: (value: never) => Awaitable<unknown>): Promise<this>;\n\tpublic inspectAsync(): Promise<this> {\n\t\treturn Promise.resolve(this);\n\t}\n\n\tpublic okOr<E>(error: E): ResultErr<E> {\n\t\treturn createErr(error);\n\t}\n\n\tpublic okOrElse<E>(cb: () => E): ResultErr<E> {\n\t\treturn createErr(cb());\n\t}\n\n\tpublic *iter(): Generator<never> {\n\t\t// Yields no values\n\t}\n\n\tpublic and(option: Option<any>): this;\n\tpublic and(): this {\n\t\treturn this;\n\t}\n\n\tpublic andThen(cb: (value: never) => Option<any>): this;\n\tpublic andThen(): this {\n\t\treturn this;\n\t}\n\n\tpublic or<R extends Option<any>>(option: R): R {\n\t\treturn option;\n\t}\n\n\tpublic orElse<R extends Option<any>>(cb: () => R): R {\n\t\treturn cb();\n\t}\n\n\tpublic xor<T>(option: OptionNone): OptionNone;\n\tpublic xor<T>(option: OptionSome<T>): OptionSome<T>;\n\tpublic xor<T>(option: Option<T>): OptionSome<T> | OptionNone;\n\tpublic xor<T>(option: OptionSome<T> | OptionNone): OptionSome<T> | OptionNone {\n\t\treturn option.isSome() ? option : this;\n\t}\n\n\tpublic filter(predicate: (value: never) => boolean): OptionNone;\n\tpublic filter(): OptionNone {\n\t\treturn this;\n\t}\n\n\tpublic contains(value?: any): false;\n\tpublic contains(): false {\n\t\treturn false;\n\t}\n\n\tpublic zip(other: Option<any>): OptionNone;\n\tpublic zip(): OptionNone {\n\t\treturn this;\n\t}\n\n\tpublic zipWith(other: Option<any>, f: (s: never, o: never) => any): OptionNone;\n\tpublic zipWith(): OptionNone {\n\t\treturn this;\n\t}\n\n\tpublic unzip(): [OptionNone, OptionNone] {\n\t\treturn [this, this];\n\t}\n\n\tpublic transpose(): ResultOk<OptionNone> {\n\t\treturn createOk(this);\n\t}\n\n\tpublic flatten(): OptionNone {\n\t\treturn this;\n\t}\n\n\tpublic intoPromise(): Promise<OptionNone> {\n\t\treturn Promise.resolve(createNone);\n\t}\n\n\tpublic eq(other: OptionNone): true;\n\tpublic eq(other: OptionSome<any>): false;\n\tpublic eq(other: Option<any>): boolean;\n\tpublic eq(other: Option<any>): boolean {\n\t\treturn other.isNone();\n\t}\n\n\tpublic ne(other: OptionNone): false;\n\tpublic ne(other: OptionSome<any>): true;\n\tpublic ne(other: Option<any>): boolean;\n\tpublic ne(other: Option<any>): boolean {\n\t\treturn other.isSome();\n\t}\n\n\tpublic match<SomeValue, NoneValue>(branches: { some(value: never): SomeValue; none(): NoneValue }): NoneValue {\n\t\treturn branches.none();\n\t}\n\n\tpublic *[Symbol.iterator](): Generator<never> {\n\t\t// Yields no values\n\t}\n}\n\nexport const createNone = new OptionNone();\n","import { isFunction, type Awaitable } from './common/utils';\nimport { createNone, OptionNone } from './Option/None';\nimport { createSome, OptionSome } from './Option/Some';\n\nexport type * from './Option/IOption';\nexport * from './Option/OptionError';\nexport { createSome as some, createNone as none, type OptionNone as None, type OptionSome as Some };\n\n/**\n * The union of the two variations of `Option`.\n * @typeparam T The value's type.\n */\nexport type Option<T> = Option.Some<T> | Option.None;\n\nexport namespace Option {\n\texport type Resolvable<T> = T | null | undefined | Option<T>;\n\tfunction resolve<T>(value: Resolvable<T>) {\n\t\tif (value === null || value === undefined) return none;\n\t\tif (is(value)) return value;\n\t\treturn some(value);\n\t}\n\n\texport function is<T>(value: Option<T>): true;\n\texport function is(value: any): value is Option<unknown>;\n\texport function is(value: any) {\n\t\treturn value instanceof OptionNone || value instanceof OptionSome;\n\t}\n\n\t/**\n\t * Creates an {@link Option} out of a value or callback.\n\t * @typeparam T The result's type.\n\t */\n\texport function from<T>(op: Resolvable<T> | (() => Resolvable<T>)): Option<T> {\n\t\tif (!isFunction(op)) return resolve(op);\n\n\t\ttry {\n\t\t\treturn resolve(op());\n\t\t} catch {\n\t\t\treturn none;\n\t\t}\n\t}\n\n\t/**\n\t * Creates an {@link Option} out of a value or callback.\n\t * @typeparam T The result's type.\n\t */\n\texport async function fromAsync<T>(op: Awaitable<Resolvable<T>> | (() => Awaitable<Resolvable<T>>)): Promise<Option<T>> {\n\t\ttry {\n\t\t\treturn resolve(await (isFunction(op) ? op() : op));\n\t\t} catch {\n\t\t\treturn none;\n\t\t}\n\t}\n\n\t/**\n\t * Creates a {@link Some} that is the combination of all collected {@link Some} values as an array, or the first\n\t * {@link None} encountered.\n\t * @param options An array of {@link Option}s.\n\t * @returns A new {@link Option}.\n\t */\n\texport function all<T extends readonly Option<any>[]>(options: [...T]): Option<UnwrapSomeArray<T>> {\n\t\tconst values: unknown[] = [];\n\t\tfor (const option of options) {\n\t\t\tif (option.isNone()) {\n\t\t\t\treturn option;\n\t\t\t}\n\n\t\t\tvalues.push(option.unwrap());\n\t\t}\n\n\t\treturn some(values as UnwrapSomeArray<T>);\n\t}\n\n\t/**\n\t * Returns the first encountered {@link Some}, or a {@link None} if none was found.\n\t * @param options An array of {@link Option}s.\n\t * @returns A new {@link Option}.\n\t */\n\texport function any<T extends readonly Option<any>[]>(options: [...T]): Option<UnwrapSomeArray<T>[number]> {\n\t\tfor (const result of options) {\n\t\t\tif (result.isSome()) {\n\t\t\t\treturn result;\n\t\t\t}\n\t\t}\n\n\t\treturn none;\n\t}\n\n\texport const none = createNone;\n\texport const some = createSome;\n\n\texport type Some<T> = OptionSome<T>;\n\texport type None = OptionNone;\n\n\texport type UnwrapSome<T extends Option<any>> = T extends Some<infer S> ? S : never;\n\texport type UnwrapSomeArray<T extends readonly Option<any>[] | []> = {\n\t\t-readonly [P in keyof T]: UnwrapSome<T[P]>;\n\t};\n}\n","import { isFunction, type Awaitable } from './common/utils';\nimport { createErr, ResultErr } from './Result/Err';\nimport { createOk, ResultOk } from './Result/Ok';\n\nexport type * from './Result/IResult';\nexport * from './Result/ResultError';\nexport { createOk as ok, createErr as err, type ResultOk as Ok, type ResultErr as Err };\n\n/**\n * The union of the two variations of `Result`.\n * @typeparam T The result's type.\n * @typeparam E The error's type.\n */\nexport type Result<T, E> = Result.Ok<T> | Result.Err<E>;\n\nexport namespace Result {\n\texport type Resolvable<T, E> = T | Result<T, E>;\n\tfunction resolve<T, E>(value: Resolvable<T, E>) {\n\t\tif (is(value)) return value;\n\t\treturn ok(value);\n\t}\n\n\texport function is<T, E>(value: Result<T, E>): true;\n\texport function is(value: any): value is Result<unknown, unknown>;\n\texport function is(value: any) {\n\t\treturn value instanceof ResultOk || value instanceof ResultErr;\n\t}\n\n\t/**\n\t * Creates a {@link Result} out of a callback.\n\t * @typeparam T The result's type.\n\t * @typeparam E The error's type.\n\t */\n\texport function from<T, E = unknown>(op: Resolvable<T, E> | (() => Resolvable<T, E>)): Result<T, E> {\n\t\tif (!isFunction(op)) return resolve(op);\n\n\t\ttry {\n\t\t\treturn resolve(op());\n\t\t} catch (error) {\n\t\t\treturn err(error as E);\n\t\t}\n\t}\n\n\t/**\n\t * Creates a {@link Result} out of a promise or async callback.\n\t * @typeparam T The result's type.\n\t * @typeparam E The error's type.\n\t */\n\texport async function fromAsync<T, E = unknown>(op: Awaitable<Resolvable<T, E>> | (() => Awaitable<Resolvable<T, E>>)): Promise<Result<T, E>> {\n\t\ttry {\n\t\t\treturn resolve(await (isFunction(op) ? op() : op));\n\t\t} catch (error) {\n\t\t\treturn err(error as E);\n\t\t}\n\t}\n\n\t/**\n\t * Creates an {@link Ok} that is the combination of all collected {@link Ok} values as an array, or the first\n\t * {@link Err} encountered.\n\t * @param results An array of {@link Result}s.\n\t * @returns A new {@link Result}.\n\t */\n\texport function all<T extends readonly Result<any, any>[]>(results: [...T]): Result<UnwrapOkArray<T>, UnwrapErrArray<T>[number]> {\n\t\tconst values: unknown[] = [];\n\t\tfor (const result of results) {\n\t\t\tif (result.isErr()) {\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\tvalues.push(result.unwrap());\n\t\t}\n\n\t\treturn ok(values as UnwrapOkArray<T>);\n\t}\n\n\t/**\n\t * Returns the first encountered {@link Ok}, or an {@link Err} that is the combination of all collected error values.\n\t * @param results An array of {@link Result}s.\n\t * @returns A new {@link Result}.\n\t */\n\texport function any<T extends readonly Result<any, any>[]>(results: [...T]): Result<UnwrapOkArray<T>[number], UnwrapErrArray<T>> {\n\t\tconst errors: unknown[] = [];\n\t\tfor (const result of results) {\n\t\t\tif (result.isOk()) {\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\terrors.push(result.unwrapErr());\n\t\t}\n\n\t\treturn err(errors as UnwrapErrArray<T>);\n\t}\n\n\texport const err = createErr;\n\texport const ok = createOk;\n\n\texport type Err<E> = ResultErr<E>;\n\texport type Ok<T> = ResultOk<T>;\n\n\texport type UnwrapOk<T extends Result<any, any>> = T extends Ok<infer S> ? S : never;\n\texport type UnwrapErr<T extends Result<any, any>> = T extends Err<infer S> ? S : never;\n\n\texport type UnwrapOkArray<T extends readonly Result<any, any>[] | []> = {\n\t\t-readonly [P in keyof T]: UnwrapOk<T[P]>;\n\t};\n\texport type UnwrapErrArray<T extends readonly Result<any, any>[] | []> = {\n\t\t-readonly [P in keyof T]: UnwrapErr<T[P]>;\n\t};\n}\n"]}
|
package/dist/esm/index.mjs
CHANGED
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
var __defProp = Object.defineProperty;
|
|
2
2
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
3
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
4
|
-
var __publicField = (obj, key, value) =>
|
|
5
|
-
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
6
|
-
return value;
|
|
7
|
-
};
|
|
4
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
8
5
|
|
|
9
6
|
// src/lib/common/utils.ts
|
|
10
7
|
function isFunction(input) {
|
|
@@ -126,8 +123,8 @@ var _ResultOk = class _ResultOk {
|
|
|
126
123
|
}
|
|
127
124
|
transpose() {
|
|
128
125
|
return this.value.match({
|
|
129
|
-
some: (value) => createSome(createOk(value)),
|
|
130
|
-
none: () => createNone
|
|
126
|
+
some: /* @__PURE__ */ __name((value) => createSome(createOk(value)), "some"),
|
|
127
|
+
none: /* @__PURE__ */ __name(() => createNone, "none")
|
|
131
128
|
});
|
|
132
129
|
}
|
|
133
130
|
flatten() {
|
|
@@ -251,8 +248,8 @@ var _OptionSome = class _OptionSome {
|
|
|
251
248
|
}
|
|
252
249
|
transpose() {
|
|
253
250
|
return this.value.match({
|
|
254
|
-
ok: (v) => createOk(createSome(v)),
|
|
255
|
-
err: (e) => createErr(e)
|
|
251
|
+
ok: /* @__PURE__ */ __name((v) => createOk(createSome(v)), "ok"),
|
|
252
|
+
err: /* @__PURE__ */ __name((e) => createErr(e), "err")
|
|
256
253
|
});
|
|
257
254
|
}
|
|
258
255
|
flatten() {
|
|
@@ -529,10 +526,8 @@ var createNone = new OptionNone();
|
|
|
529
526
|
var Option;
|
|
530
527
|
((Option2) => {
|
|
531
528
|
function resolve(value) {
|
|
532
|
-
if (value === null || value === void 0)
|
|
533
|
-
|
|
534
|
-
if (is(value))
|
|
535
|
-
return value;
|
|
529
|
+
if (value === null || value === void 0) return Option2.none;
|
|
530
|
+
if (is(value)) return value;
|
|
536
531
|
return (0, Option2.some)(value);
|
|
537
532
|
}
|
|
538
533
|
__name(resolve, "resolve");
|
|
@@ -542,8 +537,7 @@ var Option;
|
|
|
542
537
|
Option2.is = is;
|
|
543
538
|
__name(is, "is");
|
|
544
539
|
function from(op) {
|
|
545
|
-
if (!isFunction(op))
|
|
546
|
-
return resolve(op);
|
|
540
|
+
if (!isFunction(op)) return resolve(op);
|
|
547
541
|
try {
|
|
548
542
|
return resolve(op());
|
|
549
543
|
} catch {
|
|
@@ -591,8 +585,7 @@ var Option;
|
|
|
591
585
|
var Result;
|
|
592
586
|
((Result2) => {
|
|
593
587
|
function resolve(value) {
|
|
594
|
-
if (is(value))
|
|
595
|
-
return value;
|
|
588
|
+
if (is(value)) return value;
|
|
596
589
|
return (0, Result2.ok)(value);
|
|
597
590
|
}
|
|
598
591
|
__name(resolve, "resolve");
|
|
@@ -602,8 +595,7 @@ var Result;
|
|
|
602
595
|
Result2.is = is;
|
|
603
596
|
__name(is, "is");
|
|
604
597
|
function from(op) {
|
|
605
|
-
if (!isFunction(op))
|
|
606
|
-
return resolve(op);
|
|
598
|
+
if (!isFunction(op)) return resolve(op);
|
|
607
599
|
try {
|
|
608
600
|
return resolve(op());
|
|
609
601
|
} catch (error) {
|
|
@@ -650,5 +642,5 @@ var Result;
|
|
|
650
642
|
})(Result || (Result = {}));
|
|
651
643
|
|
|
652
644
|
export { Option, OptionError, Result, ResultError, createErr as err, createNone as none, createOk as ok, createSome as some };
|
|
653
|
-
//# sourceMappingURL=
|
|
645
|
+
//# sourceMappingURL=index.mjs.map
|
|
654
646
|
//# sourceMappingURL=index.mjs.map
|
package/dist/esm/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/lib/common/utils.ts","../../src/lib/Result/ResultError.ts","../../src/lib/Result/Ok.ts","../../src/lib/Option/Some.ts","../../src/lib/Result/Err.ts","../../src/lib/Option/OptionError.ts","../../src/lib/Option/None.ts","../../src/lib/Option.ts","../../src/lib/Result.ts"],"names":["Option","Result"],"mappings":"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","sourcesContent":["export type Awaitable<T> = PromiseLike<T> | T;\n\nexport function isFunction<A extends readonly any[], R>(cb: (...args: A) => R): true;\nexport function isFunction(input: any): input is (...args: readonly any[]) => any;\nexport function isFunction(input: any) {\n\treturn typeof input === 'function';\n}\n\nexport function isPromise<T>(input: PromiseLike<T>): true;\nexport function isPromise(input: any): input is PromiseLike<any>;\nexport function isPromise(input: any) {\n\treturn typeof input === 'object' && input !== null && typeof input.then === 'function';\n}\n","export class ResultError<E> extends Error {\n\tpublic readonly value: E;\n\n\tpublic constructor(message: string, value: E) {\n\t\tsuper(message);\n\t\tthis.value = value;\n\t}\n\n\tpublic override get name(): string {\n\t\treturn this.constructor.name;\n\t}\n}\n","import type { Awaitable } from '../common/utils';\nimport type { Option } from '../Option';\nimport { createNone, type OptionNone } from '../Option/None';\nimport { createSome, type OptionSome } from '../Option/Some';\nimport type { Result } from '../Result';\nimport type { ResultErr } from './Err';\nimport type { IResult } from './IResult';\nimport { ResultError } from './ResultError';\n\nexport class ResultOk<T> implements IResult<T, any> {\n\tprivate readonly value: T;\n\n\tpublic constructor(value: T) {\n\t\tthis.value = value;\n\t}\n\n\tpublic isOk(): this is ResultOk<T> {\n\t\treturn true;\n\t}\n\n\tpublic isOkAnd<R extends boolean>(cb: (value: T) => R): R {\n\t\treturn cb(this.value);\n\t}\n\n\tpublic isErr(): false {\n\t\treturn false;\n\t}\n\n\tpublic isErrAnd(cb?: (error: never) => boolean): false;\n\tpublic isErrAnd(): false {\n\t\treturn false;\n\t}\n\n\tpublic ok(): OptionSome<T> {\n\t\treturn createSome(this.value);\n\t}\n\n\tpublic err(): OptionNone {\n\t\treturn createNone;\n\t}\n\n\tpublic map<U>(cb: (value: T) => U): ResultOk<U> {\n\t\treturn createOk(cb(this.value));\n\t}\n\n\tpublic mapInto<R extends Result<any, any>>(cb: (value: T) => R): R {\n\t\treturn cb(this.value);\n\t}\n\n\tpublic mapOr<U>(_: U, cb: (value: T) => U): U {\n\t\treturn cb(this.value);\n\t}\n\n\tpublic mapOrElse<U>(_: (error: never) => U, cb: (value: T) => U): U {\n\t\treturn cb(this.value);\n\t}\n\n\tpublic mapErr(cb?: (error: never) => any): this;\n\tpublic mapErr(): this {\n\t\treturn this;\n\t}\n\n\tpublic mapErrInto(cb: (error: never) => Result<any, any>): this;\n\tpublic mapErrInto(): this {\n\t\treturn this;\n\t}\n\n\tpublic inspect(cb: (value: T) => void): this {\n\t\tcb(this.value);\n\t\treturn this;\n\t}\n\n\tpublic async inspectAsync(cb: (value: T) => Awaitable<unknown>): Promise<this> {\n\t\tawait cb(this.value);\n\t\treturn this;\n\t}\n\n\tpublic inspectErr(cb?: (error: never) => void): this;\n\tpublic inspectErr(): this {\n\t\treturn this;\n\t}\n\n\tpublic inspectErrAsync(cb?: (error: never) => Awaitable<unknown>): Promise<this>;\n\tpublic inspectErrAsync(): Promise<this> {\n\t\treturn Promise.resolve(this);\n\t}\n\n\tpublic *iter(): Generator<T> {\n\t\tyield this.value;\n\t}\n\n\tpublic expect(message?: string): T;\n\tpublic expect(): T {\n\t\treturn this.value;\n\t}\n\n\tpublic expectErr(message: string): never {\n\t\tthrow new ResultError(message, this.value);\n\t}\n\n\tpublic unwrap(): T {\n\t\treturn this.value;\n\t}\n\n\tpublic unwrapErr(): never {\n\t\tthrow new ResultError('Unwrap failed', this.value);\n\t}\n\n\tpublic unwrapOr(defaultValue: unknown): T;\n\tpublic unwrapOr(): T {\n\t\treturn this.value;\n\t}\n\n\tpublic unwrapOrElse(op: (error: any) => unknown): T;\n\tpublic unwrapOrElse(): T {\n\t\treturn this.value;\n\t}\n\n\tpublic unwrapRaw(): T {\n\t\treturn this.value;\n\t}\n\n\tpublic and<R extends Result<any, any>>(result: R): R {\n\t\treturn result;\n\t}\n\n\tpublic andThen<R extends Result<any, any>>(cb: (value: T) => R): R {\n\t\treturn cb(this.value);\n\t}\n\n\tpublic or(result: Result<T, any>): this;\n\tpublic or(): this {\n\t\treturn this;\n\t}\n\n\tpublic orElse(cb: (error: never) => Result<T, any>): this;\n\tpublic orElse(): this {\n\t\treturn this;\n\t}\n\n\tpublic contains(value: T): boolean {\n\t\treturn this.value === value;\n\t}\n\n\tpublic containsErr(error?: unknown): false;\n\tpublic containsErr(): false {\n\t\treturn false;\n\t}\n\n\tpublic transpose(this: ResultOk<OptionNone>): OptionNone;\n\tpublic transpose<Inner>(this: ResultOk<OptionSome<Inner>>): OptionSome<ResultOk<Inner>>;\n\tpublic transpose<Inner>(this: ResultOk<Option<Inner>>): Option<ResultOk<Inner>>;\n\tpublic transpose<IT>(this: ResultOk<Option<IT>>): Option<ResultOk<IT>> {\n\t\treturn this.value.match({\n\t\t\tsome: (value) => createSome(createOk(value)),\n\t\t\tnone: () => createNone\n\t\t});\n\t}\n\n\tpublic flatten<Inner extends Result<any, any>>(this: ResultOk<Inner>): Inner {\n\t\treturn this.value;\n\t}\n\n\tpublic intoOkOrErr() {\n\t\treturn this.value;\n\t}\n\n\tpublic async intoPromise(): Promise<ResultOk<Awaited<T>>> {\n\t\treturn createOk(await this.value);\n\t}\n\n\tpublic eq(other: ResultErr<any>): false;\n\tpublic eq(other: Result<T, any>): boolean;\n\tpublic eq(other: Result<T, any>): boolean {\n\t\treturn other.isOkAnd((value) => this.value === value);\n\t}\n\n\tpublic ne(other: ResultErr<any>): true;\n\tpublic ne(other: Result<T, any>): boolean;\n\tpublic ne(other: Result<T, any>): boolean {\n\t\treturn !this.eq(other);\n\t}\n\n\tpublic match<OkValue, ErrValue>(branches: { ok(value: T): OkValue; err(error: never): ErrValue }): OkValue {\n\t\treturn branches.ok(this.value);\n\t}\n\n\tpublic *[Symbol.iterator](): Generator<T> {\n\t\tyield this.value;\n\t}\n}\n\n/**\n * Creates an Ok with no value.\n * @return A successful Result.\n */\nexport function createOk(): ResultOk<unknown>;\n\n/**\n * Creates an Ok.\n * @typeparam T The result's type.\n * @param x Value to use.\n * @return A successful Result.\n */\nexport function createOk<T>(x: T): ResultOk<T>;\nexport function createOk<T>(x?: T): ResultOk<T | undefined> {\n\treturn new ResultOk(x);\n}\n","import type { Awaitable } from '../common/utils';\nimport type { Option } from '../Option';\nimport type { Result } from '../Result';\nimport { createErr, type ResultErr } from '../Result/Err';\nimport { createOk, type ResultOk } from '../Result/Ok';\nimport type { IOption } from './IOption';\nimport { createNone, type OptionNone } from './None';\n\nexport class OptionSome<T> implements IOption<T> {\n\tprivate readonly value: T;\n\n\tpublic constructor(value: T) {\n\t\tthis.value = value;\n\t}\n\n\tpublic isSome(): this is OptionSome<T> {\n\t\treturn true;\n\t}\n\n\tpublic isSomeAnd<R extends boolean>(cb: (value: T) => R): R {\n\t\treturn cb(this.value);\n\t}\n\n\tpublic isNone(): false {\n\t\treturn false;\n\t}\n\n\tpublic expect(message: string): T;\n\tpublic expect(): T {\n\t\treturn this.value;\n\t}\n\n\tpublic unwrap(): T {\n\t\treturn this.value;\n\t}\n\n\tpublic unwrapOr(defaultValue: unknown): T;\n\tpublic unwrapOr(): T {\n\t\treturn this.value;\n\t}\n\n\tpublic unwrapOrElse(cb: () => unknown): T;\n\tpublic unwrapOrElse(): T {\n\t\treturn this.value;\n\t}\n\n\tpublic map<U>(cb: (value: T) => U): OptionSome<U> {\n\t\treturn createSome(cb(this.value));\n\t}\n\n\tpublic mapInto<R extends Option<any>>(cb: (value: T) => R): R {\n\t\treturn cb(this.value);\n\t}\n\n\tpublic mapOr<U>(_: U, cb: (value: T) => U): U {\n\t\treturn cb(this.value);\n\t}\n\n\tpublic mapOrElse<U>(_: () => U, cb: (value: T) => U): U {\n\t\treturn cb(this.value);\n\t}\n\n\tpublic mapNoneInto(cb: () => Option<any>): this;\n\tpublic mapNoneInto(): this {\n\t\treturn this;\n\t}\n\n\tpublic inspect(cb: (value: T) => void): this {\n\t\tcb(this.value);\n\t\treturn this;\n\t}\n\n\tpublic async inspectAsync(cb: (value: T) => Awaitable<unknown>): Promise<this> {\n\t\tawait cb(this.value);\n\t\treturn this;\n\t}\n\n\tpublic okOr(err?: any): ResultOk<T>;\n\tpublic okOr(): ResultOk<T> {\n\t\treturn createOk(this.value);\n\t}\n\n\tpublic okOrElse(cb: () => any): ResultOk<T>;\n\tpublic okOrElse(): ResultOk<T> {\n\t\treturn createOk(this.value);\n\t}\n\n\tpublic *iter(): Generator<T> {\n\t\tyield this.value;\n\t}\n\n\tpublic and<R extends Option<any>>(option: R): R {\n\t\treturn option;\n\t}\n\n\tpublic andThen<R extends Option<any>>(cb: (value: T) => R): R {\n\t\treturn cb(this.value);\n\t}\n\n\tpublic or(option: Option<any>): this;\n\tpublic or(): this {\n\t\treturn this;\n\t}\n\n\tpublic orElse(cb?: () => Option<any>): this;\n\tpublic orElse(): this {\n\t\treturn this;\n\t}\n\n\tpublic xor(option: OptionSome<T>): OptionNone;\n\tpublic xor(option: OptionNone): this;\n\tpublic xor(option: Option<T>): this | OptionNone;\n\tpublic xor(option: Option<T>): this | OptionNone {\n\t\treturn option.isSome() ? createNone : this;\n\t}\n\n\tpublic filter(predicate: (value: T) => true): this;\n\tpublic filter(predicate: (value: T) => false): OptionNone;\n\tpublic filter(predicate: (value: T) => boolean): this | OptionNone;\n\tpublic filter(predicate: (value: T) => boolean): this | OptionNone {\n\t\treturn predicate(this.value) ? this : createNone;\n\t}\n\n\tpublic contains(value: T): boolean {\n\t\treturn this.value === value;\n\t}\n\n\tpublic zip(other: OptionNone): OptionNone;\n\tpublic zip<U>(other: OptionSome<U>): OptionSome<[T, U]>;\n\tpublic zip<U>(other: Option<U>): Option<[T, U]>;\n\tpublic zip<U>(other: Option<U>): Option<[T, U]> {\n\t\treturn other.map((o) => [this.value, o] as [T, U]);\n\t}\n\n\tpublic zipWith<U, R>(other: OptionNone, f: (s: T, o: U) => R): OptionNone;\n\tpublic zipWith<U, R>(other: OptionSome<U>, f: (s: T, o: U) => R): OptionSome<R>;\n\tpublic zipWith<U, R>(other: Option<U>, f: (s: T, o: U) => R): Option<R>;\n\tpublic zipWith<U, R>(other: Option<U>, f: (s: T, o: U) => R): Option<R> {\n\t\treturn other.map((o) => f(this.value, o));\n\t}\n\n\tpublic unzip<I, U>(this: OptionSome<readonly [I, U]>): [OptionSome<I>, OptionSome<U>] {\n\t\tconst [s, o] = this.value;\n\t\treturn [createSome(s), createSome(o)];\n\t}\n\n\tpublic transpose<Inner>(this: OptionSome<ResultOk<Inner>>): ResultOk<OptionSome<Inner>>;\n\tpublic transpose<Inner>(this: OptionSome<ResultErr<Inner>>): ResultErr<OptionSome<Inner>>;\n\tpublic transpose<IT, E>(this: OptionSome<Result<IT, E>>): Result<OptionSome<IT>, E>;\n\tpublic transpose<IT, E>(this: OptionSome<Result<IT, E>>): Result<OptionSome<IT>, E> {\n\t\treturn this.value.match({\n\t\t\tok: (v) => createOk(createSome(v)),\n\t\t\terr: (e) => createErr(e)\n\t\t});\n\t}\n\n\tpublic flatten<Inner extends Option<any>>(this: OptionSome<Inner>): Inner {\n\t\treturn this.value;\n\t}\n\n\tpublic async intoPromise(): Promise<OptionSome<Awaited<T>>> {\n\t\treturn createSome(await this.value);\n\t}\n\n\tpublic eq(other: OptionNone): false;\n\tpublic eq(other: Option<T>): boolean;\n\tpublic eq(other: Option<T>): boolean {\n\t\treturn other.isSomeAnd((value) => this.value === value);\n\t}\n\n\tpublic ne(other: OptionNone): true;\n\tpublic ne(other: Option<T>): boolean;\n\tpublic ne(other: Option<T>): boolean {\n\t\treturn !this.eq(other);\n\t}\n\n\tpublic match<SomeValue, NoneValue>(branches: { some(value: T): SomeValue; none(): NoneValue }): SomeValue {\n\t\treturn branches.some(this.value);\n\t}\n\n\tpublic *[Symbol.iterator](): Generator<T> {\n\t\tyield this.value;\n\t}\n}\n\nexport function createSome<T>(value: T): OptionSome<T> {\n\treturn new OptionSome<T>(value);\n}\n","import type { Awaitable } from '../common/utils';\nimport { createNone, type OptionNone } from '../Option/None';\nimport { createSome, type OptionSome } from '../Option/Some';\nimport type { Result } from '../Result';\nimport type { IResult } from './IResult';\nimport type { ResultOk } from './Ok';\nimport { ResultError } from './ResultError';\n\nexport class ResultErr<E> implements IResult<any, E> {\n\tprivate readonly error: E;\n\n\tpublic constructor(error: E) {\n\t\tthis.error = error;\n\t}\n\n\tpublic isOk(): false {\n\t\treturn false;\n\t}\n\n\tpublic isOkAnd(cb?: (value: never) => boolean): false;\n\tpublic isOkAnd(): false {\n\t\treturn false;\n\t}\n\n\tpublic isErr(): this is ResultErr<E> {\n\t\treturn true;\n\t}\n\n\tpublic isErrAnd(cb: (error: E) => boolean): boolean {\n\t\treturn cb(this.error);\n\t}\n\n\tpublic ok(): OptionNone {\n\t\treturn createNone;\n\t}\n\n\tpublic err(): OptionSome<E> {\n\t\treturn createSome(this.error);\n\t}\n\n\tpublic map(cb?: (value: never) => unknown): this;\n\tpublic map(): this {\n\t\treturn this;\n\t}\n\n\tpublic mapInto(cb: (value: never) => Result<any, any>): this;\n\tpublic mapInto(): this {\n\t\treturn this;\n\t}\n\n\tpublic mapOr<U>(defaultValue: U, cb?: (value: never) => U): U;\n\tpublic mapOr<U>(defaultValue: U): U {\n\t\treturn defaultValue;\n\t}\n\n\tpublic mapOrElse<U>(op: (error: E) => U, cb?: (value: never) => U): U;\n\tpublic mapOrElse<U>(op: (error: E) => U): U {\n\t\treturn op(this.error);\n\t}\n\n\tpublic mapErr<F>(cb: (error: E) => F): ResultErr<F> {\n\t\treturn createErr(cb(this.error));\n\t}\n\n\tpublic mapErrInto<R extends Result<any, any>>(cb: (error: E) => R): R {\n\t\treturn cb(this.error);\n\t}\n\n\tpublic inspect(cb?: (value: never) => void): this;\n\tpublic inspect(): this {\n\t\treturn this;\n\t}\n\n\tpublic inspectAsync(cb?: (value: never) => Awaitable<unknown>): Promise<this>;\n\tpublic inspectAsync(): Promise<this> {\n\t\treturn Promise.resolve(this);\n\t}\n\n\tpublic inspectErr(cb: (error: E) => void): this {\n\t\tcb(this.error);\n\t\treturn this;\n\t}\n\n\tpublic async inspectErrAsync(cb: (error: E) => Awaitable<unknown>): Promise<this> {\n\t\tawait cb(this.error);\n\t\treturn this;\n\t}\n\n\tpublic *iter(): Generator<never> {\n\t\t// Yields no values\n\t}\n\n\tpublic expect(message: string): never {\n\t\tthrow new ResultError(message, this.error);\n\t}\n\n\tpublic expectErr(message?: string): E;\n\tpublic expectErr(): E {\n\t\treturn this.error;\n\t}\n\n\tpublic unwrap(): never {\n\t\tthrow new ResultError('Unwrap failed', this.error);\n\t}\n\n\tpublic unwrapErr(): E {\n\t\treturn this.error;\n\t}\n\n\tpublic unwrapOr<T>(defaultValue: T): T {\n\t\treturn defaultValue;\n\t}\n\n\tpublic unwrapOrElse<T>(op: (error: E) => T): T {\n\t\treturn op(this.error);\n\t}\n\n\tpublic unwrapRaw(): never {\n\t\t// eslint-disable-next-line @typescript-eslint/no-throw-literal\n\t\tthrow this.error;\n\t}\n\n\tpublic and(result?: Result<any, E>): this;\n\tpublic and(): this {\n\t\treturn this;\n\t}\n\n\tpublic andThen(cb?: (value: never) => Result<any, E>): this;\n\tpublic andThen(): this {\n\t\treturn this;\n\t}\n\n\tpublic or<R extends Result<any, any>>(result: R): R {\n\t\treturn result;\n\t}\n\n\tpublic orElse<R extends Result<any, any>>(cb: (error: E) => R): R {\n\t\treturn cb(this.error);\n\t}\n\n\tpublic contains(value?: any): false;\n\tpublic contains(): false {\n\t\treturn false;\n\t}\n\n\tpublic containsErr(error: E): boolean {\n\t\treturn this.error === error;\n\t}\n\n\tpublic transpose(): OptionSome<this> {\n\t\treturn createSome(this);\n\t}\n\n\tpublic flatten(): this {\n\t\treturn this;\n\t}\n\n\tpublic intoOkOrErr(): E {\n\t\treturn this.error;\n\t}\n\n\tpublic async intoPromise(): Promise<ResultErr<Awaited<E>>> {\n\t\treturn createErr(await this.error);\n\t}\n\n\tpublic eq(other: ResultOk<any>): false;\n\tpublic eq(other: Result<any, E>): boolean;\n\tpublic eq(other: Result<any, E>): boolean {\n\t\treturn other.isErrAnd((error) => this.error === error);\n\t}\n\n\tpublic ne(other: ResultOk<any>): true;\n\tpublic ne(other: Result<any, E>): boolean;\n\tpublic ne(other: Result<any, E>): boolean {\n\t\treturn !this.eq(other);\n\t}\n\n\tpublic match<OkValue, ErrValue>(branches: { ok(value: never): OkValue; err(error: E): ErrValue }): ErrValue {\n\t\treturn branches.err(this.error);\n\t}\n\n\tpublic *[Symbol.iterator](): Generator<never> {\n\t\t// Yields no values\n\t}\n}\n\n/**\n * Creates an Err with no error.\n * @return An erroneous Result.\n */\nexport function createErr(): ResultErr<unknown>;\n\n/**\n * Creates an Err.\n * @typeparam E The error's type.\n * @param x Value to use.\n * @return An erroneous Result.\n */\nexport function createErr<E>(x: E): ResultErr<E>;\nexport function createErr<E>(x?: E): ResultErr<unknown> {\n\treturn new ResultErr(x);\n}\n","export class OptionError extends Error {\n\tpublic override get name(): string {\n\t\treturn this.constructor.name;\n\t}\n}\n","import type { Awaitable } from '../common/utils';\nimport type { Option } from '../Option';\nimport { createErr, type ResultErr } from '../Result/Err';\nimport { createOk, type ResultOk } from '../Result/Ok';\nimport type { IOption } from './IOption';\nimport { OptionError } from './OptionError';\nimport type { OptionSome } from './Some';\n\nexport class OptionNone implements IOption<any> {\n\tpublic isSome(): false {\n\t\treturn false;\n\t}\n\n\tpublic isSomeAnd(cb?: (value: never) => boolean): false;\n\tpublic isSomeAnd(): false {\n\t\treturn false;\n\t}\n\n\tpublic isNone(): this is OptionNone {\n\t\treturn true;\n\t}\n\n\tpublic expect(message: string): never {\n\t\tthrow new OptionError(message);\n\t}\n\n\tpublic unwrap(): never {\n\t\tthrow new OptionError('Unwrap failed');\n\t}\n\n\tpublic unwrapOr<R>(defaultValue: R): R {\n\t\treturn defaultValue;\n\t}\n\n\tpublic unwrapOrElse<R>(cb: () => R): R {\n\t\treturn cb();\n\t}\n\n\tpublic map(cb: (value: never) => any): this;\n\tpublic map(): this {\n\t\treturn this;\n\t}\n\n\tpublic mapInto(cb: (value: never) => Option<any>): this;\n\tpublic mapInto(): this {\n\t\treturn this;\n\t}\n\n\tpublic mapOr<R>(defaultValue: R, cb?: (value: never) => R): R;\n\tpublic mapOr<R>(defaultValue: R): R {\n\t\treturn defaultValue;\n\t}\n\n\tpublic mapOrElse<R>(defaultValue: () => R, cb?: (value: never) => R): R;\n\tpublic mapOrElse<R>(defaultValue: () => R): R {\n\t\treturn defaultValue();\n\t}\n\n\tpublic mapNoneInto<R extends Option<any>>(cb: () => R): R {\n\t\treturn cb();\n\t}\n\n\tpublic inspect(cb?: (value: never) => void): this;\n\tpublic inspect(): this {\n\t\treturn this;\n\t}\n\n\tpublic inspectAsync(cb?: (value: never) => Awaitable<unknown>): Promise<this>;\n\tpublic inspectAsync(): Promise<this> {\n\t\treturn Promise.resolve(this);\n\t}\n\n\tpublic okOr<E>(error: E): ResultErr<E> {\n\t\treturn createErr(error);\n\t}\n\n\tpublic okOrElse<E>(cb: () => E): ResultErr<E> {\n\t\treturn createErr(cb());\n\t}\n\n\tpublic *iter(): Generator<never> {\n\t\t// Yields no values\n\t}\n\n\tpublic and(option: Option<any>): this;\n\tpublic and(): this {\n\t\treturn this;\n\t}\n\n\tpublic andThen(cb: (value: never) => Option<any>): this;\n\tpublic andThen(): this {\n\t\treturn this;\n\t}\n\n\tpublic or<R extends Option<any>>(option: R): R {\n\t\treturn option;\n\t}\n\n\tpublic orElse<R extends Option<any>>(cb: () => R): R {\n\t\treturn cb();\n\t}\n\n\tpublic xor<T>(option: OptionNone): OptionNone;\n\tpublic xor<T>(option: OptionSome<T>): OptionSome<T>;\n\tpublic xor<T>(option: Option<T>): OptionSome<T> | OptionNone;\n\tpublic xor<T>(option: OptionSome<T> | OptionNone): OptionSome<T> | OptionNone {\n\t\treturn option.isSome() ? option : this;\n\t}\n\n\tpublic filter(predicate: (value: never) => boolean): OptionNone;\n\tpublic filter(): OptionNone {\n\t\treturn this;\n\t}\n\n\tpublic contains(value?: any): false;\n\tpublic contains(): false {\n\t\treturn false;\n\t}\n\n\tpublic zip(other: Option<any>): OptionNone;\n\tpublic zip(): OptionNone {\n\t\treturn this;\n\t}\n\n\tpublic zipWith(other: Option<any>, f: (s: never, o: never) => any): OptionNone;\n\tpublic zipWith(): OptionNone {\n\t\treturn this;\n\t}\n\n\tpublic unzip(): [OptionNone, OptionNone] {\n\t\treturn [this, this];\n\t}\n\n\tpublic transpose(): ResultOk<OptionNone> {\n\t\treturn createOk(this);\n\t}\n\n\tpublic flatten(): OptionNone {\n\t\treturn this;\n\t}\n\n\tpublic intoPromise(): Promise<OptionNone> {\n\t\treturn Promise.resolve(createNone);\n\t}\n\n\tpublic eq(other: OptionNone): true;\n\tpublic eq(other: OptionSome<any>): false;\n\tpublic eq(other: Option<any>): boolean;\n\tpublic eq(other: Option<any>): boolean {\n\t\treturn other.isNone();\n\t}\n\n\tpublic ne(other: OptionNone): false;\n\tpublic ne(other: OptionSome<any>): true;\n\tpublic ne(other: Option<any>): boolean;\n\tpublic ne(other: Option<any>): boolean {\n\t\treturn other.isSome();\n\t}\n\n\tpublic match<SomeValue, NoneValue>(branches: { some(value: never): SomeValue; none(): NoneValue }): NoneValue {\n\t\treturn branches.none();\n\t}\n\n\tpublic *[Symbol.iterator](): Generator<never> {\n\t\t// Yields no values\n\t}\n}\n\nexport const createNone = new OptionNone();\n","import { isFunction, type Awaitable } from './common/utils';\nimport { createNone, OptionNone } from './Option/None';\nimport { createSome, OptionSome } from './Option/Some';\n\nexport type * from './Option/IOption';\nexport * from './Option/OptionError';\nexport { createSome as some, createNone as none, type OptionNone as None, type OptionSome as Some };\n\n/**\n * The union of the two variations of `Option`.\n * @typeparam T The value's type.\n */\nexport type Option<T> = Option.Some<T> | Option.None;\n\nexport namespace Option {\n\texport type Resolvable<T> = T | null | undefined | Option<T>;\n\tfunction resolve<T>(value: Resolvable<T>) {\n\t\tif (value === null || value === undefined) return none;\n\t\tif (is(value)) return value;\n\t\treturn some(value);\n\t}\n\n\texport function is<T>(value: Option<T>): true;\n\texport function is(value: any): value is Option<unknown>;\n\texport function is(value: any) {\n\t\treturn value instanceof OptionNone || value instanceof OptionSome;\n\t}\n\n\t/**\n\t * Creates an {@link Option} out of a value or callback.\n\t * @typeparam T The result's type.\n\t */\n\texport function from<T>(op: Resolvable<T> | (() => Resolvable<T>)): Option<T> {\n\t\tif (!isFunction(op)) return resolve(op);\n\n\t\ttry {\n\t\t\treturn resolve(op());\n\t\t} catch {\n\t\t\treturn none;\n\t\t}\n\t}\n\n\t/**\n\t * Creates an {@link Option} out of a value or callback.\n\t * @typeparam T The result's type.\n\t */\n\texport async function fromAsync<T>(op: Awaitable<Resolvable<T>> | (() => Awaitable<Resolvable<T>>)): Promise<Option<T>> {\n\t\ttry {\n\t\t\treturn resolve(await (isFunction(op) ? op() : op));\n\t\t} catch {\n\t\t\treturn none;\n\t\t}\n\t}\n\n\t/**\n\t * Creates a {@link Some} that is the combination of all collected {@link Some} values as an array, or the first\n\t * {@link None} encountered.\n\t * @param options An array of {@link Option}s.\n\t * @returns A new {@link Option}.\n\t */\n\texport function all<T extends readonly Option<any>[]>(options: [...T]): Option<UnwrapSomeArray<T>> {\n\t\tconst values: unknown[] = [];\n\t\tfor (const option of options) {\n\t\t\tif (option.isNone()) {\n\t\t\t\treturn option;\n\t\t\t}\n\n\t\t\tvalues.push(option.unwrap());\n\t\t}\n\n\t\treturn some(values as UnwrapSomeArray<T>);\n\t}\n\n\t/**\n\t * Returns the first encountered {@link Some}, or a {@link None} if none was found.\n\t * @param options An array of {@link Option}s.\n\t * @returns A new {@link Option}.\n\t */\n\texport function any<T extends readonly Option<any>[]>(options: [...T]): Option<UnwrapSomeArray<T>[number]> {\n\t\tfor (const result of options) {\n\t\t\tif (result.isSome()) {\n\t\t\t\treturn result;\n\t\t\t}\n\t\t}\n\n\t\treturn none;\n\t}\n\n\texport const none = createNone;\n\texport const some = createSome;\n\n\texport type Some<T> = OptionSome<T>;\n\texport type None = OptionNone;\n\n\texport type UnwrapSome<T extends Option<any>> = T extends Some<infer S> ? S : never;\n\texport type UnwrapSomeArray<T extends readonly Option<any>[] | []> = {\n\t\t-readonly [P in keyof T]: UnwrapSome<T[P]>;\n\t};\n}\n","import { isFunction, type Awaitable } from './common/utils';\nimport { createErr, ResultErr } from './Result/Err';\nimport { createOk, ResultOk } from './Result/Ok';\n\nexport type * from './Result/IResult';\nexport * from './Result/ResultError';\nexport { createOk as ok, createErr as err, type ResultOk as Ok, type ResultErr as Err };\n\n/**\n * The union of the two variations of `Result`.\n * @typeparam T The result's type.\n * @typeparam E The error's type.\n */\nexport type Result<T, E> = Result.Ok<T> | Result.Err<E>;\n\nexport namespace Result {\n\texport type Resolvable<T, E> = T | Result<T, E>;\n\tfunction resolve<T, E>(value: Resolvable<T, E>) {\n\t\tif (is(value)) return value;\n\t\treturn ok(value);\n\t}\n\n\texport function is<T, E>(value: Result<T, E>): true;\n\texport function is(value: any): value is Result<unknown, unknown>;\n\texport function is(value: any) {\n\t\treturn value instanceof ResultOk || value instanceof ResultErr;\n\t}\n\n\t/**\n\t * Creates a {@link Result} out of a callback.\n\t * @typeparam T The result's type.\n\t * @typeparam E The error's type.\n\t */\n\texport function from<T, E = unknown>(op: Resolvable<T, E> | (() => Resolvable<T, E>)): Result<T, E> {\n\t\tif (!isFunction(op)) return resolve(op);\n\n\t\ttry {\n\t\t\treturn resolve(op());\n\t\t} catch (error) {\n\t\t\treturn err(error as E);\n\t\t}\n\t}\n\n\t/**\n\t * Creates a {@link Result} out of a promise or async callback.\n\t * @typeparam T The result's type.\n\t * @typeparam E The error's type.\n\t */\n\texport async function fromAsync<T, E = unknown>(op: Awaitable<Resolvable<T, E>> | (() => Awaitable<Resolvable<T, E>>)): Promise<Result<T, E>> {\n\t\ttry {\n\t\t\treturn resolve(await (isFunction(op) ? op() : op));\n\t\t} catch (error) {\n\t\t\treturn err(error as E);\n\t\t}\n\t}\n\n\t/**\n\t * Creates an {@link Ok} that is the combination of all collected {@link Ok} values as an array, or the first\n\t * {@link Err} encountered.\n\t * @param results An array of {@link Result}s.\n\t * @returns A new {@link Result}.\n\t */\n\texport function all<T extends readonly Result<any, any>[]>(results: [...T]): Result<UnwrapOkArray<T>, UnwrapErrArray<T>[number]> {\n\t\tconst values: unknown[] = [];\n\t\tfor (const result of results) {\n\t\t\tif (result.isErr()) {\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\tvalues.push(result.unwrap());\n\t\t}\n\n\t\treturn ok(values as UnwrapOkArray<T>);\n\t}\n\n\t/**\n\t * Returns the first encountered {@link Ok}, or an {@link Err} that is the combination of all collected error values.\n\t * @param results An array of {@link Result}s.\n\t * @returns A new {@link Result}.\n\t */\n\texport function any<T extends readonly Result<any, any>[]>(results: [...T]): Result<UnwrapOkArray<T>[number], UnwrapErrArray<T>> {\n\t\tconst errors: unknown[] = [];\n\t\tfor (const result of results) {\n\t\t\tif (result.isOk()) {\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\terrors.push(result.unwrapErr());\n\t\t}\n\n\t\treturn err(errors as UnwrapErrArray<T>);\n\t}\n\n\texport const err = createErr;\n\texport const ok = createOk;\n\n\texport type Err<E> = ResultErr<E>;\n\texport type Ok<T> = ResultOk<T>;\n\n\texport type UnwrapOk<T extends Result<any, any>> = T extends Ok<infer S> ? S : never;\n\texport type UnwrapErr<T extends Result<any, any>> = T extends Err<infer S> ? S : never;\n\n\texport type UnwrapOkArray<T extends readonly Result<any, any>[] | []> = {\n\t\t-readonly [P in keyof T]: UnwrapOk<T[P]>;\n\t};\n\texport type UnwrapErrArray<T extends readonly Result<any, any>[] | []> = {\n\t\t-readonly [P in keyof T]: UnwrapErr<T[P]>;\n\t};\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/lib/common/utils.ts","../../src/lib/Result/ResultError.ts","../../src/lib/Result/Ok.ts","../../src/lib/Option/Some.ts","../../src/lib/Result/Err.ts","../../src/lib/Option/OptionError.ts","../../src/lib/Option/None.ts","../../src/lib/Option.ts","../../src/lib/Result.ts"],"names":["Option","Result"],"mappings":"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","file":"index.mjs","sourcesContent":["export type Awaitable<T> = PromiseLike<T> | T;\n\nexport function isFunction<A extends readonly any[], R>(cb: (...args: A) => R): true;\nexport function isFunction(input: any): input is (...args: readonly any[]) => any;\nexport function isFunction(input: any) {\n\treturn typeof input === 'function';\n}\n\nexport function isPromise<T>(input: PromiseLike<T>): true;\nexport function isPromise(input: any): input is PromiseLike<any>;\nexport function isPromise(input: any) {\n\treturn typeof input === 'object' && input !== null && typeof input.then === 'function';\n}\n","export class ResultError<E> extends Error {\n\tpublic readonly value: E;\n\n\tpublic constructor(message: string, value: E) {\n\t\tsuper(message);\n\t\tthis.value = value;\n\t}\n\n\tpublic override get name(): string {\n\t\treturn this.constructor.name;\n\t}\n}\n","import type { Awaitable } from '../common/utils';\nimport type { Option } from '../Option';\nimport { createNone, type OptionNone } from '../Option/None';\nimport { createSome, type OptionSome } from '../Option/Some';\nimport type { Result } from '../Result';\nimport type { ResultErr } from './Err';\nimport type { IResult } from './IResult';\nimport { ResultError } from './ResultError';\n\nexport class ResultOk<T> implements IResult<T, any> {\n\tprivate readonly value: T;\n\n\tpublic constructor(value: T) {\n\t\tthis.value = value;\n\t}\n\n\tpublic isOk(): this is ResultOk<T> {\n\t\treturn true;\n\t}\n\n\tpublic isOkAnd<R extends boolean>(cb: (value: T) => R): R {\n\t\treturn cb(this.value);\n\t}\n\n\tpublic isErr(): false {\n\t\treturn false;\n\t}\n\n\tpublic isErrAnd(cb?: (error: never) => boolean): false;\n\tpublic isErrAnd(): false {\n\t\treturn false;\n\t}\n\n\tpublic ok(): OptionSome<T> {\n\t\treturn createSome(this.value);\n\t}\n\n\tpublic err(): OptionNone {\n\t\treturn createNone;\n\t}\n\n\tpublic map<U>(cb: (value: T) => U): ResultOk<U> {\n\t\treturn createOk(cb(this.value));\n\t}\n\n\tpublic mapInto<R extends Result<any, any>>(cb: (value: T) => R): R {\n\t\treturn cb(this.value);\n\t}\n\n\tpublic mapOr<U>(_: U, cb: (value: T) => U): U {\n\t\treturn cb(this.value);\n\t}\n\n\tpublic mapOrElse<U>(_: (error: never) => U, cb: (value: T) => U): U {\n\t\treturn cb(this.value);\n\t}\n\n\tpublic mapErr(cb?: (error: never) => any): this;\n\tpublic mapErr(): this {\n\t\treturn this;\n\t}\n\n\tpublic mapErrInto(cb: (error: never) => Result<any, any>): this;\n\tpublic mapErrInto(): this {\n\t\treturn this;\n\t}\n\n\tpublic inspect(cb: (value: T) => void): this {\n\t\tcb(this.value);\n\t\treturn this;\n\t}\n\n\tpublic async inspectAsync(cb: (value: T) => Awaitable<unknown>): Promise<this> {\n\t\tawait cb(this.value);\n\t\treturn this;\n\t}\n\n\tpublic inspectErr(cb?: (error: never) => void): this;\n\tpublic inspectErr(): this {\n\t\treturn this;\n\t}\n\n\tpublic inspectErrAsync(cb?: (error: never) => Awaitable<unknown>): Promise<this>;\n\tpublic inspectErrAsync(): Promise<this> {\n\t\treturn Promise.resolve(this);\n\t}\n\n\tpublic *iter(): Generator<T> {\n\t\tyield this.value;\n\t}\n\n\tpublic expect(message?: string): T;\n\tpublic expect(): T {\n\t\treturn this.value;\n\t}\n\n\tpublic expectErr(message: string): never {\n\t\tthrow new ResultError(message, this.value);\n\t}\n\n\tpublic unwrap(): T {\n\t\treturn this.value;\n\t}\n\n\tpublic unwrapErr(): never {\n\t\tthrow new ResultError('Unwrap failed', this.value);\n\t}\n\n\tpublic unwrapOr(defaultValue: unknown): T;\n\tpublic unwrapOr(): T {\n\t\treturn this.value;\n\t}\n\n\tpublic unwrapOrElse(op: (error: any) => unknown): T;\n\tpublic unwrapOrElse(): T {\n\t\treturn this.value;\n\t}\n\n\tpublic unwrapRaw(): T {\n\t\treturn this.value;\n\t}\n\n\tpublic and<R extends Result<any, any>>(result: R): R {\n\t\treturn result;\n\t}\n\n\tpublic andThen<R extends Result<any, any>>(cb: (value: T) => R): R {\n\t\treturn cb(this.value);\n\t}\n\n\tpublic or(result: Result<T, any>): this;\n\tpublic or(): this {\n\t\treturn this;\n\t}\n\n\tpublic orElse(cb: (error: never) => Result<T, any>): this;\n\tpublic orElse(): this {\n\t\treturn this;\n\t}\n\n\tpublic contains(value: T): boolean {\n\t\treturn this.value === value;\n\t}\n\n\tpublic containsErr(error?: unknown): false;\n\tpublic containsErr(): false {\n\t\treturn false;\n\t}\n\n\tpublic transpose(this: ResultOk<OptionNone>): OptionNone;\n\tpublic transpose<Inner>(this: ResultOk<OptionSome<Inner>>): OptionSome<ResultOk<Inner>>;\n\tpublic transpose<Inner>(this: ResultOk<Option<Inner>>): Option<ResultOk<Inner>>;\n\tpublic transpose<IT>(this: ResultOk<Option<IT>>): Option<ResultOk<IT>> {\n\t\treturn this.value.match({\n\t\t\tsome: (value) => createSome(createOk(value)),\n\t\t\tnone: () => createNone\n\t\t});\n\t}\n\n\tpublic flatten<Inner extends Result<any, any>>(this: ResultOk<Inner>): Inner {\n\t\treturn this.value;\n\t}\n\n\tpublic intoOkOrErr() {\n\t\treturn this.value;\n\t}\n\n\tpublic async intoPromise(): Promise<ResultOk<Awaited<T>>> {\n\t\treturn createOk(await this.value);\n\t}\n\n\tpublic eq(other: ResultErr<any>): false;\n\tpublic eq(other: Result<T, any>): boolean;\n\tpublic eq(other: Result<T, any>): boolean {\n\t\treturn other.isOkAnd((value) => this.value === value);\n\t}\n\n\tpublic ne(other: ResultErr<any>): true;\n\tpublic ne(other: Result<T, any>): boolean;\n\tpublic ne(other: Result<T, any>): boolean {\n\t\treturn !this.eq(other);\n\t}\n\n\tpublic match<OkValue, ErrValue>(branches: { ok(value: T): OkValue; err(error: never): ErrValue }): OkValue {\n\t\treturn branches.ok(this.value);\n\t}\n\n\tpublic *[Symbol.iterator](): Generator<T> {\n\t\tyield this.value;\n\t}\n}\n\n/**\n * Creates an Ok with no value.\n * @return A successful Result.\n */\nexport function createOk(): ResultOk<unknown>;\n\n/**\n * Creates an Ok.\n * @typeparam T The result's type.\n * @param x Value to use.\n * @return A successful Result.\n */\nexport function createOk<T>(x: T): ResultOk<T>;\nexport function createOk<T>(x?: T): ResultOk<T | undefined> {\n\treturn new ResultOk(x);\n}\n","import type { Awaitable } from '../common/utils';\nimport type { Option } from '../Option';\nimport type { Result } from '../Result';\nimport { createErr, type ResultErr } from '../Result/Err';\nimport { createOk, type ResultOk } from '../Result/Ok';\nimport type { IOption } from './IOption';\nimport { createNone, type OptionNone } from './None';\n\nexport class OptionSome<T> implements IOption<T> {\n\tprivate readonly value: T;\n\n\tpublic constructor(value: T) {\n\t\tthis.value = value;\n\t}\n\n\tpublic isSome(): this is OptionSome<T> {\n\t\treturn true;\n\t}\n\n\tpublic isSomeAnd<R extends boolean>(cb: (value: T) => R): R {\n\t\treturn cb(this.value);\n\t}\n\n\tpublic isNone(): false {\n\t\treturn false;\n\t}\n\n\tpublic expect(message: string): T;\n\tpublic expect(): T {\n\t\treturn this.value;\n\t}\n\n\tpublic unwrap(): T {\n\t\treturn this.value;\n\t}\n\n\tpublic unwrapOr(defaultValue: unknown): T;\n\tpublic unwrapOr(): T {\n\t\treturn this.value;\n\t}\n\n\tpublic unwrapOrElse(cb: () => unknown): T;\n\tpublic unwrapOrElse(): T {\n\t\treturn this.value;\n\t}\n\n\tpublic map<U>(cb: (value: T) => U): OptionSome<U> {\n\t\treturn createSome(cb(this.value));\n\t}\n\n\tpublic mapInto<R extends Option<any>>(cb: (value: T) => R): R {\n\t\treturn cb(this.value);\n\t}\n\n\tpublic mapOr<U>(_: U, cb: (value: T) => U): U {\n\t\treturn cb(this.value);\n\t}\n\n\tpublic mapOrElse<U>(_: () => U, cb: (value: T) => U): U {\n\t\treturn cb(this.value);\n\t}\n\n\tpublic mapNoneInto(cb: () => Option<any>): this;\n\tpublic mapNoneInto(): this {\n\t\treturn this;\n\t}\n\n\tpublic inspect(cb: (value: T) => void): this {\n\t\tcb(this.value);\n\t\treturn this;\n\t}\n\n\tpublic async inspectAsync(cb: (value: T) => Awaitable<unknown>): Promise<this> {\n\t\tawait cb(this.value);\n\t\treturn this;\n\t}\n\n\tpublic okOr(err?: any): ResultOk<T>;\n\tpublic okOr(): ResultOk<T> {\n\t\treturn createOk(this.value);\n\t}\n\n\tpublic okOrElse(cb: () => any): ResultOk<T>;\n\tpublic okOrElse(): ResultOk<T> {\n\t\treturn createOk(this.value);\n\t}\n\n\tpublic *iter(): Generator<T> {\n\t\tyield this.value;\n\t}\n\n\tpublic and<R extends Option<any>>(option: R): R {\n\t\treturn option;\n\t}\n\n\tpublic andThen<R extends Option<any>>(cb: (value: T) => R): R {\n\t\treturn cb(this.value);\n\t}\n\n\tpublic or(option: Option<any>): this;\n\tpublic or(): this {\n\t\treturn this;\n\t}\n\n\tpublic orElse(cb?: () => Option<any>): this;\n\tpublic orElse(): this {\n\t\treturn this;\n\t}\n\n\tpublic xor(option: OptionSome<T>): OptionNone;\n\tpublic xor(option: OptionNone): this;\n\tpublic xor(option: Option<T>): this | OptionNone;\n\tpublic xor(option: Option<T>): this | OptionNone {\n\t\treturn option.isSome() ? createNone : this;\n\t}\n\n\tpublic filter(predicate: (value: T) => true): this;\n\tpublic filter(predicate: (value: T) => false): OptionNone;\n\tpublic filter(predicate: (value: T) => boolean): this | OptionNone;\n\tpublic filter(predicate: (value: T) => boolean): this | OptionNone {\n\t\treturn predicate(this.value) ? this : createNone;\n\t}\n\n\tpublic contains(value: T): boolean {\n\t\treturn this.value === value;\n\t}\n\n\tpublic zip(other: OptionNone): OptionNone;\n\tpublic zip<U>(other: OptionSome<U>): OptionSome<[T, U]>;\n\tpublic zip<U>(other: Option<U>): Option<[T, U]>;\n\tpublic zip<U>(other: Option<U>): Option<[T, U]> {\n\t\treturn other.map((o) => [this.value, o] as [T, U]);\n\t}\n\n\tpublic zipWith<U, R>(other: OptionNone, f: (s: T, o: U) => R): OptionNone;\n\tpublic zipWith<U, R>(other: OptionSome<U>, f: (s: T, o: U) => R): OptionSome<R>;\n\tpublic zipWith<U, R>(other: Option<U>, f: (s: T, o: U) => R): Option<R>;\n\tpublic zipWith<U, R>(other: Option<U>, f: (s: T, o: U) => R): Option<R> {\n\t\treturn other.map((o) => f(this.value, o));\n\t}\n\n\tpublic unzip<I, U>(this: OptionSome<readonly [I, U]>): [OptionSome<I>, OptionSome<U>] {\n\t\tconst [s, o] = this.value;\n\t\treturn [createSome(s), createSome(o)];\n\t}\n\n\tpublic transpose<Inner>(this: OptionSome<ResultOk<Inner>>): ResultOk<OptionSome<Inner>>;\n\tpublic transpose<Inner>(this: OptionSome<ResultErr<Inner>>): ResultErr<OptionSome<Inner>>;\n\tpublic transpose<IT, E>(this: OptionSome<Result<IT, E>>): Result<OptionSome<IT>, E>;\n\tpublic transpose<IT, E>(this: OptionSome<Result<IT, E>>): Result<OptionSome<IT>, E> {\n\t\treturn this.value.match({\n\t\t\tok: (v) => createOk(createSome(v)),\n\t\t\terr: (e) => createErr(e)\n\t\t});\n\t}\n\n\tpublic flatten<Inner extends Option<any>>(this: OptionSome<Inner>): Inner {\n\t\treturn this.value;\n\t}\n\n\tpublic async intoPromise(): Promise<OptionSome<Awaited<T>>> {\n\t\treturn createSome(await this.value);\n\t}\n\n\tpublic eq(other: OptionNone): false;\n\tpublic eq(other: Option<T>): boolean;\n\tpublic eq(other: Option<T>): boolean {\n\t\treturn other.isSomeAnd((value) => this.value === value);\n\t}\n\n\tpublic ne(other: OptionNone): true;\n\tpublic ne(other: Option<T>): boolean;\n\tpublic ne(other: Option<T>): boolean {\n\t\treturn !this.eq(other);\n\t}\n\n\tpublic match<SomeValue, NoneValue>(branches: { some(value: T): SomeValue; none(): NoneValue }): SomeValue {\n\t\treturn branches.some(this.value);\n\t}\n\n\tpublic *[Symbol.iterator](): Generator<T> {\n\t\tyield this.value;\n\t}\n}\n\nexport function createSome<T>(value: T): OptionSome<T> {\n\treturn new OptionSome<T>(value);\n}\n","import type { Awaitable } from '../common/utils';\nimport { createNone, type OptionNone } from '../Option/None';\nimport { createSome, type OptionSome } from '../Option/Some';\nimport type { Result } from '../Result';\nimport type { IResult } from './IResult';\nimport type { ResultOk } from './Ok';\nimport { ResultError } from './ResultError';\n\nexport class ResultErr<E> implements IResult<any, E> {\n\tprivate readonly error: E;\n\n\tpublic constructor(error: E) {\n\t\tthis.error = error;\n\t}\n\n\tpublic isOk(): false {\n\t\treturn false;\n\t}\n\n\tpublic isOkAnd(cb?: (value: never) => boolean): false;\n\tpublic isOkAnd(): false {\n\t\treturn false;\n\t}\n\n\tpublic isErr(): this is ResultErr<E> {\n\t\treturn true;\n\t}\n\n\tpublic isErrAnd(cb: (error: E) => boolean): boolean {\n\t\treturn cb(this.error);\n\t}\n\n\tpublic ok(): OptionNone {\n\t\treturn createNone;\n\t}\n\n\tpublic err(): OptionSome<E> {\n\t\treturn createSome(this.error);\n\t}\n\n\tpublic map(cb?: (value: never) => unknown): this;\n\tpublic map(): this {\n\t\treturn this;\n\t}\n\n\tpublic mapInto(cb: (value: never) => Result<any, any>): this;\n\tpublic mapInto(): this {\n\t\treturn this;\n\t}\n\n\tpublic mapOr<U>(defaultValue: U, cb?: (value: never) => U): U;\n\tpublic mapOr<U>(defaultValue: U): U {\n\t\treturn defaultValue;\n\t}\n\n\tpublic mapOrElse<U>(op: (error: E) => U, cb?: (value: never) => U): U;\n\tpublic mapOrElse<U>(op: (error: E) => U): U {\n\t\treturn op(this.error);\n\t}\n\n\tpublic mapErr<F>(cb: (error: E) => F): ResultErr<F> {\n\t\treturn createErr(cb(this.error));\n\t}\n\n\tpublic mapErrInto<R extends Result<any, any>>(cb: (error: E) => R): R {\n\t\treturn cb(this.error);\n\t}\n\n\tpublic inspect(cb?: (value: never) => void): this;\n\tpublic inspect(): this {\n\t\treturn this;\n\t}\n\n\tpublic inspectAsync(cb?: (value: never) => Awaitable<unknown>): Promise<this>;\n\tpublic inspectAsync(): Promise<this> {\n\t\treturn Promise.resolve(this);\n\t}\n\n\tpublic inspectErr(cb: (error: E) => void): this {\n\t\tcb(this.error);\n\t\treturn this;\n\t}\n\n\tpublic async inspectErrAsync(cb: (error: E) => Awaitable<unknown>): Promise<this> {\n\t\tawait cb(this.error);\n\t\treturn this;\n\t}\n\n\tpublic *iter(): Generator<never> {\n\t\t// Yields no values\n\t}\n\n\tpublic expect(message: string): never {\n\t\tthrow new ResultError(message, this.error);\n\t}\n\n\tpublic expectErr(message?: string): E;\n\tpublic expectErr(): E {\n\t\treturn this.error;\n\t}\n\n\tpublic unwrap(): never {\n\t\tthrow new ResultError('Unwrap failed', this.error);\n\t}\n\n\tpublic unwrapErr(): E {\n\t\treturn this.error;\n\t}\n\n\tpublic unwrapOr<T>(defaultValue: T): T {\n\t\treturn defaultValue;\n\t}\n\n\tpublic unwrapOrElse<T>(op: (error: E) => T): T {\n\t\treturn op(this.error);\n\t}\n\n\tpublic unwrapRaw(): never {\n\t\t// eslint-disable-next-line @typescript-eslint/no-throw-literal\n\t\tthrow this.error;\n\t}\n\n\tpublic and(result?: Result<any, E>): this;\n\tpublic and(): this {\n\t\treturn this;\n\t}\n\n\tpublic andThen(cb?: (value: never) => Result<any, E>): this;\n\tpublic andThen(): this {\n\t\treturn this;\n\t}\n\n\tpublic or<R extends Result<any, any>>(result: R): R {\n\t\treturn result;\n\t}\n\n\tpublic orElse<R extends Result<any, any>>(cb: (error: E) => R): R {\n\t\treturn cb(this.error);\n\t}\n\n\tpublic contains(value?: any): false;\n\tpublic contains(): false {\n\t\treturn false;\n\t}\n\n\tpublic containsErr(error: E): boolean {\n\t\treturn this.error === error;\n\t}\n\n\tpublic transpose(): OptionSome<this> {\n\t\treturn createSome(this);\n\t}\n\n\tpublic flatten(): this {\n\t\treturn this;\n\t}\n\n\tpublic intoOkOrErr(): E {\n\t\treturn this.error;\n\t}\n\n\tpublic async intoPromise(): Promise<ResultErr<Awaited<E>>> {\n\t\treturn createErr(await this.error);\n\t}\n\n\tpublic eq(other: ResultOk<any>): false;\n\tpublic eq(other: Result<any, E>): boolean;\n\tpublic eq(other: Result<any, E>): boolean {\n\t\treturn other.isErrAnd((error) => this.error === error);\n\t}\n\n\tpublic ne(other: ResultOk<any>): true;\n\tpublic ne(other: Result<any, E>): boolean;\n\tpublic ne(other: Result<any, E>): boolean {\n\t\treturn !this.eq(other);\n\t}\n\n\tpublic match<OkValue, ErrValue>(branches: { ok(value: never): OkValue; err(error: E): ErrValue }): ErrValue {\n\t\treturn branches.err(this.error);\n\t}\n\n\tpublic *[Symbol.iterator](): Generator<never> {\n\t\t// Yields no values\n\t}\n}\n\n/**\n * Creates an Err with no error.\n * @return An erroneous Result.\n */\nexport function createErr(): ResultErr<unknown>;\n\n/**\n * Creates an Err.\n * @typeparam E The error's type.\n * @param x Value to use.\n * @return An erroneous Result.\n */\nexport function createErr<E>(x: E): ResultErr<E>;\nexport function createErr<E>(x?: E): ResultErr<unknown> {\n\treturn new ResultErr(x);\n}\n","export class OptionError extends Error {\n\tpublic override get name(): string {\n\t\treturn this.constructor.name;\n\t}\n}\n","import type { Awaitable } from '../common/utils';\nimport type { Option } from '../Option';\nimport { createErr, type ResultErr } from '../Result/Err';\nimport { createOk, type ResultOk } from '../Result/Ok';\nimport type { IOption } from './IOption';\nimport { OptionError } from './OptionError';\nimport type { OptionSome } from './Some';\n\nexport class OptionNone implements IOption<any> {\n\tpublic isSome(): false {\n\t\treturn false;\n\t}\n\n\tpublic isSomeAnd(cb?: (value: never) => boolean): false;\n\tpublic isSomeAnd(): false {\n\t\treturn false;\n\t}\n\n\tpublic isNone(): this is OptionNone {\n\t\treturn true;\n\t}\n\n\tpublic expect(message: string): never {\n\t\tthrow new OptionError(message);\n\t}\n\n\tpublic unwrap(): never {\n\t\tthrow new OptionError('Unwrap failed');\n\t}\n\n\tpublic unwrapOr<R>(defaultValue: R): R {\n\t\treturn defaultValue;\n\t}\n\n\tpublic unwrapOrElse<R>(cb: () => R): R {\n\t\treturn cb();\n\t}\n\n\tpublic map(cb: (value: never) => any): this;\n\tpublic map(): this {\n\t\treturn this;\n\t}\n\n\tpublic mapInto(cb: (value: never) => Option<any>): this;\n\tpublic mapInto(): this {\n\t\treturn this;\n\t}\n\n\tpublic mapOr<R>(defaultValue: R, cb?: (value: never) => R): R;\n\tpublic mapOr<R>(defaultValue: R): R {\n\t\treturn defaultValue;\n\t}\n\n\tpublic mapOrElse<R>(defaultValue: () => R, cb?: (value: never) => R): R;\n\tpublic mapOrElse<R>(defaultValue: () => R): R {\n\t\treturn defaultValue();\n\t}\n\n\tpublic mapNoneInto<R extends Option<any>>(cb: () => R): R {\n\t\treturn cb();\n\t}\n\n\tpublic inspect(cb?: (value: never) => void): this;\n\tpublic inspect(): this {\n\t\treturn this;\n\t}\n\n\tpublic inspectAsync(cb?: (value: never) => Awaitable<unknown>): Promise<this>;\n\tpublic inspectAsync(): Promise<this> {\n\t\treturn Promise.resolve(this);\n\t}\n\n\tpublic okOr<E>(error: E): ResultErr<E> {\n\t\treturn createErr(error);\n\t}\n\n\tpublic okOrElse<E>(cb: () => E): ResultErr<E> {\n\t\treturn createErr(cb());\n\t}\n\n\tpublic *iter(): Generator<never> {\n\t\t// Yields no values\n\t}\n\n\tpublic and(option: Option<any>): this;\n\tpublic and(): this {\n\t\treturn this;\n\t}\n\n\tpublic andThen(cb: (value: never) => Option<any>): this;\n\tpublic andThen(): this {\n\t\treturn this;\n\t}\n\n\tpublic or<R extends Option<any>>(option: R): R {\n\t\treturn option;\n\t}\n\n\tpublic orElse<R extends Option<any>>(cb: () => R): R {\n\t\treturn cb();\n\t}\n\n\tpublic xor<T>(option: OptionNone): OptionNone;\n\tpublic xor<T>(option: OptionSome<T>): OptionSome<T>;\n\tpublic xor<T>(option: Option<T>): OptionSome<T> | OptionNone;\n\tpublic xor<T>(option: OptionSome<T> | OptionNone): OptionSome<T> | OptionNone {\n\t\treturn option.isSome() ? option : this;\n\t}\n\n\tpublic filter(predicate: (value: never) => boolean): OptionNone;\n\tpublic filter(): OptionNone {\n\t\treturn this;\n\t}\n\n\tpublic contains(value?: any): false;\n\tpublic contains(): false {\n\t\treturn false;\n\t}\n\n\tpublic zip(other: Option<any>): OptionNone;\n\tpublic zip(): OptionNone {\n\t\treturn this;\n\t}\n\n\tpublic zipWith(other: Option<any>, f: (s: never, o: never) => any): OptionNone;\n\tpublic zipWith(): OptionNone {\n\t\treturn this;\n\t}\n\n\tpublic unzip(): [OptionNone, OptionNone] {\n\t\treturn [this, this];\n\t}\n\n\tpublic transpose(): ResultOk<OptionNone> {\n\t\treturn createOk(this);\n\t}\n\n\tpublic flatten(): OptionNone {\n\t\treturn this;\n\t}\n\n\tpublic intoPromise(): Promise<OptionNone> {\n\t\treturn Promise.resolve(createNone);\n\t}\n\n\tpublic eq(other: OptionNone): true;\n\tpublic eq(other: OptionSome<any>): false;\n\tpublic eq(other: Option<any>): boolean;\n\tpublic eq(other: Option<any>): boolean {\n\t\treturn other.isNone();\n\t}\n\n\tpublic ne(other: OptionNone): false;\n\tpublic ne(other: OptionSome<any>): true;\n\tpublic ne(other: Option<any>): boolean;\n\tpublic ne(other: Option<any>): boolean {\n\t\treturn other.isSome();\n\t}\n\n\tpublic match<SomeValue, NoneValue>(branches: { some(value: never): SomeValue; none(): NoneValue }): NoneValue {\n\t\treturn branches.none();\n\t}\n\n\tpublic *[Symbol.iterator](): Generator<never> {\n\t\t// Yields no values\n\t}\n}\n\nexport const createNone = new OptionNone();\n","import { isFunction, type Awaitable } from './common/utils';\nimport { createNone, OptionNone } from './Option/None';\nimport { createSome, OptionSome } from './Option/Some';\n\nexport type * from './Option/IOption';\nexport * from './Option/OptionError';\nexport { createSome as some, createNone as none, type OptionNone as None, type OptionSome as Some };\n\n/**\n * The union of the two variations of `Option`.\n * @typeparam T The value's type.\n */\nexport type Option<T> = Option.Some<T> | Option.None;\n\nexport namespace Option {\n\texport type Resolvable<T> = T | null | undefined | Option<T>;\n\tfunction resolve<T>(value: Resolvable<T>) {\n\t\tif (value === null || value === undefined) return none;\n\t\tif (is(value)) return value;\n\t\treturn some(value);\n\t}\n\n\texport function is<T>(value: Option<T>): true;\n\texport function is(value: any): value is Option<unknown>;\n\texport function is(value: any) {\n\t\treturn value instanceof OptionNone || value instanceof OptionSome;\n\t}\n\n\t/**\n\t * Creates an {@link Option} out of a value or callback.\n\t * @typeparam T The result's type.\n\t */\n\texport function from<T>(op: Resolvable<T> | (() => Resolvable<T>)): Option<T> {\n\t\tif (!isFunction(op)) return resolve(op);\n\n\t\ttry {\n\t\t\treturn resolve(op());\n\t\t} catch {\n\t\t\treturn none;\n\t\t}\n\t}\n\n\t/**\n\t * Creates an {@link Option} out of a value or callback.\n\t * @typeparam T The result's type.\n\t */\n\texport async function fromAsync<T>(op: Awaitable<Resolvable<T>> | (() => Awaitable<Resolvable<T>>)): Promise<Option<T>> {\n\t\ttry {\n\t\t\treturn resolve(await (isFunction(op) ? op() : op));\n\t\t} catch {\n\t\t\treturn none;\n\t\t}\n\t}\n\n\t/**\n\t * Creates a {@link Some} that is the combination of all collected {@link Some} values as an array, or the first\n\t * {@link None} encountered.\n\t * @param options An array of {@link Option}s.\n\t * @returns A new {@link Option}.\n\t */\n\texport function all<T extends readonly Option<any>[]>(options: [...T]): Option<UnwrapSomeArray<T>> {\n\t\tconst values: unknown[] = [];\n\t\tfor (const option of options) {\n\t\t\tif (option.isNone()) {\n\t\t\t\treturn option;\n\t\t\t}\n\n\t\t\tvalues.push(option.unwrap());\n\t\t}\n\n\t\treturn some(values as UnwrapSomeArray<T>);\n\t}\n\n\t/**\n\t * Returns the first encountered {@link Some}, or a {@link None} if none was found.\n\t * @param options An array of {@link Option}s.\n\t * @returns A new {@link Option}.\n\t */\n\texport function any<T extends readonly Option<any>[]>(options: [...T]): Option<UnwrapSomeArray<T>[number]> {\n\t\tfor (const result of options) {\n\t\t\tif (result.isSome()) {\n\t\t\t\treturn result;\n\t\t\t}\n\t\t}\n\n\t\treturn none;\n\t}\n\n\texport const none = createNone;\n\texport const some = createSome;\n\n\texport type Some<T> = OptionSome<T>;\n\texport type None = OptionNone;\n\n\texport type UnwrapSome<T extends Option<any>> = T extends Some<infer S> ? S : never;\n\texport type UnwrapSomeArray<T extends readonly Option<any>[] | []> = {\n\t\t-readonly [P in keyof T]: UnwrapSome<T[P]>;\n\t};\n}\n","import { isFunction, type Awaitable } from './common/utils';\nimport { createErr, ResultErr } from './Result/Err';\nimport { createOk, ResultOk } from './Result/Ok';\n\nexport type * from './Result/IResult';\nexport * from './Result/ResultError';\nexport { createOk as ok, createErr as err, type ResultOk as Ok, type ResultErr as Err };\n\n/**\n * The union of the two variations of `Result`.\n * @typeparam T The result's type.\n * @typeparam E The error's type.\n */\nexport type Result<T, E> = Result.Ok<T> | Result.Err<E>;\n\nexport namespace Result {\n\texport type Resolvable<T, E> = T | Result<T, E>;\n\tfunction resolve<T, E>(value: Resolvable<T, E>) {\n\t\tif (is(value)) return value;\n\t\treturn ok(value);\n\t}\n\n\texport function is<T, E>(value: Result<T, E>): true;\n\texport function is(value: any): value is Result<unknown, unknown>;\n\texport function is(value: any) {\n\t\treturn value instanceof ResultOk || value instanceof ResultErr;\n\t}\n\n\t/**\n\t * Creates a {@link Result} out of a callback.\n\t * @typeparam T The result's type.\n\t * @typeparam E The error's type.\n\t */\n\texport function from<T, E = unknown>(op: Resolvable<T, E> | (() => Resolvable<T, E>)): Result<T, E> {\n\t\tif (!isFunction(op)) return resolve(op);\n\n\t\ttry {\n\t\t\treturn resolve(op());\n\t\t} catch (error) {\n\t\t\treturn err(error as E);\n\t\t}\n\t}\n\n\t/**\n\t * Creates a {@link Result} out of a promise or async callback.\n\t * @typeparam T The result's type.\n\t * @typeparam E The error's type.\n\t */\n\texport async function fromAsync<T, E = unknown>(op: Awaitable<Resolvable<T, E>> | (() => Awaitable<Resolvable<T, E>>)): Promise<Result<T, E>> {\n\t\ttry {\n\t\t\treturn resolve(await (isFunction(op) ? op() : op));\n\t\t} catch (error) {\n\t\t\treturn err(error as E);\n\t\t}\n\t}\n\n\t/**\n\t * Creates an {@link Ok} that is the combination of all collected {@link Ok} values as an array, or the first\n\t * {@link Err} encountered.\n\t * @param results An array of {@link Result}s.\n\t * @returns A new {@link Result}.\n\t */\n\texport function all<T extends readonly Result<any, any>[]>(results: [...T]): Result<UnwrapOkArray<T>, UnwrapErrArray<T>[number]> {\n\t\tconst values: unknown[] = [];\n\t\tfor (const result of results) {\n\t\t\tif (result.isErr()) {\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\tvalues.push(result.unwrap());\n\t\t}\n\n\t\treturn ok(values as UnwrapOkArray<T>);\n\t}\n\n\t/**\n\t * Returns the first encountered {@link Ok}, or an {@link Err} that is the combination of all collected error values.\n\t * @param results An array of {@link Result}s.\n\t * @returns A new {@link Result}.\n\t */\n\texport function any<T extends readonly Result<any, any>[]>(results: [...T]): Result<UnwrapOkArray<T>[number], UnwrapErrArray<T>> {\n\t\tconst errors: unknown[] = [];\n\t\tfor (const result of results) {\n\t\t\tif (result.isOk()) {\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\terrors.push(result.unwrapErr());\n\t\t}\n\n\t\treturn err(errors as UnwrapErrArray<T>);\n\t}\n\n\texport const err = createErr;\n\texport const ok = createOk;\n\n\texport type Err<E> = ResultErr<E>;\n\texport type Ok<T> = ResultOk<T>;\n\n\texport type UnwrapOk<T extends Result<any, any>> = T extends Ok<infer S> ? S : never;\n\texport type UnwrapErr<T extends Result<any, any>> = T extends Err<infer S> ? S : never;\n\n\texport type UnwrapOkArray<T extends readonly Result<any, any>[] | []> = {\n\t\t-readonly [P in keyof T]: UnwrapOk<T[P]>;\n\t};\n\texport type UnwrapErrArray<T extends readonly Result<any, any>[] | []> = {\n\t\t-readonly [P in keyof T]: UnwrapErr<T[P]>;\n\t};\n}\n"]}
|
|
@@ -4,10 +4,7 @@ var SapphireResult = (function (exports) {
|
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
5
5
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
6
6
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
7
|
-
var __publicField = (obj, key, value) =>
|
|
8
|
-
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
9
|
-
return value;
|
|
10
|
-
};
|
|
7
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
11
8
|
|
|
12
9
|
// src/lib/common/utils.ts
|
|
13
10
|
function isFunction(input) {
|
|
@@ -129,8 +126,8 @@ var SapphireResult = (function (exports) {
|
|
|
129
126
|
}
|
|
130
127
|
transpose() {
|
|
131
128
|
return this.value.match({
|
|
132
|
-
some: (value) => createSome(createOk(value)),
|
|
133
|
-
none: () => createNone
|
|
129
|
+
some: /* @__PURE__ */ __name((value) => createSome(createOk(value)), "some"),
|
|
130
|
+
none: /* @__PURE__ */ __name(() => createNone, "none")
|
|
134
131
|
});
|
|
135
132
|
}
|
|
136
133
|
flatten() {
|
|
@@ -254,8 +251,8 @@ var SapphireResult = (function (exports) {
|
|
|
254
251
|
}
|
|
255
252
|
transpose() {
|
|
256
253
|
return this.value.match({
|
|
257
|
-
ok: (v) => createOk(createSome(v)),
|
|
258
|
-
err: (e) => createErr(e)
|
|
254
|
+
ok: /* @__PURE__ */ __name((v) => createOk(createSome(v)), "ok"),
|
|
255
|
+
err: /* @__PURE__ */ __name((e) => createErr(e), "err")
|
|
259
256
|
});
|
|
260
257
|
}
|
|
261
258
|
flatten() {
|
|
@@ -532,10 +529,8 @@ var SapphireResult = (function (exports) {
|
|
|
532
529
|
exports.Option = void 0;
|
|
533
530
|
((Option2) => {
|
|
534
531
|
function resolve(value) {
|
|
535
|
-
if (value === null || value === void 0)
|
|
536
|
-
|
|
537
|
-
if (is(value))
|
|
538
|
-
return value;
|
|
532
|
+
if (value === null || value === void 0) return Option2.none;
|
|
533
|
+
if (is(value)) return value;
|
|
539
534
|
return (0, Option2.some)(value);
|
|
540
535
|
}
|
|
541
536
|
__name(resolve, "resolve");
|
|
@@ -545,8 +540,7 @@ var SapphireResult = (function (exports) {
|
|
|
545
540
|
Option2.is = is;
|
|
546
541
|
__name(is, "is");
|
|
547
542
|
function from(op) {
|
|
548
|
-
if (!isFunction(op))
|
|
549
|
-
return resolve(op);
|
|
543
|
+
if (!isFunction(op)) return resolve(op);
|
|
550
544
|
try {
|
|
551
545
|
return resolve(op());
|
|
552
546
|
} catch {
|
|
@@ -594,8 +588,7 @@ var SapphireResult = (function (exports) {
|
|
|
594
588
|
exports.Result = void 0;
|
|
595
589
|
((Result2) => {
|
|
596
590
|
function resolve(value) {
|
|
597
|
-
if (is(value))
|
|
598
|
-
return value;
|
|
591
|
+
if (is(value)) return value;
|
|
599
592
|
return (0, Result2.ok)(value);
|
|
600
593
|
}
|
|
601
594
|
__name(resolve, "resolve");
|
|
@@ -605,8 +598,7 @@ var SapphireResult = (function (exports) {
|
|
|
605
598
|
Result2.is = is;
|
|
606
599
|
__name(is, "is");
|
|
607
600
|
function from(op) {
|
|
608
|
-
if (!isFunction(op))
|
|
609
|
-
return resolve(op);
|
|
601
|
+
if (!isFunction(op)) return resolve(op);
|
|
610
602
|
try {
|
|
611
603
|
return resolve(op());
|
|
612
604
|
} catch (error) {
|
|
@@ -662,5 +654,5 @@ var SapphireResult = (function (exports) {
|
|
|
662
654
|
return exports;
|
|
663
655
|
|
|
664
656
|
})({});
|
|
665
|
-
//# sourceMappingURL=
|
|
657
|
+
//# sourceMappingURL=index.global.js.map
|
|
666
658
|
//# sourceMappingURL=index.global.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/lib/common/utils.ts","../../src/lib/Result/ResultError.ts","../../src/lib/Result/Ok.ts","../../src/lib/Option/Some.ts","../../src/lib/Result/Err.ts","../../src/lib/Option/OptionError.ts","../../src/lib/Option/None.ts","../../src/lib/Option.ts","../../src/lib/Result.ts"],"names":["Option","Result"],"mappings":"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","sourcesContent":["export type Awaitable<T> = PromiseLike<T> | T;\n\nexport function isFunction<A extends readonly any[], R>(cb: (...args: A) => R): true;\nexport function isFunction(input: any): input is (...args: readonly any[]) => any;\nexport function isFunction(input: any) {\n\treturn typeof input === 'function';\n}\n\nexport function isPromise<T>(input: PromiseLike<T>): true;\nexport function isPromise(input: any): input is PromiseLike<any>;\nexport function isPromise(input: any) {\n\treturn typeof input === 'object' && input !== null && typeof input.then === 'function';\n}\n","export class ResultError<E> extends Error {\n\tpublic readonly value: E;\n\n\tpublic constructor(message: string, value: E) {\n\t\tsuper(message);\n\t\tthis.value = value;\n\t}\n\n\tpublic override get name(): string {\n\t\treturn this.constructor.name;\n\t}\n}\n","import type { Awaitable } from '../common/utils';\nimport type { Option } from '../Option';\nimport { createNone, type OptionNone } from '../Option/None';\nimport { createSome, type OptionSome } from '../Option/Some';\nimport type { Result } from '../Result';\nimport type { ResultErr } from './Err';\nimport type { IResult } from './IResult';\nimport { ResultError } from './ResultError';\n\nexport class ResultOk<T> implements IResult<T, any> {\n\tprivate readonly value: T;\n\n\tpublic constructor(value: T) {\n\t\tthis.value = value;\n\t}\n\n\tpublic isOk(): this is ResultOk<T> {\n\t\treturn true;\n\t}\n\n\tpublic isOkAnd<R extends boolean>(cb: (value: T) => R): R {\n\t\treturn cb(this.value);\n\t}\n\n\tpublic isErr(): false {\n\t\treturn false;\n\t}\n\n\tpublic isErrAnd(cb?: (error: never) => boolean): false;\n\tpublic isErrAnd(): false {\n\t\treturn false;\n\t}\n\n\tpublic ok(): OptionSome<T> {\n\t\treturn createSome(this.value);\n\t}\n\n\tpublic err(): OptionNone {\n\t\treturn createNone;\n\t}\n\n\tpublic map<U>(cb: (value: T) => U): ResultOk<U> {\n\t\treturn createOk(cb(this.value));\n\t}\n\n\tpublic mapInto<R extends Result<any, any>>(cb: (value: T) => R): R {\n\t\treturn cb(this.value);\n\t}\n\n\tpublic mapOr<U>(_: U, cb: (value: T) => U): U {\n\t\treturn cb(this.value);\n\t}\n\n\tpublic mapOrElse<U>(_: (error: never) => U, cb: (value: T) => U): U {\n\t\treturn cb(this.value);\n\t}\n\n\tpublic mapErr(cb?: (error: never) => any): this;\n\tpublic mapErr(): this {\n\t\treturn this;\n\t}\n\n\tpublic mapErrInto(cb: (error: never) => Result<any, any>): this;\n\tpublic mapErrInto(): this {\n\t\treturn this;\n\t}\n\n\tpublic inspect(cb: (value: T) => void): this {\n\t\tcb(this.value);\n\t\treturn this;\n\t}\n\n\tpublic async inspectAsync(cb: (value: T) => Awaitable<unknown>): Promise<this> {\n\t\tawait cb(this.value);\n\t\treturn this;\n\t}\n\n\tpublic inspectErr(cb?: (error: never) => void): this;\n\tpublic inspectErr(): this {\n\t\treturn this;\n\t}\n\n\tpublic inspectErrAsync(cb?: (error: never) => Awaitable<unknown>): Promise<this>;\n\tpublic inspectErrAsync(): Promise<this> {\n\t\treturn Promise.resolve(this);\n\t}\n\n\tpublic *iter(): Generator<T> {\n\t\tyield this.value;\n\t}\n\n\tpublic expect(message?: string): T;\n\tpublic expect(): T {\n\t\treturn this.value;\n\t}\n\n\tpublic expectErr(message: string): never {\n\t\tthrow new ResultError(message, this.value);\n\t}\n\n\tpublic unwrap(): T {\n\t\treturn this.value;\n\t}\n\n\tpublic unwrapErr(): never {\n\t\tthrow new ResultError('Unwrap failed', this.value);\n\t}\n\n\tpublic unwrapOr(defaultValue: unknown): T;\n\tpublic unwrapOr(): T {\n\t\treturn this.value;\n\t}\n\n\tpublic unwrapOrElse(op: (error: any) => unknown): T;\n\tpublic unwrapOrElse(): T {\n\t\treturn this.value;\n\t}\n\n\tpublic unwrapRaw(): T {\n\t\treturn this.value;\n\t}\n\n\tpublic and<R extends Result<any, any>>(result: R): R {\n\t\treturn result;\n\t}\n\n\tpublic andThen<R extends Result<any, any>>(cb: (value: T) => R): R {\n\t\treturn cb(this.value);\n\t}\n\n\tpublic or(result: Result<T, any>): this;\n\tpublic or(): this {\n\t\treturn this;\n\t}\n\n\tpublic orElse(cb: (error: never) => Result<T, any>): this;\n\tpublic orElse(): this {\n\t\treturn this;\n\t}\n\n\tpublic contains(value: T): boolean {\n\t\treturn this.value === value;\n\t}\n\n\tpublic containsErr(error?: unknown): false;\n\tpublic containsErr(): false {\n\t\treturn false;\n\t}\n\n\tpublic transpose(this: ResultOk<OptionNone>): OptionNone;\n\tpublic transpose<Inner>(this: ResultOk<OptionSome<Inner>>): OptionSome<ResultOk<Inner>>;\n\tpublic transpose<Inner>(this: ResultOk<Option<Inner>>): Option<ResultOk<Inner>>;\n\tpublic transpose<IT>(this: ResultOk<Option<IT>>): Option<ResultOk<IT>> {\n\t\treturn this.value.match({\n\t\t\tsome: (value) => createSome(createOk(value)),\n\t\t\tnone: () => createNone\n\t\t});\n\t}\n\n\tpublic flatten<Inner extends Result<any, any>>(this: ResultOk<Inner>): Inner {\n\t\treturn this.value;\n\t}\n\n\tpublic intoOkOrErr() {\n\t\treturn this.value;\n\t}\n\n\tpublic async intoPromise(): Promise<ResultOk<Awaited<T>>> {\n\t\treturn createOk(await this.value);\n\t}\n\n\tpublic eq(other: ResultErr<any>): false;\n\tpublic eq(other: Result<T, any>): boolean;\n\tpublic eq(other: Result<T, any>): boolean {\n\t\treturn other.isOkAnd((value) => this.value === value);\n\t}\n\n\tpublic ne(other: ResultErr<any>): true;\n\tpublic ne(other: Result<T, any>): boolean;\n\tpublic ne(other: Result<T, any>): boolean {\n\t\treturn !this.eq(other);\n\t}\n\n\tpublic match<OkValue, ErrValue>(branches: { ok(value: T): OkValue; err(error: never): ErrValue }): OkValue {\n\t\treturn branches.ok(this.value);\n\t}\n\n\tpublic *[Symbol.iterator](): Generator<T> {\n\t\tyield this.value;\n\t}\n}\n\n/**\n * Creates an Ok with no value.\n * @return A successful Result.\n */\nexport function createOk(): ResultOk<unknown>;\n\n/**\n * Creates an Ok.\n * @typeparam T The result's type.\n * @param x Value to use.\n * @return A successful Result.\n */\nexport function createOk<T>(x: T): ResultOk<T>;\nexport function createOk<T>(x?: T): ResultOk<T | undefined> {\n\treturn new ResultOk(x);\n}\n","import type { Awaitable } from '../common/utils';\nimport type { Option } from '../Option';\nimport type { Result } from '../Result';\nimport { createErr, type ResultErr } from '../Result/Err';\nimport { createOk, type ResultOk } from '../Result/Ok';\nimport type { IOption } from './IOption';\nimport { createNone, type OptionNone } from './None';\n\nexport class OptionSome<T> implements IOption<T> {\n\tprivate readonly value: T;\n\n\tpublic constructor(value: T) {\n\t\tthis.value = value;\n\t}\n\n\tpublic isSome(): this is OptionSome<T> {\n\t\treturn true;\n\t}\n\n\tpublic isSomeAnd<R extends boolean>(cb: (value: T) => R): R {\n\t\treturn cb(this.value);\n\t}\n\n\tpublic isNone(): false {\n\t\treturn false;\n\t}\n\n\tpublic expect(message: string): T;\n\tpublic expect(): T {\n\t\treturn this.value;\n\t}\n\n\tpublic unwrap(): T {\n\t\treturn this.value;\n\t}\n\n\tpublic unwrapOr(defaultValue: unknown): T;\n\tpublic unwrapOr(): T {\n\t\treturn this.value;\n\t}\n\n\tpublic unwrapOrElse(cb: () => unknown): T;\n\tpublic unwrapOrElse(): T {\n\t\treturn this.value;\n\t}\n\n\tpublic map<U>(cb: (value: T) => U): OptionSome<U> {\n\t\treturn createSome(cb(this.value));\n\t}\n\n\tpublic mapInto<R extends Option<any>>(cb: (value: T) => R): R {\n\t\treturn cb(this.value);\n\t}\n\n\tpublic mapOr<U>(_: U, cb: (value: T) => U): U {\n\t\treturn cb(this.value);\n\t}\n\n\tpublic mapOrElse<U>(_: () => U, cb: (value: T) => U): U {\n\t\treturn cb(this.value);\n\t}\n\n\tpublic mapNoneInto(cb: () => Option<any>): this;\n\tpublic mapNoneInto(): this {\n\t\treturn this;\n\t}\n\n\tpublic inspect(cb: (value: T) => void): this {\n\t\tcb(this.value);\n\t\treturn this;\n\t}\n\n\tpublic async inspectAsync(cb: (value: T) => Awaitable<unknown>): Promise<this> {\n\t\tawait cb(this.value);\n\t\treturn this;\n\t}\n\n\tpublic okOr(err?: any): ResultOk<T>;\n\tpublic okOr(): ResultOk<T> {\n\t\treturn createOk(this.value);\n\t}\n\n\tpublic okOrElse(cb: () => any): ResultOk<T>;\n\tpublic okOrElse(): ResultOk<T> {\n\t\treturn createOk(this.value);\n\t}\n\n\tpublic *iter(): Generator<T> {\n\t\tyield this.value;\n\t}\n\n\tpublic and<R extends Option<any>>(option: R): R {\n\t\treturn option;\n\t}\n\n\tpublic andThen<R extends Option<any>>(cb: (value: T) => R): R {\n\t\treturn cb(this.value);\n\t}\n\n\tpublic or(option: Option<any>): this;\n\tpublic or(): this {\n\t\treturn this;\n\t}\n\n\tpublic orElse(cb?: () => Option<any>): this;\n\tpublic orElse(): this {\n\t\treturn this;\n\t}\n\n\tpublic xor(option: OptionSome<T>): OptionNone;\n\tpublic xor(option: OptionNone): this;\n\tpublic xor(option: Option<T>): this | OptionNone;\n\tpublic xor(option: Option<T>): this | OptionNone {\n\t\treturn option.isSome() ? createNone : this;\n\t}\n\n\tpublic filter(predicate: (value: T) => true): this;\n\tpublic filter(predicate: (value: T) => false): OptionNone;\n\tpublic filter(predicate: (value: T) => boolean): this | OptionNone;\n\tpublic filter(predicate: (value: T) => boolean): this | OptionNone {\n\t\treturn predicate(this.value) ? this : createNone;\n\t}\n\n\tpublic contains(value: T): boolean {\n\t\treturn this.value === value;\n\t}\n\n\tpublic zip(other: OptionNone): OptionNone;\n\tpublic zip<U>(other: OptionSome<U>): OptionSome<[T, U]>;\n\tpublic zip<U>(other: Option<U>): Option<[T, U]>;\n\tpublic zip<U>(other: Option<U>): Option<[T, U]> {\n\t\treturn other.map((o) => [this.value, o] as [T, U]);\n\t}\n\n\tpublic zipWith<U, R>(other: OptionNone, f: (s: T, o: U) => R): OptionNone;\n\tpublic zipWith<U, R>(other: OptionSome<U>, f: (s: T, o: U) => R): OptionSome<R>;\n\tpublic zipWith<U, R>(other: Option<U>, f: (s: T, o: U) => R): Option<R>;\n\tpublic zipWith<U, R>(other: Option<U>, f: (s: T, o: U) => R): Option<R> {\n\t\treturn other.map((o) => f(this.value, o));\n\t}\n\n\tpublic unzip<I, U>(this: OptionSome<readonly [I, U]>): [OptionSome<I>, OptionSome<U>] {\n\t\tconst [s, o] = this.value;\n\t\treturn [createSome(s), createSome(o)];\n\t}\n\n\tpublic transpose<Inner>(this: OptionSome<ResultOk<Inner>>): ResultOk<OptionSome<Inner>>;\n\tpublic transpose<Inner>(this: OptionSome<ResultErr<Inner>>): ResultErr<OptionSome<Inner>>;\n\tpublic transpose<IT, E>(this: OptionSome<Result<IT, E>>): Result<OptionSome<IT>, E>;\n\tpublic transpose<IT, E>(this: OptionSome<Result<IT, E>>): Result<OptionSome<IT>, E> {\n\t\treturn this.value.match({\n\t\t\tok: (v) => createOk(createSome(v)),\n\t\t\terr: (e) => createErr(e)\n\t\t});\n\t}\n\n\tpublic flatten<Inner extends Option<any>>(this: OptionSome<Inner>): Inner {\n\t\treturn this.value;\n\t}\n\n\tpublic async intoPromise(): Promise<OptionSome<Awaited<T>>> {\n\t\treturn createSome(await this.value);\n\t}\n\n\tpublic eq(other: OptionNone): false;\n\tpublic eq(other: Option<T>): boolean;\n\tpublic eq(other: Option<T>): boolean {\n\t\treturn other.isSomeAnd((value) => this.value === value);\n\t}\n\n\tpublic ne(other: OptionNone): true;\n\tpublic ne(other: Option<T>): boolean;\n\tpublic ne(other: Option<T>): boolean {\n\t\treturn !this.eq(other);\n\t}\n\n\tpublic match<SomeValue, NoneValue>(branches: { some(value: T): SomeValue; none(): NoneValue }): SomeValue {\n\t\treturn branches.some(this.value);\n\t}\n\n\tpublic *[Symbol.iterator](): Generator<T> {\n\t\tyield this.value;\n\t}\n}\n\nexport function createSome<T>(value: T): OptionSome<T> {\n\treturn new OptionSome<T>(value);\n}\n","import type { Awaitable } from '../common/utils';\nimport { createNone, type OptionNone } from '../Option/None';\nimport { createSome, type OptionSome } from '../Option/Some';\nimport type { Result } from '../Result';\nimport type { IResult } from './IResult';\nimport type { ResultOk } from './Ok';\nimport { ResultError } from './ResultError';\n\nexport class ResultErr<E> implements IResult<any, E> {\n\tprivate readonly error: E;\n\n\tpublic constructor(error: E) {\n\t\tthis.error = error;\n\t}\n\n\tpublic isOk(): false {\n\t\treturn false;\n\t}\n\n\tpublic isOkAnd(cb?: (value: never) => boolean): false;\n\tpublic isOkAnd(): false {\n\t\treturn false;\n\t}\n\n\tpublic isErr(): this is ResultErr<E> {\n\t\treturn true;\n\t}\n\n\tpublic isErrAnd(cb: (error: E) => boolean): boolean {\n\t\treturn cb(this.error);\n\t}\n\n\tpublic ok(): OptionNone {\n\t\treturn createNone;\n\t}\n\n\tpublic err(): OptionSome<E> {\n\t\treturn createSome(this.error);\n\t}\n\n\tpublic map(cb?: (value: never) => unknown): this;\n\tpublic map(): this {\n\t\treturn this;\n\t}\n\n\tpublic mapInto(cb: (value: never) => Result<any, any>): this;\n\tpublic mapInto(): this {\n\t\treturn this;\n\t}\n\n\tpublic mapOr<U>(defaultValue: U, cb?: (value: never) => U): U;\n\tpublic mapOr<U>(defaultValue: U): U {\n\t\treturn defaultValue;\n\t}\n\n\tpublic mapOrElse<U>(op: (error: E) => U, cb?: (value: never) => U): U;\n\tpublic mapOrElse<U>(op: (error: E) => U): U {\n\t\treturn op(this.error);\n\t}\n\n\tpublic mapErr<F>(cb: (error: E) => F): ResultErr<F> {\n\t\treturn createErr(cb(this.error));\n\t}\n\n\tpublic mapErrInto<R extends Result<any, any>>(cb: (error: E) => R): R {\n\t\treturn cb(this.error);\n\t}\n\n\tpublic inspect(cb?: (value: never) => void): this;\n\tpublic inspect(): this {\n\t\treturn this;\n\t}\n\n\tpublic inspectAsync(cb?: (value: never) => Awaitable<unknown>): Promise<this>;\n\tpublic inspectAsync(): Promise<this> {\n\t\treturn Promise.resolve(this);\n\t}\n\n\tpublic inspectErr(cb: (error: E) => void): this {\n\t\tcb(this.error);\n\t\treturn this;\n\t}\n\n\tpublic async inspectErrAsync(cb: (error: E) => Awaitable<unknown>): Promise<this> {\n\t\tawait cb(this.error);\n\t\treturn this;\n\t}\n\n\tpublic *iter(): Generator<never> {\n\t\t// Yields no values\n\t}\n\n\tpublic expect(message: string): never {\n\t\tthrow new ResultError(message, this.error);\n\t}\n\n\tpublic expectErr(message?: string): E;\n\tpublic expectErr(): E {\n\t\treturn this.error;\n\t}\n\n\tpublic unwrap(): never {\n\t\tthrow new ResultError('Unwrap failed', this.error);\n\t}\n\n\tpublic unwrapErr(): E {\n\t\treturn this.error;\n\t}\n\n\tpublic unwrapOr<T>(defaultValue: T): T {\n\t\treturn defaultValue;\n\t}\n\n\tpublic unwrapOrElse<T>(op: (error: E) => T): T {\n\t\treturn op(this.error);\n\t}\n\n\tpublic unwrapRaw(): never {\n\t\t// eslint-disable-next-line @typescript-eslint/no-throw-literal\n\t\tthrow this.error;\n\t}\n\n\tpublic and(result?: Result<any, E>): this;\n\tpublic and(): this {\n\t\treturn this;\n\t}\n\n\tpublic andThen(cb?: (value: never) => Result<any, E>): this;\n\tpublic andThen(): this {\n\t\treturn this;\n\t}\n\n\tpublic or<R extends Result<any, any>>(result: R): R {\n\t\treturn result;\n\t}\n\n\tpublic orElse<R extends Result<any, any>>(cb: (error: E) => R): R {\n\t\treturn cb(this.error);\n\t}\n\n\tpublic contains(value?: any): false;\n\tpublic contains(): false {\n\t\treturn false;\n\t}\n\n\tpublic containsErr(error: E): boolean {\n\t\treturn this.error === error;\n\t}\n\n\tpublic transpose(): OptionSome<this> {\n\t\treturn createSome(this);\n\t}\n\n\tpublic flatten(): this {\n\t\treturn this;\n\t}\n\n\tpublic intoOkOrErr(): E {\n\t\treturn this.error;\n\t}\n\n\tpublic async intoPromise(): Promise<ResultErr<Awaited<E>>> {\n\t\treturn createErr(await this.error);\n\t}\n\n\tpublic eq(other: ResultOk<any>): false;\n\tpublic eq(other: Result<any, E>): boolean;\n\tpublic eq(other: Result<any, E>): boolean {\n\t\treturn other.isErrAnd((error) => this.error === error);\n\t}\n\n\tpublic ne(other: ResultOk<any>): true;\n\tpublic ne(other: Result<any, E>): boolean;\n\tpublic ne(other: Result<any, E>): boolean {\n\t\treturn !this.eq(other);\n\t}\n\n\tpublic match<OkValue, ErrValue>(branches: { ok(value: never): OkValue; err(error: E): ErrValue }): ErrValue {\n\t\treturn branches.err(this.error);\n\t}\n\n\tpublic *[Symbol.iterator](): Generator<never> {\n\t\t// Yields no values\n\t}\n}\n\n/**\n * Creates an Err with no error.\n * @return An erroneous Result.\n */\nexport function createErr(): ResultErr<unknown>;\n\n/**\n * Creates an Err.\n * @typeparam E The error's type.\n * @param x Value to use.\n * @return An erroneous Result.\n */\nexport function createErr<E>(x: E): ResultErr<E>;\nexport function createErr<E>(x?: E): ResultErr<unknown> {\n\treturn new ResultErr(x);\n}\n","export class OptionError extends Error {\n\tpublic override get name(): string {\n\t\treturn this.constructor.name;\n\t}\n}\n","import type { Awaitable } from '../common/utils';\nimport type { Option } from '../Option';\nimport { createErr, type ResultErr } from '../Result/Err';\nimport { createOk, type ResultOk } from '../Result/Ok';\nimport type { IOption } from './IOption';\nimport { OptionError } from './OptionError';\nimport type { OptionSome } from './Some';\n\nexport class OptionNone implements IOption<any> {\n\tpublic isSome(): false {\n\t\treturn false;\n\t}\n\n\tpublic isSomeAnd(cb?: (value: never) => boolean): false;\n\tpublic isSomeAnd(): false {\n\t\treturn false;\n\t}\n\n\tpublic isNone(): this is OptionNone {\n\t\treturn true;\n\t}\n\n\tpublic expect(message: string): never {\n\t\tthrow new OptionError(message);\n\t}\n\n\tpublic unwrap(): never {\n\t\tthrow new OptionError('Unwrap failed');\n\t}\n\n\tpublic unwrapOr<R>(defaultValue: R): R {\n\t\treturn defaultValue;\n\t}\n\n\tpublic unwrapOrElse<R>(cb: () => R): R {\n\t\treturn cb();\n\t}\n\n\tpublic map(cb: (value: never) => any): this;\n\tpublic map(): this {\n\t\treturn this;\n\t}\n\n\tpublic mapInto(cb: (value: never) => Option<any>): this;\n\tpublic mapInto(): this {\n\t\treturn this;\n\t}\n\n\tpublic mapOr<R>(defaultValue: R, cb?: (value: never) => R): R;\n\tpublic mapOr<R>(defaultValue: R): R {\n\t\treturn defaultValue;\n\t}\n\n\tpublic mapOrElse<R>(defaultValue: () => R, cb?: (value: never) => R): R;\n\tpublic mapOrElse<R>(defaultValue: () => R): R {\n\t\treturn defaultValue();\n\t}\n\n\tpublic mapNoneInto<R extends Option<any>>(cb: () => R): R {\n\t\treturn cb();\n\t}\n\n\tpublic inspect(cb?: (value: never) => void): this;\n\tpublic inspect(): this {\n\t\treturn this;\n\t}\n\n\tpublic inspectAsync(cb?: (value: never) => Awaitable<unknown>): Promise<this>;\n\tpublic inspectAsync(): Promise<this> {\n\t\treturn Promise.resolve(this);\n\t}\n\n\tpublic okOr<E>(error: E): ResultErr<E> {\n\t\treturn createErr(error);\n\t}\n\n\tpublic okOrElse<E>(cb: () => E): ResultErr<E> {\n\t\treturn createErr(cb());\n\t}\n\n\tpublic *iter(): Generator<never> {\n\t\t// Yields no values\n\t}\n\n\tpublic and(option: Option<any>): this;\n\tpublic and(): this {\n\t\treturn this;\n\t}\n\n\tpublic andThen(cb: (value: never) => Option<any>): this;\n\tpublic andThen(): this {\n\t\treturn this;\n\t}\n\n\tpublic or<R extends Option<any>>(option: R): R {\n\t\treturn option;\n\t}\n\n\tpublic orElse<R extends Option<any>>(cb: () => R): R {\n\t\treturn cb();\n\t}\n\n\tpublic xor<T>(option: OptionNone): OptionNone;\n\tpublic xor<T>(option: OptionSome<T>): OptionSome<T>;\n\tpublic xor<T>(option: Option<T>): OptionSome<T> | OptionNone;\n\tpublic xor<T>(option: OptionSome<T> | OptionNone): OptionSome<T> | OptionNone {\n\t\treturn option.isSome() ? option : this;\n\t}\n\n\tpublic filter(predicate: (value: never) => boolean): OptionNone;\n\tpublic filter(): OptionNone {\n\t\treturn this;\n\t}\n\n\tpublic contains(value?: any): false;\n\tpublic contains(): false {\n\t\treturn false;\n\t}\n\n\tpublic zip(other: Option<any>): OptionNone;\n\tpublic zip(): OptionNone {\n\t\treturn this;\n\t}\n\n\tpublic zipWith(other: Option<any>, f: (s: never, o: never) => any): OptionNone;\n\tpublic zipWith(): OptionNone {\n\t\treturn this;\n\t}\n\n\tpublic unzip(): [OptionNone, OptionNone] {\n\t\treturn [this, this];\n\t}\n\n\tpublic transpose(): ResultOk<OptionNone> {\n\t\treturn createOk(this);\n\t}\n\n\tpublic flatten(): OptionNone {\n\t\treturn this;\n\t}\n\n\tpublic intoPromise(): Promise<OptionNone> {\n\t\treturn Promise.resolve(createNone);\n\t}\n\n\tpublic eq(other: OptionNone): true;\n\tpublic eq(other: OptionSome<any>): false;\n\tpublic eq(other: Option<any>): boolean;\n\tpublic eq(other: Option<any>): boolean {\n\t\treturn other.isNone();\n\t}\n\n\tpublic ne(other: OptionNone): false;\n\tpublic ne(other: OptionSome<any>): true;\n\tpublic ne(other: Option<any>): boolean;\n\tpublic ne(other: Option<any>): boolean {\n\t\treturn other.isSome();\n\t}\n\n\tpublic match<SomeValue, NoneValue>(branches: { some(value: never): SomeValue; none(): NoneValue }): NoneValue {\n\t\treturn branches.none();\n\t}\n\n\tpublic *[Symbol.iterator](): Generator<never> {\n\t\t// Yields no values\n\t}\n}\n\nexport const createNone = new OptionNone();\n","import { isFunction, type Awaitable } from './common/utils';\nimport { createNone, OptionNone } from './Option/None';\nimport { createSome, OptionSome } from './Option/Some';\n\nexport type * from './Option/IOption';\nexport * from './Option/OptionError';\nexport { createSome as some, createNone as none, type OptionNone as None, type OptionSome as Some };\n\n/**\n * The union of the two variations of `Option`.\n * @typeparam T The value's type.\n */\nexport type Option<T> = Option.Some<T> | Option.None;\n\nexport namespace Option {\n\texport type Resolvable<T> = T | null | undefined | Option<T>;\n\tfunction resolve<T>(value: Resolvable<T>) {\n\t\tif (value === null || value === undefined) return none;\n\t\tif (is(value)) return value;\n\t\treturn some(value);\n\t}\n\n\texport function is<T>(value: Option<T>): true;\n\texport function is(value: any): value is Option<unknown>;\n\texport function is(value: any) {\n\t\treturn value instanceof OptionNone || value instanceof OptionSome;\n\t}\n\n\t/**\n\t * Creates an {@link Option} out of a value or callback.\n\t * @typeparam T The result's type.\n\t */\n\texport function from<T>(op: Resolvable<T> | (() => Resolvable<T>)): Option<T> {\n\t\tif (!isFunction(op)) return resolve(op);\n\n\t\ttry {\n\t\t\treturn resolve(op());\n\t\t} catch {\n\t\t\treturn none;\n\t\t}\n\t}\n\n\t/**\n\t * Creates an {@link Option} out of a value or callback.\n\t * @typeparam T The result's type.\n\t */\n\texport async function fromAsync<T>(op: Awaitable<Resolvable<T>> | (() => Awaitable<Resolvable<T>>)): Promise<Option<T>> {\n\t\ttry {\n\t\t\treturn resolve(await (isFunction(op) ? op() : op));\n\t\t} catch {\n\t\t\treturn none;\n\t\t}\n\t}\n\n\t/**\n\t * Creates a {@link Some} that is the combination of all collected {@link Some} values as an array, or the first\n\t * {@link None} encountered.\n\t * @param options An array of {@link Option}s.\n\t * @returns A new {@link Option}.\n\t */\n\texport function all<T extends readonly Option<any>[]>(options: [...T]): Option<UnwrapSomeArray<T>> {\n\t\tconst values: unknown[] = [];\n\t\tfor (const option of options) {\n\t\t\tif (option.isNone()) {\n\t\t\t\treturn option;\n\t\t\t}\n\n\t\t\tvalues.push(option.unwrap());\n\t\t}\n\n\t\treturn some(values as UnwrapSomeArray<T>);\n\t}\n\n\t/**\n\t * Returns the first encountered {@link Some}, or a {@link None} if none was found.\n\t * @param options An array of {@link Option}s.\n\t * @returns A new {@link Option}.\n\t */\n\texport function any<T extends readonly Option<any>[]>(options: [...T]): Option<UnwrapSomeArray<T>[number]> {\n\t\tfor (const result of options) {\n\t\t\tif (result.isSome()) {\n\t\t\t\treturn result;\n\t\t\t}\n\t\t}\n\n\t\treturn none;\n\t}\n\n\texport const none = createNone;\n\texport const some = createSome;\n\n\texport type Some<T> = OptionSome<T>;\n\texport type None = OptionNone;\n\n\texport type UnwrapSome<T extends Option<any>> = T extends Some<infer S> ? S : never;\n\texport type UnwrapSomeArray<T extends readonly Option<any>[] | []> = {\n\t\t-readonly [P in keyof T]: UnwrapSome<T[P]>;\n\t};\n}\n","import { isFunction, type Awaitable } from './common/utils';\nimport { createErr, ResultErr } from './Result/Err';\nimport { createOk, ResultOk } from './Result/Ok';\n\nexport type * from './Result/IResult';\nexport * from './Result/ResultError';\nexport { createOk as ok, createErr as err, type ResultOk as Ok, type ResultErr as Err };\n\n/**\n * The union of the two variations of `Result`.\n * @typeparam T The result's type.\n * @typeparam E The error's type.\n */\nexport type Result<T, E> = Result.Ok<T> | Result.Err<E>;\n\nexport namespace Result {\n\texport type Resolvable<T, E> = T | Result<T, E>;\n\tfunction resolve<T, E>(value: Resolvable<T, E>) {\n\t\tif (is(value)) return value;\n\t\treturn ok(value);\n\t}\n\n\texport function is<T, E>(value: Result<T, E>): true;\n\texport function is(value: any): value is Result<unknown, unknown>;\n\texport function is(value: any) {\n\t\treturn value instanceof ResultOk || value instanceof ResultErr;\n\t}\n\n\t/**\n\t * Creates a {@link Result} out of a callback.\n\t * @typeparam T The result's type.\n\t * @typeparam E The error's type.\n\t */\n\texport function from<T, E = unknown>(op: Resolvable<T, E> | (() => Resolvable<T, E>)): Result<T, E> {\n\t\tif (!isFunction(op)) return resolve(op);\n\n\t\ttry {\n\t\t\treturn resolve(op());\n\t\t} catch (error) {\n\t\t\treturn err(error as E);\n\t\t}\n\t}\n\n\t/**\n\t * Creates a {@link Result} out of a promise or async callback.\n\t * @typeparam T The result's type.\n\t * @typeparam E The error's type.\n\t */\n\texport async function fromAsync<T, E = unknown>(op: Awaitable<Resolvable<T, E>> | (() => Awaitable<Resolvable<T, E>>)): Promise<Result<T, E>> {\n\t\ttry {\n\t\t\treturn resolve(await (isFunction(op) ? op() : op));\n\t\t} catch (error) {\n\t\t\treturn err(error as E);\n\t\t}\n\t}\n\n\t/**\n\t * Creates an {@link Ok} that is the combination of all collected {@link Ok} values as an array, or the first\n\t * {@link Err} encountered.\n\t * @param results An array of {@link Result}s.\n\t * @returns A new {@link Result}.\n\t */\n\texport function all<T extends readonly Result<any, any>[]>(results: [...T]): Result<UnwrapOkArray<T>, UnwrapErrArray<T>[number]> {\n\t\tconst values: unknown[] = [];\n\t\tfor (const result of results) {\n\t\t\tif (result.isErr()) {\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\tvalues.push(result.unwrap());\n\t\t}\n\n\t\treturn ok(values as UnwrapOkArray<T>);\n\t}\n\n\t/**\n\t * Returns the first encountered {@link Ok}, or an {@link Err} that is the combination of all collected error values.\n\t * @param results An array of {@link Result}s.\n\t * @returns A new {@link Result}.\n\t */\n\texport function any<T extends readonly Result<any, any>[]>(results: [...T]): Result<UnwrapOkArray<T>[number], UnwrapErrArray<T>> {\n\t\tconst errors: unknown[] = [];\n\t\tfor (const result of results) {\n\t\t\tif (result.isOk()) {\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\terrors.push(result.unwrapErr());\n\t\t}\n\n\t\treturn err(errors as UnwrapErrArray<T>);\n\t}\n\n\texport const err = createErr;\n\texport const ok = createOk;\n\n\texport type Err<E> = ResultErr<E>;\n\texport type Ok<T> = ResultOk<T>;\n\n\texport type UnwrapOk<T extends Result<any, any>> = T extends Ok<infer S> ? S : never;\n\texport type UnwrapErr<T extends Result<any, any>> = T extends Err<infer S> ? S : never;\n\n\texport type UnwrapOkArray<T extends readonly Result<any, any>[] | []> = {\n\t\t-readonly [P in keyof T]: UnwrapOk<T[P]>;\n\t};\n\texport type UnwrapErrArray<T extends readonly Result<any, any>[] | []> = {\n\t\t-readonly [P in keyof T]: UnwrapErr<T[P]>;\n\t};\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/lib/common/utils.ts","../../src/lib/Result/ResultError.ts","../../src/lib/Result/Ok.ts","../../src/lib/Option/Some.ts","../../src/lib/Result/Err.ts","../../src/lib/Option/OptionError.ts","../../src/lib/Option/None.ts","../../src/lib/Option.ts","../../src/lib/Result.ts"],"names":["Option","Result"],"mappings":"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","file":"index.global.js","sourcesContent":["export type Awaitable<T> = PromiseLike<T> | T;\n\nexport function isFunction<A extends readonly any[], R>(cb: (...args: A) => R): true;\nexport function isFunction(input: any): input is (...args: readonly any[]) => any;\nexport function isFunction(input: any) {\n\treturn typeof input === 'function';\n}\n\nexport function isPromise<T>(input: PromiseLike<T>): true;\nexport function isPromise(input: any): input is PromiseLike<any>;\nexport function isPromise(input: any) {\n\treturn typeof input === 'object' && input !== null && typeof input.then === 'function';\n}\n","export class ResultError<E> extends Error {\n\tpublic readonly value: E;\n\n\tpublic constructor(message: string, value: E) {\n\t\tsuper(message);\n\t\tthis.value = value;\n\t}\n\n\tpublic override get name(): string {\n\t\treturn this.constructor.name;\n\t}\n}\n","import type { Awaitable } from '../common/utils';\nimport type { Option } from '../Option';\nimport { createNone, type OptionNone } from '../Option/None';\nimport { createSome, type OptionSome } from '../Option/Some';\nimport type { Result } from '../Result';\nimport type { ResultErr } from './Err';\nimport type { IResult } from './IResult';\nimport { ResultError } from './ResultError';\n\nexport class ResultOk<T> implements IResult<T, any> {\n\tprivate readonly value: T;\n\n\tpublic constructor(value: T) {\n\t\tthis.value = value;\n\t}\n\n\tpublic isOk(): this is ResultOk<T> {\n\t\treturn true;\n\t}\n\n\tpublic isOkAnd<R extends boolean>(cb: (value: T) => R): R {\n\t\treturn cb(this.value);\n\t}\n\n\tpublic isErr(): false {\n\t\treturn false;\n\t}\n\n\tpublic isErrAnd(cb?: (error: never) => boolean): false;\n\tpublic isErrAnd(): false {\n\t\treturn false;\n\t}\n\n\tpublic ok(): OptionSome<T> {\n\t\treturn createSome(this.value);\n\t}\n\n\tpublic err(): OptionNone {\n\t\treturn createNone;\n\t}\n\n\tpublic map<U>(cb: (value: T) => U): ResultOk<U> {\n\t\treturn createOk(cb(this.value));\n\t}\n\n\tpublic mapInto<R extends Result<any, any>>(cb: (value: T) => R): R {\n\t\treturn cb(this.value);\n\t}\n\n\tpublic mapOr<U>(_: U, cb: (value: T) => U): U {\n\t\treturn cb(this.value);\n\t}\n\n\tpublic mapOrElse<U>(_: (error: never) => U, cb: (value: T) => U): U {\n\t\treturn cb(this.value);\n\t}\n\n\tpublic mapErr(cb?: (error: never) => any): this;\n\tpublic mapErr(): this {\n\t\treturn this;\n\t}\n\n\tpublic mapErrInto(cb: (error: never) => Result<any, any>): this;\n\tpublic mapErrInto(): this {\n\t\treturn this;\n\t}\n\n\tpublic inspect(cb: (value: T) => void): this {\n\t\tcb(this.value);\n\t\treturn this;\n\t}\n\n\tpublic async inspectAsync(cb: (value: T) => Awaitable<unknown>): Promise<this> {\n\t\tawait cb(this.value);\n\t\treturn this;\n\t}\n\n\tpublic inspectErr(cb?: (error: never) => void): this;\n\tpublic inspectErr(): this {\n\t\treturn this;\n\t}\n\n\tpublic inspectErrAsync(cb?: (error: never) => Awaitable<unknown>): Promise<this>;\n\tpublic inspectErrAsync(): Promise<this> {\n\t\treturn Promise.resolve(this);\n\t}\n\n\tpublic *iter(): Generator<T> {\n\t\tyield this.value;\n\t}\n\n\tpublic expect(message?: string): T;\n\tpublic expect(): T {\n\t\treturn this.value;\n\t}\n\n\tpublic expectErr(message: string): never {\n\t\tthrow new ResultError(message, this.value);\n\t}\n\n\tpublic unwrap(): T {\n\t\treturn this.value;\n\t}\n\n\tpublic unwrapErr(): never {\n\t\tthrow new ResultError('Unwrap failed', this.value);\n\t}\n\n\tpublic unwrapOr(defaultValue: unknown): T;\n\tpublic unwrapOr(): T {\n\t\treturn this.value;\n\t}\n\n\tpublic unwrapOrElse(op: (error: any) => unknown): T;\n\tpublic unwrapOrElse(): T {\n\t\treturn this.value;\n\t}\n\n\tpublic unwrapRaw(): T {\n\t\treturn this.value;\n\t}\n\n\tpublic and<R extends Result<any, any>>(result: R): R {\n\t\treturn result;\n\t}\n\n\tpublic andThen<R extends Result<any, any>>(cb: (value: T) => R): R {\n\t\treturn cb(this.value);\n\t}\n\n\tpublic or(result: Result<T, any>): this;\n\tpublic or(): this {\n\t\treturn this;\n\t}\n\n\tpublic orElse(cb: (error: never) => Result<T, any>): this;\n\tpublic orElse(): this {\n\t\treturn this;\n\t}\n\n\tpublic contains(value: T): boolean {\n\t\treturn this.value === value;\n\t}\n\n\tpublic containsErr(error?: unknown): false;\n\tpublic containsErr(): false {\n\t\treturn false;\n\t}\n\n\tpublic transpose(this: ResultOk<OptionNone>): OptionNone;\n\tpublic transpose<Inner>(this: ResultOk<OptionSome<Inner>>): OptionSome<ResultOk<Inner>>;\n\tpublic transpose<Inner>(this: ResultOk<Option<Inner>>): Option<ResultOk<Inner>>;\n\tpublic transpose<IT>(this: ResultOk<Option<IT>>): Option<ResultOk<IT>> {\n\t\treturn this.value.match({\n\t\t\tsome: (value) => createSome(createOk(value)),\n\t\t\tnone: () => createNone\n\t\t});\n\t}\n\n\tpublic flatten<Inner extends Result<any, any>>(this: ResultOk<Inner>): Inner {\n\t\treturn this.value;\n\t}\n\n\tpublic intoOkOrErr() {\n\t\treturn this.value;\n\t}\n\n\tpublic async intoPromise(): Promise<ResultOk<Awaited<T>>> {\n\t\treturn createOk(await this.value);\n\t}\n\n\tpublic eq(other: ResultErr<any>): false;\n\tpublic eq(other: Result<T, any>): boolean;\n\tpublic eq(other: Result<T, any>): boolean {\n\t\treturn other.isOkAnd((value) => this.value === value);\n\t}\n\n\tpublic ne(other: ResultErr<any>): true;\n\tpublic ne(other: Result<T, any>): boolean;\n\tpublic ne(other: Result<T, any>): boolean {\n\t\treturn !this.eq(other);\n\t}\n\n\tpublic match<OkValue, ErrValue>(branches: { ok(value: T): OkValue; err(error: never): ErrValue }): OkValue {\n\t\treturn branches.ok(this.value);\n\t}\n\n\tpublic *[Symbol.iterator](): Generator<T> {\n\t\tyield this.value;\n\t}\n}\n\n/**\n * Creates an Ok with no value.\n * @return A successful Result.\n */\nexport function createOk(): ResultOk<unknown>;\n\n/**\n * Creates an Ok.\n * @typeparam T The result's type.\n * @param x Value to use.\n * @return A successful Result.\n */\nexport function createOk<T>(x: T): ResultOk<T>;\nexport function createOk<T>(x?: T): ResultOk<T | undefined> {\n\treturn new ResultOk(x);\n}\n","import type { Awaitable } from '../common/utils';\nimport type { Option } from '../Option';\nimport type { Result } from '../Result';\nimport { createErr, type ResultErr } from '../Result/Err';\nimport { createOk, type ResultOk } from '../Result/Ok';\nimport type { IOption } from './IOption';\nimport { createNone, type OptionNone } from './None';\n\nexport class OptionSome<T> implements IOption<T> {\n\tprivate readonly value: T;\n\n\tpublic constructor(value: T) {\n\t\tthis.value = value;\n\t}\n\n\tpublic isSome(): this is OptionSome<T> {\n\t\treturn true;\n\t}\n\n\tpublic isSomeAnd<R extends boolean>(cb: (value: T) => R): R {\n\t\treturn cb(this.value);\n\t}\n\n\tpublic isNone(): false {\n\t\treturn false;\n\t}\n\n\tpublic expect(message: string): T;\n\tpublic expect(): T {\n\t\treturn this.value;\n\t}\n\n\tpublic unwrap(): T {\n\t\treturn this.value;\n\t}\n\n\tpublic unwrapOr(defaultValue: unknown): T;\n\tpublic unwrapOr(): T {\n\t\treturn this.value;\n\t}\n\n\tpublic unwrapOrElse(cb: () => unknown): T;\n\tpublic unwrapOrElse(): T {\n\t\treturn this.value;\n\t}\n\n\tpublic map<U>(cb: (value: T) => U): OptionSome<U> {\n\t\treturn createSome(cb(this.value));\n\t}\n\n\tpublic mapInto<R extends Option<any>>(cb: (value: T) => R): R {\n\t\treturn cb(this.value);\n\t}\n\n\tpublic mapOr<U>(_: U, cb: (value: T) => U): U {\n\t\treturn cb(this.value);\n\t}\n\n\tpublic mapOrElse<U>(_: () => U, cb: (value: T) => U): U {\n\t\treturn cb(this.value);\n\t}\n\n\tpublic mapNoneInto(cb: () => Option<any>): this;\n\tpublic mapNoneInto(): this {\n\t\treturn this;\n\t}\n\n\tpublic inspect(cb: (value: T) => void): this {\n\t\tcb(this.value);\n\t\treturn this;\n\t}\n\n\tpublic async inspectAsync(cb: (value: T) => Awaitable<unknown>): Promise<this> {\n\t\tawait cb(this.value);\n\t\treturn this;\n\t}\n\n\tpublic okOr(err?: any): ResultOk<T>;\n\tpublic okOr(): ResultOk<T> {\n\t\treturn createOk(this.value);\n\t}\n\n\tpublic okOrElse(cb: () => any): ResultOk<T>;\n\tpublic okOrElse(): ResultOk<T> {\n\t\treturn createOk(this.value);\n\t}\n\n\tpublic *iter(): Generator<T> {\n\t\tyield this.value;\n\t}\n\n\tpublic and<R extends Option<any>>(option: R): R {\n\t\treturn option;\n\t}\n\n\tpublic andThen<R extends Option<any>>(cb: (value: T) => R): R {\n\t\treturn cb(this.value);\n\t}\n\n\tpublic or(option: Option<any>): this;\n\tpublic or(): this {\n\t\treturn this;\n\t}\n\n\tpublic orElse(cb?: () => Option<any>): this;\n\tpublic orElse(): this {\n\t\treturn this;\n\t}\n\n\tpublic xor(option: OptionSome<T>): OptionNone;\n\tpublic xor(option: OptionNone): this;\n\tpublic xor(option: Option<T>): this | OptionNone;\n\tpublic xor(option: Option<T>): this | OptionNone {\n\t\treturn option.isSome() ? createNone : this;\n\t}\n\n\tpublic filter(predicate: (value: T) => true): this;\n\tpublic filter(predicate: (value: T) => false): OptionNone;\n\tpublic filter(predicate: (value: T) => boolean): this | OptionNone;\n\tpublic filter(predicate: (value: T) => boolean): this | OptionNone {\n\t\treturn predicate(this.value) ? this : createNone;\n\t}\n\n\tpublic contains(value: T): boolean {\n\t\treturn this.value === value;\n\t}\n\n\tpublic zip(other: OptionNone): OptionNone;\n\tpublic zip<U>(other: OptionSome<U>): OptionSome<[T, U]>;\n\tpublic zip<U>(other: Option<U>): Option<[T, U]>;\n\tpublic zip<U>(other: Option<U>): Option<[T, U]> {\n\t\treturn other.map((o) => [this.value, o] as [T, U]);\n\t}\n\n\tpublic zipWith<U, R>(other: OptionNone, f: (s: T, o: U) => R): OptionNone;\n\tpublic zipWith<U, R>(other: OptionSome<U>, f: (s: T, o: U) => R): OptionSome<R>;\n\tpublic zipWith<U, R>(other: Option<U>, f: (s: T, o: U) => R): Option<R>;\n\tpublic zipWith<U, R>(other: Option<U>, f: (s: T, o: U) => R): Option<R> {\n\t\treturn other.map((o) => f(this.value, o));\n\t}\n\n\tpublic unzip<I, U>(this: OptionSome<readonly [I, U]>): [OptionSome<I>, OptionSome<U>] {\n\t\tconst [s, o] = this.value;\n\t\treturn [createSome(s), createSome(o)];\n\t}\n\n\tpublic transpose<Inner>(this: OptionSome<ResultOk<Inner>>): ResultOk<OptionSome<Inner>>;\n\tpublic transpose<Inner>(this: OptionSome<ResultErr<Inner>>): ResultErr<OptionSome<Inner>>;\n\tpublic transpose<IT, E>(this: OptionSome<Result<IT, E>>): Result<OptionSome<IT>, E>;\n\tpublic transpose<IT, E>(this: OptionSome<Result<IT, E>>): Result<OptionSome<IT>, E> {\n\t\treturn this.value.match({\n\t\t\tok: (v) => createOk(createSome(v)),\n\t\t\terr: (e) => createErr(e)\n\t\t});\n\t}\n\n\tpublic flatten<Inner extends Option<any>>(this: OptionSome<Inner>): Inner {\n\t\treturn this.value;\n\t}\n\n\tpublic async intoPromise(): Promise<OptionSome<Awaited<T>>> {\n\t\treturn createSome(await this.value);\n\t}\n\n\tpublic eq(other: OptionNone): false;\n\tpublic eq(other: Option<T>): boolean;\n\tpublic eq(other: Option<T>): boolean {\n\t\treturn other.isSomeAnd((value) => this.value === value);\n\t}\n\n\tpublic ne(other: OptionNone): true;\n\tpublic ne(other: Option<T>): boolean;\n\tpublic ne(other: Option<T>): boolean {\n\t\treturn !this.eq(other);\n\t}\n\n\tpublic match<SomeValue, NoneValue>(branches: { some(value: T): SomeValue; none(): NoneValue }): SomeValue {\n\t\treturn branches.some(this.value);\n\t}\n\n\tpublic *[Symbol.iterator](): Generator<T> {\n\t\tyield this.value;\n\t}\n}\n\nexport function createSome<T>(value: T): OptionSome<T> {\n\treturn new OptionSome<T>(value);\n}\n","import type { Awaitable } from '../common/utils';\nimport { createNone, type OptionNone } from '../Option/None';\nimport { createSome, type OptionSome } from '../Option/Some';\nimport type { Result } from '../Result';\nimport type { IResult } from './IResult';\nimport type { ResultOk } from './Ok';\nimport { ResultError } from './ResultError';\n\nexport class ResultErr<E> implements IResult<any, E> {\n\tprivate readonly error: E;\n\n\tpublic constructor(error: E) {\n\t\tthis.error = error;\n\t}\n\n\tpublic isOk(): false {\n\t\treturn false;\n\t}\n\n\tpublic isOkAnd(cb?: (value: never) => boolean): false;\n\tpublic isOkAnd(): false {\n\t\treturn false;\n\t}\n\n\tpublic isErr(): this is ResultErr<E> {\n\t\treturn true;\n\t}\n\n\tpublic isErrAnd(cb: (error: E) => boolean): boolean {\n\t\treturn cb(this.error);\n\t}\n\n\tpublic ok(): OptionNone {\n\t\treturn createNone;\n\t}\n\n\tpublic err(): OptionSome<E> {\n\t\treturn createSome(this.error);\n\t}\n\n\tpublic map(cb?: (value: never) => unknown): this;\n\tpublic map(): this {\n\t\treturn this;\n\t}\n\n\tpublic mapInto(cb: (value: never) => Result<any, any>): this;\n\tpublic mapInto(): this {\n\t\treturn this;\n\t}\n\n\tpublic mapOr<U>(defaultValue: U, cb?: (value: never) => U): U;\n\tpublic mapOr<U>(defaultValue: U): U {\n\t\treturn defaultValue;\n\t}\n\n\tpublic mapOrElse<U>(op: (error: E) => U, cb?: (value: never) => U): U;\n\tpublic mapOrElse<U>(op: (error: E) => U): U {\n\t\treturn op(this.error);\n\t}\n\n\tpublic mapErr<F>(cb: (error: E) => F): ResultErr<F> {\n\t\treturn createErr(cb(this.error));\n\t}\n\n\tpublic mapErrInto<R extends Result<any, any>>(cb: (error: E) => R): R {\n\t\treturn cb(this.error);\n\t}\n\n\tpublic inspect(cb?: (value: never) => void): this;\n\tpublic inspect(): this {\n\t\treturn this;\n\t}\n\n\tpublic inspectAsync(cb?: (value: never) => Awaitable<unknown>): Promise<this>;\n\tpublic inspectAsync(): Promise<this> {\n\t\treturn Promise.resolve(this);\n\t}\n\n\tpublic inspectErr(cb: (error: E) => void): this {\n\t\tcb(this.error);\n\t\treturn this;\n\t}\n\n\tpublic async inspectErrAsync(cb: (error: E) => Awaitable<unknown>): Promise<this> {\n\t\tawait cb(this.error);\n\t\treturn this;\n\t}\n\n\tpublic *iter(): Generator<never> {\n\t\t// Yields no values\n\t}\n\n\tpublic expect(message: string): never {\n\t\tthrow new ResultError(message, this.error);\n\t}\n\n\tpublic expectErr(message?: string): E;\n\tpublic expectErr(): E {\n\t\treturn this.error;\n\t}\n\n\tpublic unwrap(): never {\n\t\tthrow new ResultError('Unwrap failed', this.error);\n\t}\n\n\tpublic unwrapErr(): E {\n\t\treturn this.error;\n\t}\n\n\tpublic unwrapOr<T>(defaultValue: T): T {\n\t\treturn defaultValue;\n\t}\n\n\tpublic unwrapOrElse<T>(op: (error: E) => T): T {\n\t\treturn op(this.error);\n\t}\n\n\tpublic unwrapRaw(): never {\n\t\t// eslint-disable-next-line @typescript-eslint/no-throw-literal\n\t\tthrow this.error;\n\t}\n\n\tpublic and(result?: Result<any, E>): this;\n\tpublic and(): this {\n\t\treturn this;\n\t}\n\n\tpublic andThen(cb?: (value: never) => Result<any, E>): this;\n\tpublic andThen(): this {\n\t\treturn this;\n\t}\n\n\tpublic or<R extends Result<any, any>>(result: R): R {\n\t\treturn result;\n\t}\n\n\tpublic orElse<R extends Result<any, any>>(cb: (error: E) => R): R {\n\t\treturn cb(this.error);\n\t}\n\n\tpublic contains(value?: any): false;\n\tpublic contains(): false {\n\t\treturn false;\n\t}\n\n\tpublic containsErr(error: E): boolean {\n\t\treturn this.error === error;\n\t}\n\n\tpublic transpose(): OptionSome<this> {\n\t\treturn createSome(this);\n\t}\n\n\tpublic flatten(): this {\n\t\treturn this;\n\t}\n\n\tpublic intoOkOrErr(): E {\n\t\treturn this.error;\n\t}\n\n\tpublic async intoPromise(): Promise<ResultErr<Awaited<E>>> {\n\t\treturn createErr(await this.error);\n\t}\n\n\tpublic eq(other: ResultOk<any>): false;\n\tpublic eq(other: Result<any, E>): boolean;\n\tpublic eq(other: Result<any, E>): boolean {\n\t\treturn other.isErrAnd((error) => this.error === error);\n\t}\n\n\tpublic ne(other: ResultOk<any>): true;\n\tpublic ne(other: Result<any, E>): boolean;\n\tpublic ne(other: Result<any, E>): boolean {\n\t\treturn !this.eq(other);\n\t}\n\n\tpublic match<OkValue, ErrValue>(branches: { ok(value: never): OkValue; err(error: E): ErrValue }): ErrValue {\n\t\treturn branches.err(this.error);\n\t}\n\n\tpublic *[Symbol.iterator](): Generator<never> {\n\t\t// Yields no values\n\t}\n}\n\n/**\n * Creates an Err with no error.\n * @return An erroneous Result.\n */\nexport function createErr(): ResultErr<unknown>;\n\n/**\n * Creates an Err.\n * @typeparam E The error's type.\n * @param x Value to use.\n * @return An erroneous Result.\n */\nexport function createErr<E>(x: E): ResultErr<E>;\nexport function createErr<E>(x?: E): ResultErr<unknown> {\n\treturn new ResultErr(x);\n}\n","export class OptionError extends Error {\n\tpublic override get name(): string {\n\t\treturn this.constructor.name;\n\t}\n}\n","import type { Awaitable } from '../common/utils';\nimport type { Option } from '../Option';\nimport { createErr, type ResultErr } from '../Result/Err';\nimport { createOk, type ResultOk } from '../Result/Ok';\nimport type { IOption } from './IOption';\nimport { OptionError } from './OptionError';\nimport type { OptionSome } from './Some';\n\nexport class OptionNone implements IOption<any> {\n\tpublic isSome(): false {\n\t\treturn false;\n\t}\n\n\tpublic isSomeAnd(cb?: (value: never) => boolean): false;\n\tpublic isSomeAnd(): false {\n\t\treturn false;\n\t}\n\n\tpublic isNone(): this is OptionNone {\n\t\treturn true;\n\t}\n\n\tpublic expect(message: string): never {\n\t\tthrow new OptionError(message);\n\t}\n\n\tpublic unwrap(): never {\n\t\tthrow new OptionError('Unwrap failed');\n\t}\n\n\tpublic unwrapOr<R>(defaultValue: R): R {\n\t\treturn defaultValue;\n\t}\n\n\tpublic unwrapOrElse<R>(cb: () => R): R {\n\t\treturn cb();\n\t}\n\n\tpublic map(cb: (value: never) => any): this;\n\tpublic map(): this {\n\t\treturn this;\n\t}\n\n\tpublic mapInto(cb: (value: never) => Option<any>): this;\n\tpublic mapInto(): this {\n\t\treturn this;\n\t}\n\n\tpublic mapOr<R>(defaultValue: R, cb?: (value: never) => R): R;\n\tpublic mapOr<R>(defaultValue: R): R {\n\t\treturn defaultValue;\n\t}\n\n\tpublic mapOrElse<R>(defaultValue: () => R, cb?: (value: never) => R): R;\n\tpublic mapOrElse<R>(defaultValue: () => R): R {\n\t\treturn defaultValue();\n\t}\n\n\tpublic mapNoneInto<R extends Option<any>>(cb: () => R): R {\n\t\treturn cb();\n\t}\n\n\tpublic inspect(cb?: (value: never) => void): this;\n\tpublic inspect(): this {\n\t\treturn this;\n\t}\n\n\tpublic inspectAsync(cb?: (value: never) => Awaitable<unknown>): Promise<this>;\n\tpublic inspectAsync(): Promise<this> {\n\t\treturn Promise.resolve(this);\n\t}\n\n\tpublic okOr<E>(error: E): ResultErr<E> {\n\t\treturn createErr(error);\n\t}\n\n\tpublic okOrElse<E>(cb: () => E): ResultErr<E> {\n\t\treturn createErr(cb());\n\t}\n\n\tpublic *iter(): Generator<never> {\n\t\t// Yields no values\n\t}\n\n\tpublic and(option: Option<any>): this;\n\tpublic and(): this {\n\t\treturn this;\n\t}\n\n\tpublic andThen(cb: (value: never) => Option<any>): this;\n\tpublic andThen(): this {\n\t\treturn this;\n\t}\n\n\tpublic or<R extends Option<any>>(option: R): R {\n\t\treturn option;\n\t}\n\n\tpublic orElse<R extends Option<any>>(cb: () => R): R {\n\t\treturn cb();\n\t}\n\n\tpublic xor<T>(option: OptionNone): OptionNone;\n\tpublic xor<T>(option: OptionSome<T>): OptionSome<T>;\n\tpublic xor<T>(option: Option<T>): OptionSome<T> | OptionNone;\n\tpublic xor<T>(option: OptionSome<T> | OptionNone): OptionSome<T> | OptionNone {\n\t\treturn option.isSome() ? option : this;\n\t}\n\n\tpublic filter(predicate: (value: never) => boolean): OptionNone;\n\tpublic filter(): OptionNone {\n\t\treturn this;\n\t}\n\n\tpublic contains(value?: any): false;\n\tpublic contains(): false {\n\t\treturn false;\n\t}\n\n\tpublic zip(other: Option<any>): OptionNone;\n\tpublic zip(): OptionNone {\n\t\treturn this;\n\t}\n\n\tpublic zipWith(other: Option<any>, f: (s: never, o: never) => any): OptionNone;\n\tpublic zipWith(): OptionNone {\n\t\treturn this;\n\t}\n\n\tpublic unzip(): [OptionNone, OptionNone] {\n\t\treturn [this, this];\n\t}\n\n\tpublic transpose(): ResultOk<OptionNone> {\n\t\treturn createOk(this);\n\t}\n\n\tpublic flatten(): OptionNone {\n\t\treturn this;\n\t}\n\n\tpublic intoPromise(): Promise<OptionNone> {\n\t\treturn Promise.resolve(createNone);\n\t}\n\n\tpublic eq(other: OptionNone): true;\n\tpublic eq(other: OptionSome<any>): false;\n\tpublic eq(other: Option<any>): boolean;\n\tpublic eq(other: Option<any>): boolean {\n\t\treturn other.isNone();\n\t}\n\n\tpublic ne(other: OptionNone): false;\n\tpublic ne(other: OptionSome<any>): true;\n\tpublic ne(other: Option<any>): boolean;\n\tpublic ne(other: Option<any>): boolean {\n\t\treturn other.isSome();\n\t}\n\n\tpublic match<SomeValue, NoneValue>(branches: { some(value: never): SomeValue; none(): NoneValue }): NoneValue {\n\t\treturn branches.none();\n\t}\n\n\tpublic *[Symbol.iterator](): Generator<never> {\n\t\t// Yields no values\n\t}\n}\n\nexport const createNone = new OptionNone();\n","import { isFunction, type Awaitable } from './common/utils';\nimport { createNone, OptionNone } from './Option/None';\nimport { createSome, OptionSome } from './Option/Some';\n\nexport type * from './Option/IOption';\nexport * from './Option/OptionError';\nexport { createSome as some, createNone as none, type OptionNone as None, type OptionSome as Some };\n\n/**\n * The union of the two variations of `Option`.\n * @typeparam T The value's type.\n */\nexport type Option<T> = Option.Some<T> | Option.None;\n\nexport namespace Option {\n\texport type Resolvable<T> = T | null | undefined | Option<T>;\n\tfunction resolve<T>(value: Resolvable<T>) {\n\t\tif (value === null || value === undefined) return none;\n\t\tif (is(value)) return value;\n\t\treturn some(value);\n\t}\n\n\texport function is<T>(value: Option<T>): true;\n\texport function is(value: any): value is Option<unknown>;\n\texport function is(value: any) {\n\t\treturn value instanceof OptionNone || value instanceof OptionSome;\n\t}\n\n\t/**\n\t * Creates an {@link Option} out of a value or callback.\n\t * @typeparam T The result's type.\n\t */\n\texport function from<T>(op: Resolvable<T> | (() => Resolvable<T>)): Option<T> {\n\t\tif (!isFunction(op)) return resolve(op);\n\n\t\ttry {\n\t\t\treturn resolve(op());\n\t\t} catch {\n\t\t\treturn none;\n\t\t}\n\t}\n\n\t/**\n\t * Creates an {@link Option} out of a value or callback.\n\t * @typeparam T The result's type.\n\t */\n\texport async function fromAsync<T>(op: Awaitable<Resolvable<T>> | (() => Awaitable<Resolvable<T>>)): Promise<Option<T>> {\n\t\ttry {\n\t\t\treturn resolve(await (isFunction(op) ? op() : op));\n\t\t} catch {\n\t\t\treturn none;\n\t\t}\n\t}\n\n\t/**\n\t * Creates a {@link Some} that is the combination of all collected {@link Some} values as an array, or the first\n\t * {@link None} encountered.\n\t * @param options An array of {@link Option}s.\n\t * @returns A new {@link Option}.\n\t */\n\texport function all<T extends readonly Option<any>[]>(options: [...T]): Option<UnwrapSomeArray<T>> {\n\t\tconst values: unknown[] = [];\n\t\tfor (const option of options) {\n\t\t\tif (option.isNone()) {\n\t\t\t\treturn option;\n\t\t\t}\n\n\t\t\tvalues.push(option.unwrap());\n\t\t}\n\n\t\treturn some(values as UnwrapSomeArray<T>);\n\t}\n\n\t/**\n\t * Returns the first encountered {@link Some}, or a {@link None} if none was found.\n\t * @param options An array of {@link Option}s.\n\t * @returns A new {@link Option}.\n\t */\n\texport function any<T extends readonly Option<any>[]>(options: [...T]): Option<UnwrapSomeArray<T>[number]> {\n\t\tfor (const result of options) {\n\t\t\tif (result.isSome()) {\n\t\t\t\treturn result;\n\t\t\t}\n\t\t}\n\n\t\treturn none;\n\t}\n\n\texport const none = createNone;\n\texport const some = createSome;\n\n\texport type Some<T> = OptionSome<T>;\n\texport type None = OptionNone;\n\n\texport type UnwrapSome<T extends Option<any>> = T extends Some<infer S> ? S : never;\n\texport type UnwrapSomeArray<T extends readonly Option<any>[] | []> = {\n\t\t-readonly [P in keyof T]: UnwrapSome<T[P]>;\n\t};\n}\n","import { isFunction, type Awaitable } from './common/utils';\nimport { createErr, ResultErr } from './Result/Err';\nimport { createOk, ResultOk } from './Result/Ok';\n\nexport type * from './Result/IResult';\nexport * from './Result/ResultError';\nexport { createOk as ok, createErr as err, type ResultOk as Ok, type ResultErr as Err };\n\n/**\n * The union of the two variations of `Result`.\n * @typeparam T The result's type.\n * @typeparam E The error's type.\n */\nexport type Result<T, E> = Result.Ok<T> | Result.Err<E>;\n\nexport namespace Result {\n\texport type Resolvable<T, E> = T | Result<T, E>;\n\tfunction resolve<T, E>(value: Resolvable<T, E>) {\n\t\tif (is(value)) return value;\n\t\treturn ok(value);\n\t}\n\n\texport function is<T, E>(value: Result<T, E>): true;\n\texport function is(value: any): value is Result<unknown, unknown>;\n\texport function is(value: any) {\n\t\treturn value instanceof ResultOk || value instanceof ResultErr;\n\t}\n\n\t/**\n\t * Creates a {@link Result} out of a callback.\n\t * @typeparam T The result's type.\n\t * @typeparam E The error's type.\n\t */\n\texport function from<T, E = unknown>(op: Resolvable<T, E> | (() => Resolvable<T, E>)): Result<T, E> {\n\t\tif (!isFunction(op)) return resolve(op);\n\n\t\ttry {\n\t\t\treturn resolve(op());\n\t\t} catch (error) {\n\t\t\treturn err(error as E);\n\t\t}\n\t}\n\n\t/**\n\t * Creates a {@link Result} out of a promise or async callback.\n\t * @typeparam T The result's type.\n\t * @typeparam E The error's type.\n\t */\n\texport async function fromAsync<T, E = unknown>(op: Awaitable<Resolvable<T, E>> | (() => Awaitable<Resolvable<T, E>>)): Promise<Result<T, E>> {\n\t\ttry {\n\t\t\treturn resolve(await (isFunction(op) ? op() : op));\n\t\t} catch (error) {\n\t\t\treturn err(error as E);\n\t\t}\n\t}\n\n\t/**\n\t * Creates an {@link Ok} that is the combination of all collected {@link Ok} values as an array, or the first\n\t * {@link Err} encountered.\n\t * @param results An array of {@link Result}s.\n\t * @returns A new {@link Result}.\n\t */\n\texport function all<T extends readonly Result<any, any>[]>(results: [...T]): Result<UnwrapOkArray<T>, UnwrapErrArray<T>[number]> {\n\t\tconst values: unknown[] = [];\n\t\tfor (const result of results) {\n\t\t\tif (result.isErr()) {\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\tvalues.push(result.unwrap());\n\t\t}\n\n\t\treturn ok(values as UnwrapOkArray<T>);\n\t}\n\n\t/**\n\t * Returns the first encountered {@link Ok}, or an {@link Err} that is the combination of all collected error values.\n\t * @param results An array of {@link Result}s.\n\t * @returns A new {@link Result}.\n\t */\n\texport function any<T extends readonly Result<any, any>[]>(results: [...T]): Result<UnwrapOkArray<T>[number], UnwrapErrArray<T>> {\n\t\tconst errors: unknown[] = [];\n\t\tfor (const result of results) {\n\t\t\tif (result.isOk()) {\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\terrors.push(result.unwrapErr());\n\t\t}\n\n\t\treturn err(errors as UnwrapErrArray<T>);\n\t}\n\n\texport const err = createErr;\n\texport const ok = createOk;\n\n\texport type Err<E> = ResultErr<E>;\n\texport type Ok<T> = ResultOk<T>;\n\n\texport type UnwrapOk<T extends Result<any, any>> = T extends Ok<infer S> ? S : never;\n\texport type UnwrapErr<T extends Result<any, any>> = T extends Err<infer S> ? S : never;\n\n\texport type UnwrapOkArray<T extends readonly Result<any, any>[] | []> = {\n\t\t-readonly [P in keyof T]: UnwrapOk<T[P]>;\n\t};\n\texport type UnwrapErrArray<T extends readonly Result<any, any>[] | []> = {\n\t\t-readonly [P in keyof T]: UnwrapErr<T[P]>;\n\t};\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sapphire/result",
|
|
3
|
-
"version": "2.6.7-next.
|
|
3
|
+
"version": "2.6.7-next.fc35dd86",
|
|
4
4
|
"description": "A TypeScript port of Nightly Rust's Result and Option structs",
|
|
5
5
|
"author": "@sapphire",
|
|
6
6
|
"license": "MIT",
|
|
@@ -25,12 +25,13 @@
|
|
|
25
25
|
"scripts": {
|
|
26
26
|
"test": "vitest run",
|
|
27
27
|
"lint": "eslint src tests --ext ts --fix -c ../../.eslintrc",
|
|
28
|
-
"build": "tsup && yarn build:rename-cjs-index",
|
|
29
|
-
"build:rename-cjs-index": "
|
|
28
|
+
"build": "yarn gen-index && tsup && yarn build:rename-cjs-index",
|
|
29
|
+
"build:rename-cjs-index": "tsx ../../scripts/rename-cjs-index.cts",
|
|
30
30
|
"docs": "typedoc-json-parser",
|
|
31
31
|
"prepack": "yarn build",
|
|
32
32
|
"bump": "cliff-jumper",
|
|
33
|
-
"check-update": "cliff-jumper --dry-run"
|
|
33
|
+
"check-update": "cliff-jumper --dry-run",
|
|
34
|
+
"gen-index": "tsx ../../scripts/gen-index.cts result --write"
|
|
34
35
|
},
|
|
35
36
|
"repository": {
|
|
36
37
|
"type": "git",
|
|
@@ -65,12 +66,13 @@
|
|
|
65
66
|
"access": "public"
|
|
66
67
|
},
|
|
67
68
|
"devDependencies": {
|
|
68
|
-
"@favware/cliff-jumper": "^
|
|
69
|
-
"@vitest/coverage-v8": "^
|
|
70
|
-
"tsup": "^8.
|
|
71
|
-
"
|
|
72
|
-
"typedoc
|
|
73
|
-
"
|
|
74
|
-
"
|
|
69
|
+
"@favware/cliff-jumper": "^4.1.0",
|
|
70
|
+
"@vitest/coverage-v8": "^2.0.5",
|
|
71
|
+
"tsup": "^8.2.4",
|
|
72
|
+
"tsx": "^4.19.0",
|
|
73
|
+
"typedoc": "^0.25.13",
|
|
74
|
+
"typedoc-json-parser": "^10.0.0",
|
|
75
|
+
"typescript": "~5.4.5",
|
|
76
|
+
"vitest": "^2.0.5"
|
|
75
77
|
}
|
|
76
78
|
}
|