@sapphire/result 2.6.7-next.f83936db.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 CHANGED
@@ -7,7 +7,6 @@
7
7
  **A TypeScript port of Nightly Rust's Result and Option structs**
8
8
 
9
9
  [![GitHub](https://img.shields.io/github/license/sapphiredev/utilities)](https://github.com/sapphiredev/utilities/blob/main/LICENSE.md)
10
- [![codecov](https://codecov.io/gh/sapphiredev/utilities/branch/main/graph/badge.svg?token=OEGIV6RFDO)](https://codecov.io/gh/sapphiredev/utilities)
11
10
  [![npm bundle size](https://img.shields.io/bundlephobia/min/@sapphire/result?logo=webpack&style=flat-square)](https://bundlephobia.com/result?p=@sapphire/result)
12
11
  [![npm](https://img.shields.io/npm/v/@sapphire/result?color=crimson&logo=npm&style=flat-square)](https://www.npmjs.com/package/@sapphire/result)
13
12
 
@@ -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
- return Option2.none;
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=out.js.map
652
+ //# sourceMappingURL=index.cjs.map
661
653
  //# sourceMappingURL=index.cjs.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.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"]}
@@ -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
- return Option2.none;
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=out.js.map
645
+ //# sourceMappingURL=index.mjs.map
654
646
  //# sourceMappingURL=index.mjs.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":";;;;;;;;;AAIO,SAAS,WAAW,OAAY;AACtC,SAAO,OAAO,UAAU;AACzB;AAFgB;;;ACJT,IAAM,eAAN,MAAM,qBAAuB,MAAM;AAAA,EAGlC,YAAY,SAAiB,OAAU;AAC7C,UAAM,OAAO;AAHd,wBAAgB;AAIf,SAAK,QAAQ;AAAA,EACd;AAAA,EAEA,IAAoB,OAAe;AAClC,WAAO,KAAK,YAAY;AAAA,EACzB;AACD;AAX0C;AAAnC,IAAM,cAAN;;;ACSA,IAAM,YAAN,MAAM,UAAuC;AAAA,EAG5C,YAAY,OAAU;AAF7B,wBAAiB;AAGhB,SAAK,QAAQ;AAAA,EACd;AAAA,EAEO,OAA4B;AAClC,WAAO;AAAA,EACR;AAAA,EAEO,QAA2B,IAAwB;AACzD,WAAO,GAAG,KAAK,KAAK;AAAA,EACrB;AAAA,EAEO,QAAe;AACrB,WAAO;AAAA,EACR;AAAA,EAGO,WAAkB;AACxB,WAAO;AAAA,EACR;AAAA,EAEO,KAAoB;AAC1B,WAAO,WAAW,KAAK,KAAK;AAAA,EAC7B;AAAA,EAEO,MAAkB;AACxB,WAAO;AAAA,EACR;AAAA,EAEO,IAAO,IAAkC;AAC/C,WAAO,SAAS,GAAG,KAAK,KAAK,CAAC;AAAA,EAC/B;AAAA,EAEO,QAAoC,IAAwB;AAClE,WAAO,GAAG,KAAK,KAAK;AAAA,EACrB;AAAA,EAEO,MAAS,GAAM,IAAwB;AAC7C,WAAO,GAAG,KAAK,KAAK;AAAA,EACrB;AAAA,EAEO,UAAa,GAAwB,IAAwB;AACnE,WAAO,GAAG,KAAK,KAAK;AAAA,EACrB;AAAA,EAGO,SAAe;AACrB,WAAO;AAAA,EACR;AAAA,EAGO,aAAmB;AACzB,WAAO;AAAA,EACR;AAAA,EAEO,QAAQ,IAA8B;AAC5C,OAAG,KAAK,KAAK;AACb,WAAO;AAAA,EACR;AAAA,EAEA,MAAa,aAAa,IAAqD;AAC9E,UAAM,GAAG,KAAK,KAAK;AACnB,WAAO;AAAA,EACR;AAAA,EAGO,aAAmB;AACzB,WAAO;AAAA,EACR;AAAA,EAGO,kBAAiC;AACvC,WAAO,QAAQ,QAAQ,IAAI;AAAA,EAC5B;AAAA,EAEA,CAAQ,OAAqB;AAC5B,UAAM,KAAK;AAAA,EACZ;AAAA,EAGO,SAAY;AAClB,WAAO,KAAK;AAAA,EACb;AAAA,EAEO,UAAU,SAAwB;AACxC,UAAM,IAAI,YAAY,SAAS,KAAK,KAAK;AAAA,EAC1C;AAAA,EAEO,SAAY;AAClB,WAAO,KAAK;AAAA,EACb;AAAA,EAEO,YAAmB;AACzB,UAAM,IAAI,YAAY,iBAAiB,KAAK,KAAK;AAAA,EAClD;AAAA,EAGO,WAAc;AACpB,WAAO,KAAK;AAAA,EACb;AAAA,EAGO,eAAkB;AACxB,WAAO,KAAK;AAAA,EACb;AAAA,EAEO,YAAe;AACrB,WAAO,KAAK;AAAA,EACb;AAAA,EAEO,IAAgC,QAAc;AACpD,WAAO;AAAA,EACR;AAAA,EAEO,QAAoC,IAAwB;AAClE,WAAO,GAAG,KAAK,KAAK;AAAA,EACrB;AAAA,EAGO,KAAW;AACjB,WAAO;AAAA,EACR;AAAA,EAGO,SAAe;AACrB,WAAO;AAAA,EACR;AAAA,EAEO,SAAS,OAAmB;AAClC,WAAO,KAAK,UAAU;AAAA,EACvB;AAAA,EAGO,cAAqB;AAC3B,WAAO;AAAA,EACR;AAAA,EAKO,YAAgE;AACtE,WAAO,KAAK,MAAM,MAAM;AAAA,MACvB,MAAM,CAAC,UAAU,WAAW,SAAS,KAAK,CAAC;AAAA,MAC3C,MAAM,MAAM;AAAA,IACb,CAAC;AAAA,EACF;AAAA,EAEO,UAAsE;AAC5E,WAAO,KAAK;AAAA,EACb;AAAA,EAEO,cAAc;AACpB,WAAO,KAAK;AAAA,EACb;AAAA,EAEA,MAAa,cAA6C;AACzD,WAAO,SAAS,MAAM,KAAK,KAAK;AAAA,EACjC;AAAA,EAIO,GAAG,OAAgC;AACzC,WAAO,MAAM,QAAQ,CAAC,UAAU,KAAK,UAAU,KAAK;AAAA,EACrD;AAAA,EAIO,GAAG,OAAgC;AACzC,WAAO,CAAC,KAAK,GAAG,KAAK;AAAA,EACtB;AAAA,EAEO,MAAyB,UAA2E;AAC1G,WAAO,SAAS,GAAG,KAAK,KAAK;AAAA,EAC9B;AAAA,EAEA,EAAS,OAAO,QAAQ,IAAkB;AACzC,UAAM,KAAK;AAAA,EACZ;AACD;AArLoD;AAA7C,IAAM,WAAN;AAoMA,SAAS,SAAY,GAAgC;AAC3D,SAAO,IAAI,SAAS,CAAC;AACtB;AAFgB;;;ACrMT,IAAM,cAAN,MAAM,YAAoC;AAAA,EAGzC,YAAY,OAAU;AAF7B,wBAAiB;AAGhB,SAAK,QAAQ;AAAA,EACd;AAAA,EAEO,SAAgC;AACtC,WAAO;AAAA,EACR;AAAA,EAEO,UAA6B,IAAwB;AAC3D,WAAO,GAAG,KAAK,KAAK;AAAA,EACrB;AAAA,EAEO,SAAgB;AACtB,WAAO;AAAA,EACR;AAAA,EAGO,SAAY;AAClB,WAAO,KAAK;AAAA,EACb;AAAA,EAEO,SAAY;AAClB,WAAO,KAAK;AAAA,EACb;AAAA,EAGO,WAAc;AACpB,WAAO,KAAK;AAAA,EACb;AAAA,EAGO,eAAkB;AACxB,WAAO,KAAK;AAAA,EACb;AAAA,EAEO,IAAO,IAAoC;AACjD,WAAO,WAAW,GAAG,KAAK,KAAK,CAAC;AAAA,EACjC;AAAA,EAEO,QAA+B,IAAwB;AAC7D,WAAO,GAAG,KAAK,KAAK;AAAA,EACrB;AAAA,EAEO,MAAS,GAAM,IAAwB;AAC7C,WAAO,GAAG,KAAK,KAAK;AAAA,EACrB;AAAA,EAEO,UAAa,GAAY,IAAwB;AACvD,WAAO,GAAG,KAAK,KAAK;AAAA,EACrB;AAAA,EAGO,cAAoB;AAC1B,WAAO;AAAA,EACR;AAAA,EAEO,QAAQ,IAA8B;AAC5C,OAAG,KAAK,KAAK;AACb,WAAO;AAAA,EACR;AAAA,EAEA,MAAa,aAAa,IAAqD;AAC9E,UAAM,GAAG,KAAK,KAAK;AACnB,WAAO;AAAA,EACR;AAAA,EAGO,OAAoB;AAC1B,WAAO,SAAS,KAAK,KAAK;AAAA,EAC3B;AAAA,EAGO,WAAwB;AAC9B,WAAO,SAAS,KAAK,KAAK;AAAA,EAC3B;AAAA,EAEA,CAAQ,OAAqB;AAC5B,UAAM,KAAK;AAAA,EACZ;AAAA,EAEO,IAA2B,QAAc;AAC/C,WAAO;AAAA,EACR;AAAA,EAEO,QAA+B,IAAwB;AAC7D,WAAO,GAAG,KAAK,KAAK;AAAA,EACrB;AAAA,EAGO,KAAW;AACjB,WAAO;AAAA,EACR;AAAA,EAGO,SAAe;AACrB,WAAO;AAAA,EACR;AAAA,EAKO,IAAI,QAAsC;AAChD,WAAO,OAAO,OAAO,IAAI,aAAa;AAAA,EACvC;AAAA,EAKO,OAAO,WAAqD;AAClE,WAAO,UAAU,KAAK,KAAK,IAAI,OAAO;AAAA,EACvC;AAAA,EAEO,SAAS,OAAmB;AAClC,WAAO,KAAK,UAAU;AAAA,EACvB;AAAA,EAKO,IAAO,OAAkC;AAC/C,WAAO,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,CAAW;AAAA,EAClD;AAAA,EAKO,QAAc,OAAkB,GAAiC;AACvE,WAAO,MAAM,IAAI,CAAC,MAAM,EAAE,KAAK,OAAO,CAAC,CAAC;AAAA,EACzC;AAAA,EAEO,QAA+E;AACrF,UAAM,CAAC,GAAG,CAAC,IAAI,KAAK;AACpB,WAAO,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC,CAAC;AAAA,EACrC;AAAA,EAKO,YAA6E;AACnF,WAAO,KAAK,MAAM,MAAM;AAAA,MACvB,IAAI,CAAC,MAAM,SAAS,WAAW,CAAC,CAAC;AAAA,MACjC,KAAK,CAAC,MAAM,UAAU,CAAC;AAAA,IACxB,CAAC;AAAA,EACF;AAAA,EAEO,UAAmE;AACzE,WAAO,KAAK;AAAA,EACb;AAAA,EAEA,MAAa,cAA+C;AAC3D,WAAO,WAAW,MAAM,KAAK,KAAK;AAAA,EACnC;AAAA,EAIO,GAAG,OAA2B;AACpC,WAAO,MAAM,UAAU,CAAC,UAAU,KAAK,UAAU,KAAK;AAAA,EACvD;AAAA,EAIO,GAAG,OAA2B;AACpC,WAAO,CAAC,KAAK,GAAG,KAAK;AAAA,EACtB;AAAA,EAEO,MAA4B,UAAuE;AACzG,WAAO,SAAS,KAAK,KAAK,KAAK;AAAA,EAChC;AAAA,EAEA,EAAS,OAAO,QAAQ,IAAkB;AACzC,UAAM,KAAK;AAAA,EACZ;AACD;AA/KiD;AAA1C,IAAM,aAAN;AAiLA,SAAS,WAAc,OAAyB;AACtD,SAAO,IAAI,WAAc,KAAK;AAC/B;AAFgB;;;ACjLT,IAAM,aAAN,MAAM,WAAwC;AAAA,EAG7C,YAAY,OAAU;AAF7B,wBAAiB;AAGhB,SAAK,QAAQ;AAAA,EACd;AAAA,EAEO,OAAc;AACpB,WAAO;AAAA,EACR;AAAA,EAGO,UAAiB;AACvB,WAAO;AAAA,EACR;AAAA,EAEO,QAA8B;AACpC,WAAO;AAAA,EACR;AAAA,EAEO,SAAS,IAAoC;AACnD,WAAO,GAAG,KAAK,KAAK;AAAA,EACrB;AAAA,EAEO,KAAiB;AACvB,WAAO;AAAA,EACR;AAAA,EAEO,MAAqB;AAC3B,WAAO,WAAW,KAAK,KAAK;AAAA,EAC7B;AAAA,EAGO,MAAY;AAClB,WAAO;AAAA,EACR;AAAA,EAGO,UAAgB;AACtB,WAAO;AAAA,EACR;AAAA,EAGO,MAAS,cAAoB;AACnC,WAAO;AAAA,EACR;AAAA,EAGO,UAAa,IAAwB;AAC3C,WAAO,GAAG,KAAK,KAAK;AAAA,EACrB;AAAA,EAEO,OAAU,IAAmC;AACnD,WAAO,UAAU,GAAG,KAAK,KAAK,CAAC;AAAA,EAChC;AAAA,EAEO,WAAuC,IAAwB;AACrE,WAAO,GAAG,KAAK,KAAK;AAAA,EACrB;AAAA,EAGO,UAAgB;AACtB,WAAO;AAAA,EACR;AAAA,EAGO,eAA8B;AACpC,WAAO,QAAQ,QAAQ,IAAI;AAAA,EAC5B;AAAA,EAEO,WAAW,IAA8B;AAC/C,OAAG,KAAK,KAAK;AACb,WAAO;AAAA,EACR;AAAA,EAEA,MAAa,gBAAgB,IAAqD;AACjF,UAAM,GAAG,KAAK,KAAK;AACnB,WAAO;AAAA,EACR;AAAA,EAEA,CAAQ,OAAyB;AAAA,EAEjC;AAAA,EAEO,OAAO,SAAwB;AACrC,UAAM,IAAI,YAAY,SAAS,KAAK,KAAK;AAAA,EAC1C;AAAA,EAGO,YAAe;AACrB,WAAO,KAAK;AAAA,EACb;AAAA,EAEO,SAAgB;AACtB,UAAM,IAAI,YAAY,iBAAiB,KAAK,KAAK;AAAA,EAClD;AAAA,EAEO,YAAe;AACrB,WAAO,KAAK;AAAA,EACb;AAAA,EAEO,SAAY,cAAoB;AACtC,WAAO;AAAA,EACR;AAAA,EAEO,aAAgB,IAAwB;AAC9C,WAAO,GAAG,KAAK,KAAK;AAAA,EACrB;AAAA,EAEO,YAAmB;AAEzB,UAAM,KAAK;AAAA,EACZ;AAAA,EAGO,MAAY;AAClB,WAAO;AAAA,EACR;AAAA,EAGO,UAAgB;AACtB,WAAO;AAAA,EACR;AAAA,EAEO,GAA+B,QAAc;AACnD,WAAO;AAAA,EACR;AAAA,EAEO,OAAmC,IAAwB;AACjE,WAAO,GAAG,KAAK,KAAK;AAAA,EACrB;AAAA,EAGO,WAAkB;AACxB,WAAO;AAAA,EACR;AAAA,EAEO,YAAY,OAAmB;AACrC,WAAO,KAAK,UAAU;AAAA,EACvB;AAAA,EAEO,YAA8B;AACpC,WAAO,WAAW,IAAI;AAAA,EACvB;AAAA,EAEO,UAAgB;AACtB,WAAO;AAAA,EACR;AAAA,EAEO,cAAiB;AACvB,WAAO,KAAK;AAAA,EACb;AAAA,EAEA,MAAa,cAA8C;AAC1D,WAAO,UAAU,MAAM,KAAK,KAAK;AAAA,EAClC;AAAA,EAIO,GAAG,OAAgC;AACzC,WAAO,MAAM,SAAS,CAAC,UAAU,KAAK,UAAU,KAAK;AAAA,EACtD;AAAA,EAIO,GAAG,OAAgC;AACzC,WAAO,CAAC,KAAK,GAAG,KAAK;AAAA,EACtB;AAAA,EAEO,MAAyB,UAA4E;AAC3G,WAAO,SAAS,IAAI,KAAK,KAAK;AAAA,EAC/B;AAAA,EAEA,EAAS,OAAO,QAAQ,IAAsB;AAAA,EAE9C;AACD;AAhLqD;AAA9C,IAAM,YAAN;AA+LA,SAAS,UAAa,GAA2B;AACvD,SAAO,IAAI,UAAU,CAAC;AACvB;AAFgB;;;ACvMT,IAAM,eAAN,MAAM,qBAAoB,MAAM;AAAA,EACtC,IAAoB,OAAe;AAClC,WAAO,KAAK,YAAY;AAAA,EACzB;AACD;AAJuC;AAAhC,IAAM,cAAN;;;ACQA,IAAM,cAAN,MAAM,YAAmC;AAAA,EACxC,SAAgB;AACtB,WAAO;AAAA,EACR;AAAA,EAGO,YAAmB;AACzB,WAAO;AAAA,EACR;AAAA,EAEO,SAA6B;AACnC,WAAO;AAAA,EACR;AAAA,EAEO,OAAO,SAAwB;AACrC,UAAM,IAAI,YAAY,OAAO;AAAA,EAC9B;AAAA,EAEO,SAAgB;AACtB,UAAM,IAAI,YAAY,eAAe;AAAA,EACtC;AAAA,EAEO,SAAY,cAAoB;AACtC,WAAO;AAAA,EACR;AAAA,EAEO,aAAgB,IAAgB;AACtC,WAAO,GAAG;AAAA,EACX;AAAA,EAGO,MAAY;AAClB,WAAO;AAAA,EACR;AAAA,EAGO,UAAgB;AACtB,WAAO;AAAA,EACR;AAAA,EAGO,MAAS,cAAoB;AACnC,WAAO;AAAA,EACR;AAAA,EAGO,UAAa,cAA0B;AAC7C,WAAO,aAAa;AAAA,EACrB;AAAA,EAEO,YAAmC,IAAgB;AACzD,WAAO,GAAG;AAAA,EACX;AAAA,EAGO,UAAgB;AACtB,WAAO;AAAA,EACR;AAAA,EAGO,eAA8B;AACpC,WAAO,QAAQ,QAAQ,IAAI;AAAA,EAC5B;AAAA,EAEO,KAAQ,OAAwB;AACtC,WAAO,UAAU,KAAK;AAAA,EACvB;AAAA,EAEO,SAAY,IAA2B;AAC7C,WAAO,UAAU,GAAG,CAAC;AAAA,EACtB;AAAA,EAEA,CAAQ,OAAyB;AAAA,EAEjC;AAAA,EAGO,MAAY;AAClB,WAAO;AAAA,EACR;AAAA,EAGO,UAAgB;AACtB,WAAO;AAAA,EACR;AAAA,EAEO,GAA0B,QAAc;AAC9C,WAAO;AAAA,EACR;AAAA,EAEO,OAA8B,IAAgB;AACpD,WAAO,GAAG;AAAA,EACX;AAAA,EAKO,IAAO,QAAgE;AAC7E,WAAO,OAAO,OAAO,IAAI,SAAS;AAAA,EACnC;AAAA,EAGO,SAAqB;AAC3B,WAAO;AAAA,EACR;AAAA,EAGO,WAAkB;AACxB,WAAO;AAAA,EACR;AAAA,EAGO,MAAkB;AACxB,WAAO;AAAA,EACR;AAAA,EAGO,UAAsB;AAC5B,WAAO;AAAA,EACR;AAAA,EAEO,QAAkC;AACxC,WAAO,CAAC,MAAM,IAAI;AAAA,EACnB;AAAA,EAEO,YAAkC;AACxC,WAAO,SAAS,IAAI;AAAA,EACrB;AAAA,EAEO,UAAsB;AAC5B,WAAO;AAAA,EACR;AAAA,EAEO,cAAmC;AACzC,WAAO,QAAQ,QAAQ,UAAU;AAAA,EAClC;AAAA,EAKO,GAAG,OAA6B;AACtC,WAAO,MAAM,OAAO;AAAA,EACrB;AAAA,EAKO,GAAG,OAA6B;AACtC,WAAO,MAAM,OAAO;AAAA,EACrB;AAAA,EAEO,MAA4B,UAA2E;AAC7G,WAAO,SAAS,KAAK;AAAA,EACtB;AAAA,EAEA,EAAS,OAAO,QAAQ,IAAsB;AAAA,EAE9C;AACD;AA9JgD;AAAzC,IAAM,aAAN;AAgKA,IAAM,aAAa,IAAI,WAAW;;;AC1JlC,IAAU;AAAA,CAAV,CAAUA,YAAV;AAEN,WAAS,QAAW,OAAsB;AACzC,QAAI,UAAU,QAAQ,UAAU;AAAW,aAAOA,QAAA;AAClD,QAAI,GAAG,KAAK;AAAG,aAAO;AACtB,eAAOA,QAAA,MAAK,KAAK;AAAA,EAClB;AAJS;AAQF,WAAS,GAAG,OAAY;AAC9B,WAAO,iBAAiB,cAAc,iBAAiB;AAAA,EACxD;AAFO,EAAAA,QAAS;AAAA;AAQT,WAAS,KAAQ,IAAsD;AAC7E,QAAI,CAAC,WAAW,EAAE;AAAG,aAAO,QAAQ,EAAE;AAEtC,QAAI;AACH,aAAO,QAAQ,GAAG,CAAC;AAAA,IACpB,QAAQ;AACP,aAAOA,QAAA;AAAA,IACR;AAAA,EACD;AARO,EAAAA,QAAS;AAAA;AAchB,iBAAsB,UAAa,IAAqF;AACvH,QAAI;AACH,aAAO,QAAQ,OAAO,WAAW,EAAE,IAAI,GAAG,IAAI,GAAG;AAAA,IAClD,QAAQ;AACP,aAAOA,QAAA;AAAA,IACR;AAAA,EACD;AANA,EAAAA,QAAsB;AAAA;AAcf,WAAS,IAAsC,SAA6C;AAClG,UAAM,SAAoB,CAAC;AAC3B,eAAW,UAAU,SAAS;AAC7B,UAAI,OAAO,OAAO,GAAG;AACpB,eAAO;AAAA,MACR;AAEA,aAAO,KAAK,OAAO,OAAO,CAAC;AAAA,IAC5B;AAEA,eAAOA,QAAA,MAAK,MAA4B;AAAA,EACzC;AAXO,EAAAA,QAAS;AAAA;AAkBT,WAAS,IAAsC,SAAqD;AAC1G,eAAW,UAAU,SAAS;AAC7B,UAAI,OAAO,OAAO,GAAG;AACpB,eAAO;AAAA,MACR;AAAA,IACD;AAEA,WAAOA,QAAA;AAAA,EACR;AARO,EAAAA,QAAS;AAAA;AAUT,EAAMA,QAAA,OAAO;AACb,EAAMA,QAAA,OAAO;AAAA,GA3EJ;;;ACCV,IAAU;AAAA,CAAV,CAAUC,YAAV;AAEN,WAAS,QAAc,OAAyB;AAC/C,QAAI,GAAG,KAAK;AAAG,aAAO;AACtB,eAAOA,QAAA,IAAG,KAAK;AAAA,EAChB;AAHS;AAOF,WAAS,GAAG,OAAY;AAC9B,WAAO,iBAAiB,YAAY,iBAAiB;AAAA,EACtD;AAFO,EAAAA,QAAS;AAAA;AAST,WAAS,KAAqB,IAA+D;AACnG,QAAI,CAAC,WAAW,EAAE;AAAG,aAAO,QAAQ,EAAE;AAEtC,QAAI;AACH,aAAO,QAAQ,GAAG,CAAC;AAAA,IACpB,SAAS,OAAO;AACf,iBAAOA,QAAA,KAAI,KAAU;AAAA,IACtB;AAAA,EACD;AARO,EAAAA,QAAS;AAAA;AAehB,iBAAsB,UAA0B,IAA8F;AAC7I,QAAI;AACH,aAAO,QAAQ,OAAO,WAAW,EAAE,IAAI,GAAG,IAAI,GAAG;AAAA,IAClD,SAAS,OAAO;AACf,iBAAOA,QAAA,KAAI,KAAU;AAAA,IACtB;AAAA,EACD;AANA,EAAAA,QAAsB;AAAA;AAcf,WAAS,IAA2C,SAAsE;AAChI,UAAM,SAAoB,CAAC;AAC3B,eAAW,UAAU,SAAS;AAC7B,UAAI,OAAO,MAAM,GAAG;AACnB,eAAO;AAAA,MACR;AAEA,aAAO,KAAK,OAAO,OAAO,CAAC;AAAA,IAC5B;AAEA,eAAOA,QAAA,IAAG,MAA0B;AAAA,EACrC;AAXO,EAAAA,QAAS;AAAA;AAkBT,WAAS,IAA2C,SAAsE;AAChI,UAAM,SAAoB,CAAC;AAC3B,eAAW,UAAU,SAAS;AAC7B,UAAI,OAAO,KAAK,GAAG;AAClB,eAAO;AAAA,MACR;AAEA,aAAO,KAAK,OAAO,UAAU,CAAC;AAAA,IAC/B;AAEA,eAAOA,QAAA,KAAI,MAA2B;AAAA,EACvC;AAXO,EAAAA,QAAS;AAAA;AAaT,EAAMA,QAAA,MAAM;AACZ,EAAMA,QAAA,KAAK;AAAA,GA/EF","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
- return Option2.none;
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=out.js.map
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.f83936db.0",
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": "tsx --tsconfig ../../scripts/tsconfig.json ../../scripts/rename-cjs-index.cts",
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,13 +66,13 @@
65
66
  "access": "public"
66
67
  },
67
68
  "devDependencies": {
68
- "@favware/cliff-jumper": "^3.0.3",
69
- "@vitest/coverage-v8": "^1.6.0",
70
- "tsup": "^8.0.2",
71
- "tsx": "^4.10.5",
69
+ "@favware/cliff-jumper": "^4.1.0",
70
+ "@vitest/coverage-v8": "^2.0.5",
71
+ "tsup": "^8.2.4",
72
+ "tsx": "^4.19.0",
72
73
  "typedoc": "^0.25.13",
73
74
  "typedoc-json-parser": "^10.0.0",
74
- "typescript": "^5.4.5",
75
- "vitest": "^1.6.0"
75
+ "typescript": "~5.4.5",
76
+ "vitest": "^2.0.5"
76
77
  }
77
78
  }