@consolidados/results 0.3.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +129 -10
- package/dist/helpers/match.cjs +24 -42
- package/dist/helpers/match.cjs.map +1 -1
- package/dist/helpers/match.d.cts +9 -17
- package/dist/helpers/match.d.ts +9 -17
- package/dist/helpers/match.js +24 -42
- package/dist/helpers/match.js.map +1 -1
- package/dist/index.cjs +41 -46
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +41 -46
- package/dist/index.js.map +1 -1
- package/dist/option/index.cjs +17 -4
- package/dist/option/index.cjs.map +1 -1
- package/dist/option/index.d.cts +1 -1
- package/dist/option/index.d.ts +1 -1
- package/dist/option/index.js +17 -4
- package/dist/option/index.js.map +1 -1
- package/dist/option/option.cjs +17 -4
- package/dist/option/option.cjs.map +1 -1
- package/dist/option/option.d.cts +2 -2
- package/dist/option/option.d.ts +2 -2
- package/dist/option/option.js +17 -4
- package/dist/option/option.js.map +1 -1
- package/dist/{option-B_KKIecf.d.cts → option-CYCiGxtw.d.cts} +13 -0
- package/dist/{option-B_KKIecf.d.ts → option-CYCiGxtw.d.ts} +13 -0
- package/dist/result/index.cjs +9 -2
- package/dist/result/index.cjs.map +1 -1
- package/dist/result/index.d.cts +1 -1
- package/dist/result/index.d.ts +1 -1
- package/dist/result/index.js +9 -2
- package/dist/result/index.js.map +1 -1
- package/dist/result/result.cjs +9 -2
- package/dist/result/result.cjs.map +1 -1
- package/dist/result/result.d.cts +2 -2
- package/dist/result/result.d.ts +2 -2
- package/dist/result/result.js +9 -2
- package/dist/result/result.js.map +1 -1
- package/dist/types/globals.d.cts +9 -17
- package/dist/types/globals.d.ts +9 -17
- package/package.json +3 -4
package/dist/option/option.cjs
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
// src/result/__internal__/return-types/err.ts
|
|
4
|
+
var TAG = Symbol.for("@consolidados/results.tag");
|
|
4
5
|
var Err = class _Err {
|
|
6
|
+
/** Hidden tag — read by `match()` for O(1) dispatch. */
|
|
7
|
+
[TAG] = "Err";
|
|
5
8
|
error;
|
|
6
9
|
/**
|
|
7
10
|
* Creates a new `Err` instance with the given error value.
|
|
@@ -112,6 +115,7 @@ var Err = class _Err {
|
|
|
112
115
|
};
|
|
113
116
|
|
|
114
117
|
// src/result/__internal__/return-types/ok.ts
|
|
118
|
+
var TAG2 = Symbol.for("@consolidados/results.tag");
|
|
115
119
|
var Ok = class _Ok {
|
|
116
120
|
/**
|
|
117
121
|
* Creates a new `Ok` instance with the given value.
|
|
@@ -120,6 +124,9 @@ var Ok = class _Ok {
|
|
|
120
124
|
constructor(_value) {
|
|
121
125
|
this._value = _value;
|
|
122
126
|
}
|
|
127
|
+
/** Hidden tag — read by `match()` for O(1) dispatch. Symbol-keyed so it
|
|
128
|
+
* doesn't appear in `for...in`, `Object.keys`, or `JSON.stringify`. */
|
|
129
|
+
[TAG2] = "Ok";
|
|
123
130
|
/**
|
|
124
131
|
* Checks if this result is an `Ok`.
|
|
125
132
|
* @returns `true` because this is an `Ok`.
|
|
@@ -227,10 +234,11 @@ function Ok2(value) {
|
|
|
227
234
|
function Err2(error) {
|
|
228
235
|
return new Err(error);
|
|
229
236
|
}
|
|
230
|
-
|
|
231
|
-
|
|
237
|
+
globalThis.Ok = Ok2;
|
|
238
|
+
globalThis.Err = Err2;
|
|
232
239
|
|
|
233
240
|
// src/option/__internal__/return-types/some.ts
|
|
241
|
+
var TAG3 = Symbol.for("@consolidados/results.tag");
|
|
234
242
|
var Some2 = class _Some {
|
|
235
243
|
/**
|
|
236
244
|
* Creates a new `Some` option with the given value.
|
|
@@ -239,6 +247,8 @@ var Some2 = class _Some {
|
|
|
239
247
|
constructor(_value) {
|
|
240
248
|
this._value = _value;
|
|
241
249
|
}
|
|
250
|
+
/** Hidden tag — read by `match()` for O(1) dispatch. */
|
|
251
|
+
[TAG3] = "Some";
|
|
242
252
|
/**
|
|
243
253
|
* Checks if this option is a `Some`.
|
|
244
254
|
* @returns `true` if this option is a `Some`, otherwise `false`.
|
|
@@ -323,7 +333,10 @@ var Some2 = class _Some {
|
|
|
323
333
|
};
|
|
324
334
|
|
|
325
335
|
// src/option/__internal__/return-types/none.ts
|
|
336
|
+
var TAG4 = Symbol.for("@consolidados/results.tag");
|
|
326
337
|
var None3 = class {
|
|
338
|
+
/** Hidden tag — read by `match()` for O(1) dispatch. */
|
|
339
|
+
[TAG4] = "None";
|
|
327
340
|
/**
|
|
328
341
|
* Checks if this option is a `Some`.
|
|
329
342
|
* @returns `false` because this is a `None`.
|
|
@@ -420,8 +433,8 @@ function None2() {
|
|
|
420
433
|
}
|
|
421
434
|
return NONE_INSTANCE;
|
|
422
435
|
}
|
|
423
|
-
|
|
424
|
-
|
|
436
|
+
globalThis.Some = Some3;
|
|
437
|
+
globalThis.None = None2;
|
|
425
438
|
|
|
426
439
|
exports.None = None2;
|
|
427
440
|
exports.Some = Some3;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/result/__internal__/return-types/err.ts","../../src/result/__internal__/return-types/ok.ts","../../src/result/result.ts","../../src/option/__internal__/return-types/some.ts","../../src/option/__internal__/return-types/none.ts","../../src/option/option.ts"],"names":["Ok","Err","Some","None"],"mappings":"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","file":"option.cjs","sourcesContent":["import type { Ok } from \"./ok\";\nimport type { ResultDefinition } from \"./result\";\n\n/**\n * Represents a failed result (`Err`) that contains an error value.\n * @template E The type of the error contained in this `Err`. Can be any type (Error, string, enum, etc).\n */\nexport class Err<E> implements ResultDefinition<never, E> {\n private error: E;\n /**\n * Creates a new `Err` instance with the given error value.\n * @param error The error to wrap in the `Err` instance. Can be any type.\n */\n constructor(error: E) {\n // Store error as-is - conversion is handled by factory function\n this.error = error;\n // Object.setPrototypeOf(this, Err.prototype);\n //\n // if (Error.captureStackTrace) {\n // Error.captureStackTrace(this, Err);\n // }\n }\n\n /**\n * Checks if this result is an `Ok`.\n * @returns `false` because this is an `Err`.\n */\n isOk(): this is Ok<never> {\n return false;\n }\n\n /**\n * Checks if this result is an `Err`.\n * @returns `true` because this is an `Err`.\n */\n isErr(): this is Err<E> {\n return true;\n }\n\n /**\n * Retrieves the value contained in this result. Since this is an `Err`, an error is thrown.\n * @throws An error because `unwrap` is called on an `Err`.\n */\n unwrap(): never {\n throw new Error(\"Called unwrap on an Err value\");\n }\n\n /**\n * Maps the value (if any). Since this is an `Err`, the mapping function is ignored, and the original `Err` is returned.\n * @template U The type of the value (ignored for `Err`).\n * @param _fn The mapping function for values (not used).\n * @returns The original `Err` instance.\n */\n map<U>(_fn: (value: never) => U): ResultDefinition<never, E> {\n return this as unknown as ResultDefinition<never, E>;\n }\n\n /**\n * Maps the error value using a transformation function and returns a new `Result` with the transformed error.\n * @template U The type of the transformed error. Can be any type.\n * @param fn The transformation function to apply to the error value.\n * @returns A new `Err` containing the transformed error.\n */\n mapErr<U>(fn: (err: E) => U): ResultDefinition<never, U> {\n return new Err<U>(fn(this.error)) as unknown as ResultDefinition<never, U>;\n }\n\n /**\n * Applies a transformation function that returns a `Result` to the value (which does not exist) of this `Err`.\n * @template U The type of the value in the resulting `Result`.\n * @template F The type of the error in the resulting `Result`.\n * @param _fn The transformation function (ignored in this implementation).\n * @returns The original `Err` instance cast to the new error type.\n */\n flatMap<U, F = E>(\n _fn: (value: never) => ResultDefinition<U, F>,\n ): ResultDefinition<U, E> {\n return this as unknown as ResultDefinition<U, E>;\n }\n\n /**\n * Retrieves the error value contained in this `Err`.\n * @returns The error value contained in this `Err`.\n */\n unwrapErr(): E {\n return this.error;\n }\n\n /**\n * Returns the inner error. After an `isErr()` type guard, TypeScript narrows the return type to `E`.\n * Without a type guard, returns `T | E` (use `isOk()` or `isErr()` for type narrowing).\n * @returns The error value contained in this `Err`.\n */\n value(): E {\n return this.error;\n }\n\n /**\n * Returns the contained value if `Ok`, otherwise returns the provided default value.\n * @template U The type of the default value.\n * @param defaultValue The value to return since this is an `Err`.\n * @returns The provided default value.\n */\n unwrapOr<U>(defaultValue: U): U {\n return defaultValue;\n }\n\n /**\n * Returns the contained value if `Ok`, otherwise computes and returns the result of the provided function.\n * @template U The type of the default value.\n * @param fn The function to compute the default value.\n * @returns The result of calling the provided function with the error.\n */\n unwrapOrElse<U>(fn: (error: E) => U): U {\n return fn(this.error);\n }\n\n /**\n * Returns this `Err` if it is `Err`, otherwise returns the result of the provided function.\n * @template T The type of the alternative success value.\n * @template F The type of the alternative error.\n * @param fn The function to compute the alternative result.\n * @returns The result of calling the provided function with the error.\n */\n orElse<T, F>(\n fn: (error: E) => ResultDefinition<T, F>,\n ): ResultDefinition<T, F> {\n return fn(this.error);\n }\n\n /**\n * Converts `Result` type to `Option` type.\n * @returns `Some` if the result is `Ok`, `None` if the result is `Err`.\n */\n ok() {\n return None();\n }\n}\n","import type { ResultDefinition } from \"./result\";\nimport type { Err } from \"./err\";\n\n/**\n * Represents a successful result (`Ok`) that contains a value.\n * @template T The type of the value contained in this `Ok`.\n */\nexport class Ok<T> implements ResultDefinition<T, never> {\n /**\n * Creates a new `Ok` instance with the given value.\n * @param _value The value to wrap in the `Ok` instance.\n */\n constructor(private _value: T) {}\n /**\n * Checks if this result is an `Ok`.\n * @returns `true` because this is an `Ok`.\n */\n isOk(): this is Ok<T> {\n return true;\n }\n\n /**\n * Checks if this result is an `Err`.\n * @returns `false` because this is an `Ok`.\n */\n isErr(): this is Err<never> {\n return false;\n }\n\n /**\n * Retrieves the value contained in this `Ok`.\n * @returns The value contained in this `Ok`.\n */\n unwrap(): T {\n return this._value;\n }\n\n /**\n * Returns the inner value. After an `isOk()` type guard, TypeScript narrows the return type to `T`.\n * Without a type guard, returns `T | E` (use `isOk()` or `isErr()` for type narrowing).\n * @returns The value contained in this `Ok`.\n */\n value(): T {\n return this._value;\n }\n\n /**\n * Applies a transformation function to the value contained in this `Ok` and returns a new `Result` with the transformed value.\n * @template U The type of the transformed value.\n * @param fn The transformation function to apply to the value.\n * @returns A new `Ok` containing the transformed value.\n */\n map<U>(fn: (value: T) => U): ResultDefinition<U, never> {\n return new Ok(fn(this._value)) as unknown as ResultDefinition<U, never>;\n }\n\n /**\n * Applies a transformation function that returns a `Result` to the value contained in this `Ok`.\n * @template U The type of the value in the resulting `Result`.\n * @template E The type of the error in the resulting `Result`.\n * @param fn The transformation function to apply to the value.\n * @returns The result of applying the transformation function.\n */\n flatMap<U, E = never>(\n fn: (value: T) => ResultDefinition<U, E>,\n ): ResultDefinition<U, E> {\n return fn(this._value);\n }\n\n /**\n * Maps the error value (if any). Since this is an `Ok`, the error mapping function is ignored, and the original `Ok` is returned.\n * @template U The type of the error (ignored for `Ok`). Can be any type.\n * @param _fn The mapping function for errors (not used).\n * @returns The original `Ok` instance.\n */\n mapErr<U>(_fn: (err: never) => U): ResultDefinition<T, U> {\n return this as unknown as ResultDefinition<T, U>;\n }\n\n /**\n * Retrieves the error contained in this result. Since this is an `Ok`, an error is thrown.\n * @throws An error because `unwrapErr` is called on an `Ok`.\n */\n unwrapErr(): never {\n throw new Error(\"Called unwrapErr on an Ok value\");\n }\n\n /**\n * Returns the contained value if `Ok`, otherwise returns the provided default value.\n * @template U The type of the default value.\n * @param defaultValue The value to return if this is an `Err`.\n * @returns The value contained in this `Ok`.\n */\n unwrapOr<U>(defaultValue: U): T {\n return this._value;\n }\n\n /**\n * Returns the contained value if `Ok`, otherwise computes and returns the result of the provided function.\n * @template U The type of the default value.\n * @param fn The function to compute the default value.\n * @returns The value contained in this `Ok`.\n */\n unwrapOrElse<U>(fn: (error: never) => U): T {\n return this._value;\n }\n\n /**\n * Returns this `Ok` if it is `Ok`, otherwise returns the result of the provided function.\n * @template F The type of the alternative error.\n * @param fn The function to compute the alternative result.\n * @returns The original `Ok` instance.\n */\n orElse<F>(fn: (error: never) => ResultDefinition<T, F>): ResultDefinition<T, F> {\n return this as unknown as ResultDefinition<T, F>;\n }\n\n /**\n * Converts `Result` type to `Option` type.\n * @returns `Some` if the result is `Ok`, `None` if the result is `Err`.\n */\n ok() {\n return Some(this._value);\n }\n}\n","import {\n Err as ErrType,\n Ok as OkType,\n type Result,\n} from \"./__internal__/return-types\";\n\n/**\n * Creates a new `Ok` instance, representing a successful result.\n * @template T The type of the value contained in the `Ok`.\n * @param value The value to wrap in the `Ok` instance.\n * @returns An `Ok` instance containing the given value.\n * @example\n * const result = Ok(42);\n * console.log(result.isOk()); // true\n * console.log(result.unwrap()); // 42\n */\nfunction Ok<T>(value: T): OkType<T> {\n return new OkType(value);\n}\n\n/**\n * Creates an Err - strings are converted to Error, everything else preserved\n */\nfunction Err<E>(error: E): ErrType<E> {\n return new ErrType(error);\n}\n\n// biome-ignore lint/suspicious/noExplicitAny: <explanation>\n(global as any).Ok = Ok;\n// biome-ignore lint/suspicious/noExplicitAny: <explanation>\n(global as any).Err = Err;\n\nexport { Err, Ok, Result, ErrType, OkType };\n","import type { None as NoneType } from \"./none\";\nimport type { Option } from \"./option\";\nimport { None } from \"../../option\";\nimport { Ok } from \"@/result\";\n\n/**\n * Represents a `Some` option, which holds a value.\n * @template T The type of the value held by this `Some` instance.\n */\nexport class Some<T> {\n /**\n * Creates a new `Some` option with the given value.\n * @param _value The value to be wrapped in the `Some` option.\n */\n constructor(private _value: T) { }\n\n /**\n * Checks if this option is a `Some`.\n * @returns `true` if this option is a `Some`, otherwise `false`.\n */\n isSome(): this is Some<T> {\n return true;\n }\n\n /**\n * Checks if this option is a `None`.\n * @returns `false` because this is a `Some`.\n */\n isNone(): this is NoneType {\n return false;\n }\n\n /**\n * Unwraps the value held by this `Some` option.\n * @returns The value held by this `Some` option.\n */\n unwrap(): T {\n return this._value;\n }\n\n /**\n * Returns the inner value. After an `isSome()` type guard, TypeScript narrows the return type to `T`.\n * Without a type guard, returns `T | undefined` (use `isSome()` or `isNone()` for type narrowing).\n * @returns The value held by this `Some` option.\n */\n value(): T {\n return this._value;\n }\n\n /**\n * Applies a transformation function to the value held by this `Some` option and returns a new `Option` with the transformed value.\n * @template U The type of the transformed value.\n * @param fn The transformation function to apply to the value.\n * @returns A new `Some` option containing the transformed value.\n */\n map<U>(fn: (value: T) => U): Option<U> {\n return new Some(fn(this._value));\n }\n\n /**\n * Applies a transformation function that returns an `Option` to the value held by this `Some` option.\n * @template U The type of the value in the resulting `Option`.\n * @param fn The transformation function to apply to the value.\n * @returns The result of applying the transformation function.\n */\n flatMap<U>(fn: (value: T) => Option<U>): Option<U> {\n return fn(this._value);\n }\n\n /**\n * Returns the value held by this `Some` option, ignoring the default value provided.\n * @param _ A default value (ignored in this implementation).\n * @returns The value held by this `Some` option.\n */\n unwrapOr(_: T): T {\n return this._value;\n }\n\n /**\n * Returns the value held by this `Some` option, ignoring the function provided.\n * @template U The type of the default value.\n * @param _fn A function to compute the default value (ignored in this implementation).\n * @returns The value held by this `Some` option.\n */\n unwrapOrElse<U>(_fn: () => U): T {\n return this._value;\n }\n\n /**\n * Converts this `Option` to a `Result`, using the provided error value if this is `None`.\n * @template E The type of the error.\n * @param _error The error value to use if this is `None` (ignored since this is `Some`).\n * @returns An `Ok` result containing the value from this `Some`.\n */\n okOr<E>(_error: E) {\n return Ok(this._value);\n }\n\n /**\n * Filters this `Option` based on a predicate function.\n * @param predicate The function to test the value.\n * @returns This `Some` if the predicate returns true, otherwise `None`.\n */\n filter(predicate: (value: T) => boolean): Option<T> {\n return predicate(this._value) ? this : None();\n }\n}\n","import type { Some } from \"./some\";\nimport type { Option } from \"./option\";\nimport { None as NoneFactory } from \"../../option\";\nimport { Err } from \"@/result\";\n\n/**\n * Represents a `None` option, which holds no value.\n */\nexport class None {\n /**\n * Checks if this option is a `Some`.\n * @returns `false` because this is a `None`.\n */\n isSome(): this is Some<never> {\n return false;\n }\n\n /**\n * Checks if this option is a `None`.\n * @returns `true` because this is a `None`.\n */\n isNone(): this is None {\n return true;\n }\n\n /**\n * Attempts to unwrap the value from this `None` option.\n * @throws An error because `None` has no value.\n */\n unwrap(): never {\n throw new Error(\"Called unwrap on a None value\");\n }\n\n /**\n * Returns `undefined` for a `None` option. After an `isNone()` type guard, TypeScript narrows the return type to `undefined`.\n * Without a type guard, returns `T | undefined` (use `isSome()` or `isNone()` for type narrowing).\n * Unlike `unwrap()`, this method does not throw an error.\n * @returns `undefined` because this is a `None`.\n */\n value(): undefined {\n return undefined;\n }\n\n /**\n * Applies a transformation function to the value (which does not exist) of this `None` option.\n * @template U The type of the value that would have been returned.\n * @param _fn The transformation function (ignored in this implementation).\n * @returns The singleton `None` instance.\n */\n map<U>(_fn: (value: never) => U): Option<U> {\n return NoneFactory();\n }\n\n /**\n * Applies a transformation function that returns an `Option` to the value (which does not exist) of this `None` option.\n * @template U The type of the value in the resulting `Option`.\n * @param _fn The transformation function (ignored in this implementation).\n * @returns The singleton `None` instance.\n */\n flatMap<U>(_fn: (value: never) => Option<U>): Option<U> {\n return NoneFactory();\n }\n\n /**\n * Returns the default value provided, since `None` has no value.\n * @template T The type of the default value.\n * @param defaultValue The value to return.\n * @returns The default value provided.\n */\n unwrapOr<T>(defaultValue: T): T {\n return defaultValue;\n }\n\n /**\n * Computes and returns the default value using the provided function, since `None` has no value.\n * @template T The type of the default value.\n * @param fn The function to compute the default value.\n * @returns The result of calling the provided function.\n */\n unwrapOrElse<T>(fn: () => T): T {\n return fn();\n }\n\n /**\n * Converts this `Option` to a `Result`, using the provided error value since this is `None`.\n * @template E The type of the error.\n * @param error The error value to use.\n * @returns An `Err` result containing the provided error.\n */\n okOr<E>(error: E) {\n return Err(error);\n }\n\n /**\n * Filters this `Option` based on a predicate function.\n * @param _predicate The function to test the value (ignored since this is `None`).\n * @returns `None` since there is no value to filter.\n */\n filter<T>(_predicate: (value: never) => boolean): Option<T> {\n return NoneFactory();\n }\n}\n","import {\n\tSome as SomeType,\n\tNone as NoneType,\n\ttype Option,\n} from \"./__internal__/return-types\";\n\n/**\n * Creates a new `Some` instance, representing an `Option` with a value.\n * @template T The type of the value contained in the `Some`.\n * @param value The value to wrap in the `Some` instance.\n * @returns A `Some` instance containing the given value.\n * @example\n * const option = Some(42);\n * console.log(option.isSome()); // true\n * console.log(option.unwrap()); // 42\n */\nfunction Some<T>(value: T): SomeType<T> {\n\treturn new SomeType(value);\n}\n\nlet NONE_INSTANCE: NoneType | null = null;\n\n/**\n * Returns the singleton `None` instance, representing an `Option` with no value.\n * Uses a singleton pattern to reduce memory allocations.\n * @returns The singleton `None` instance.\n * @example\n * const option = None();\n * console.log(option.isNone()); // true\n * console.log(option.unwrap()); // throws Error: \"Called unwrap on a None value\"\n */\nfunction None(): NoneType {\n\tif (!NONE_INSTANCE) {\n\t\tNONE_INSTANCE = new NoneType();\n\t}\n\treturn NONE_INSTANCE;\n}\n\n(global as any).Some = Some;\n(global as any).None = None;\n\nexport { None, Some, Option };\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/result/__internal__/return-types/err.ts","../../src/result/__internal__/return-types/ok.ts","../../src/result/result.ts","../../src/option/__internal__/return-types/some.ts","../../src/option/__internal__/return-types/none.ts","../../src/option/option.ts"],"names":["TAG","Ok","Err","Some","None"],"mappings":"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","file":"option.cjs","sourcesContent":["import type { Ok } from \"./ok\";\nimport type { ResultDefinition } from \"./result\";\n\n// Hidden discriminant tag for O(1) dispatch in `match`.\n// Symbol.for ensures the same global symbol regardless of bundling.\nconst TAG = Symbol.for(\"@consolidados/results.tag\");\n\n/**\n * Represents a failed result (`Err`) that contains an error value.\n * @template E The type of the error contained in this `Err`. Can be any type (Error, string, enum, etc).\n */\nexport class Err<E> implements ResultDefinition<never, E> {\n /** Hidden tag — read by `match()` for O(1) dispatch. */\n readonly [TAG] = \"Err\" as const;\n private error: E;\n /**\n * Creates a new `Err` instance with the given error value.\n * @param error The error to wrap in the `Err` instance. Can be any type.\n */\n constructor(error: E) {\n // Store error as-is - conversion is handled by factory function\n this.error = error;\n // Object.setPrototypeOf(this, Err.prototype);\n //\n // if (Error.captureStackTrace) {\n // Error.captureStackTrace(this, Err);\n // }\n }\n\n /**\n * Checks if this result is an `Ok`.\n * @returns `false` because this is an `Err`.\n */\n isOk(): this is Ok<never> {\n return false;\n }\n\n /**\n * Checks if this result is an `Err`.\n * @returns `true` because this is an `Err`.\n */\n isErr(): this is Err<E> {\n return true;\n }\n\n /**\n * Retrieves the value contained in this result. Since this is an `Err`, an error is thrown.\n * @throws An error because `unwrap` is called on an `Err`.\n */\n unwrap(): never {\n throw new Error(\"Called unwrap on an Err value\");\n }\n\n /**\n * Maps the value (if any). Since this is an `Err`, the mapping function is ignored, and the original `Err` is returned.\n * @template U The type of the value (ignored for `Err`).\n * @param _fn The mapping function for values (not used).\n * @returns The original `Err` instance.\n */\n map<U>(_fn: (value: never) => U): ResultDefinition<never, E> {\n return this as unknown as ResultDefinition<never, E>;\n }\n\n /**\n * Maps the error value using a transformation function and returns a new `Result` with the transformed error.\n * @template U The type of the transformed error. Can be any type.\n * @param fn The transformation function to apply to the error value.\n * @returns A new `Err` containing the transformed error.\n */\n mapErr<U>(fn: (err: E) => U): ResultDefinition<never, U> {\n return new Err<U>(fn(this.error)) as unknown as ResultDefinition<never, U>;\n }\n\n /**\n * Applies a transformation function that returns a `Result` to the value (which does not exist) of this `Err`.\n * @template U The type of the value in the resulting `Result`.\n * @template F The type of the error in the resulting `Result`.\n * @param _fn The transformation function (ignored in this implementation).\n * @returns The original `Err` instance cast to the new error type.\n */\n flatMap<U, F = E>(\n _fn: (value: never) => ResultDefinition<U, F>,\n ): ResultDefinition<U, E> {\n return this as unknown as ResultDefinition<U, E>;\n }\n\n /**\n * Retrieves the error value contained in this `Err`.\n * @returns The error value contained in this `Err`.\n */\n unwrapErr(): E {\n return this.error;\n }\n\n /**\n * Returns the inner error. After an `isErr()` type guard, TypeScript narrows the return type to `E`.\n * Without a type guard, returns `T | E` (use `isOk()` or `isErr()` for type narrowing).\n * @returns The error value contained in this `Err`.\n */\n value(): E {\n return this.error;\n }\n\n /**\n * Returns the contained value if `Ok`, otherwise returns the provided default value.\n * @template U The type of the default value.\n * @param defaultValue The value to return since this is an `Err`.\n * @returns The provided default value.\n */\n unwrapOr<U>(defaultValue: U): U {\n return defaultValue;\n }\n\n /**\n * Returns the contained value if `Ok`, otherwise computes and returns the result of the provided function.\n * @template U The type of the default value.\n * @param fn The function to compute the default value.\n * @returns The result of calling the provided function with the error.\n */\n unwrapOrElse<U>(fn: (error: E) => U): U {\n return fn(this.error);\n }\n\n /**\n * Returns this `Err` if it is `Err`, otherwise returns the result of the provided function.\n * @template T The type of the alternative success value.\n * @template F The type of the alternative error.\n * @param fn The function to compute the alternative result.\n * @returns The result of calling the provided function with the error.\n */\n orElse<T, F>(\n fn: (error: E) => ResultDefinition<T, F>,\n ): ResultDefinition<T, F> {\n return fn(this.error);\n }\n\n /**\n * Converts `Result` type to `Option` type.\n * @returns `Some` if the result is `Ok`, `None` if the result is `Err`.\n */\n ok() {\n return None();\n }\n}\n","import type { ResultDefinition } from \"./result\";\nimport type { Err } from \"./err\";\n\n// Hidden discriminant tag for O(1) dispatch in `match`.\n// Symbol.for ensures the same global symbol regardless of bundling.\nconst TAG = Symbol.for(\"@consolidados/results.tag\");\n\n/**\n * Represents a successful result (`Ok`) that contains a value.\n * @template T The type of the value contained in this `Ok`.\n */\nexport class Ok<T> implements ResultDefinition<T, never> {\n /** Hidden tag — read by `match()` for O(1) dispatch. Symbol-keyed so it\n * doesn't appear in `for...in`, `Object.keys`, or `JSON.stringify`. */\n readonly [TAG] = \"Ok\" as const;\n\n /**\n * Creates a new `Ok` instance with the given value.\n * @param _value The value to wrap in the `Ok` instance.\n */\n constructor(private _value: T) {}\n /**\n * Checks if this result is an `Ok`.\n * @returns `true` because this is an `Ok`.\n */\n isOk(): this is Ok<T> {\n return true;\n }\n\n /**\n * Checks if this result is an `Err`.\n * @returns `false` because this is an `Ok`.\n */\n isErr(): this is Err<never> {\n return false;\n }\n\n /**\n * Retrieves the value contained in this `Ok`.\n * @returns The value contained in this `Ok`.\n */\n unwrap(): T {\n return this._value;\n }\n\n /**\n * Returns the inner value. After an `isOk()` type guard, TypeScript narrows the return type to `T`.\n * Without a type guard, returns `T | E` (use `isOk()` or `isErr()` for type narrowing).\n * @returns The value contained in this `Ok`.\n */\n value(): T {\n return this._value;\n }\n\n /**\n * Applies a transformation function to the value contained in this `Ok` and returns a new `Result` with the transformed value.\n * @template U The type of the transformed value.\n * @param fn The transformation function to apply to the value.\n * @returns A new `Ok` containing the transformed value.\n */\n map<U>(fn: (value: T) => U): ResultDefinition<U, never> {\n return new Ok(fn(this._value)) as unknown as ResultDefinition<U, never>;\n }\n\n /**\n * Applies a transformation function that returns a `Result` to the value contained in this `Ok`.\n * @template U The type of the value in the resulting `Result`.\n * @template E The type of the error in the resulting `Result`.\n * @param fn The transformation function to apply to the value.\n * @returns The result of applying the transformation function.\n */\n flatMap<U, E = never>(\n fn: (value: T) => ResultDefinition<U, E>,\n ): ResultDefinition<U, E> {\n return fn(this._value);\n }\n\n /**\n * Maps the error value (if any). Since this is an `Ok`, the error mapping function is ignored, and the original `Ok` is returned.\n * @template U The type of the error (ignored for `Ok`). Can be any type.\n * @param _fn The mapping function for errors (not used).\n * @returns The original `Ok` instance.\n */\n mapErr<U>(_fn: (err: never) => U): ResultDefinition<T, U> {\n return this as unknown as ResultDefinition<T, U>;\n }\n\n /**\n * Retrieves the error contained in this result. Since this is an `Ok`, an error is thrown.\n * @throws An error because `unwrapErr` is called on an `Ok`.\n */\n unwrapErr(): never {\n throw new Error(\"Called unwrapErr on an Ok value\");\n }\n\n /**\n * Returns the contained value if `Ok`, otherwise returns the provided default value.\n * @template U The type of the default value.\n * @param defaultValue The value to return if this is an `Err`.\n * @returns The value contained in this `Ok`.\n */\n unwrapOr<U>(defaultValue: U): T {\n return this._value;\n }\n\n /**\n * Returns the contained value if `Ok`, otherwise computes and returns the result of the provided function.\n * @template U The type of the default value.\n * @param fn The function to compute the default value.\n * @returns The value contained in this `Ok`.\n */\n unwrapOrElse<U>(fn: (error: never) => U): T {\n return this._value;\n }\n\n /**\n * Returns this `Ok` if it is `Ok`, otherwise returns the result of the provided function.\n * @template F The type of the alternative error.\n * @param fn The function to compute the alternative result.\n * @returns The original `Ok` instance.\n */\n orElse<F>(fn: (error: never) => ResultDefinition<T, F>): ResultDefinition<T, F> {\n return this as unknown as ResultDefinition<T, F>;\n }\n\n /**\n * Converts `Result` type to `Option` type.\n * @returns `Some` if the result is `Ok`, `None` if the result is `Err`.\n */\n ok() {\n return Some(this._value);\n }\n}\n","import {\n Err as ErrType,\n Ok as OkType,\n type Result,\n} from \"./__internal__/return-types\";\n\n/**\n * Creates a new `Ok` instance, representing a successful result.\n * @template T The type of the value contained in the `Ok`.\n * @param value The value to wrap in the `Ok` instance.\n * @returns An `Ok` instance containing the given value.\n * @example\n * const result = Ok(42);\n * console.log(result.isOk()); // true\n * console.log(result.unwrap()); // 42\n */\nfunction Ok<T>(value: T): OkType<T> {\n return new OkType(value);\n}\n\n/**\n * Creates an Err - strings are converted to Error, everything else preserved\n */\nfunction Err<E>(error: E): ErrType<E> {\n return new ErrType(error);\n}\n\n// biome-ignore lint/suspicious/noExplicitAny: <explanation>\n(globalThis as any).Ok = Ok;\n// biome-ignore lint/suspicious/noExplicitAny: <explanation>\n(globalThis as any).Err = Err;\n\nexport { Err, Ok, Result, ErrType, OkType };\n","import type { None as NoneType } from \"./none\";\nimport type { Option } from \"./option\";\nimport { None } from \"../../option\";\nimport { Ok } from \"@/result\";\n\n// Hidden discriminant tag for O(1) dispatch in `match`.\n// Symbol.for ensures the same global symbol regardless of bundling.\nconst TAG = Symbol.for(\"@consolidados/results.tag\");\n\n/**\n * Represents a `Some` option, which holds a value.\n * @template T The type of the value held by this `Some` instance.\n */\nexport class Some<T> {\n /** Hidden tag — read by `match()` for O(1) dispatch. */\n readonly [TAG] = \"Some\" as const;\n\n /**\n * Creates a new `Some` option with the given value.\n * @param _value The value to be wrapped in the `Some` option.\n */\n constructor(private _value: T) { }\n\n /**\n * Checks if this option is a `Some`.\n * @returns `true` if this option is a `Some`, otherwise `false`.\n */\n isSome(): this is Some<T> {\n return true;\n }\n\n /**\n * Checks if this option is a `None`.\n * @returns `false` because this is a `Some`.\n */\n isNone(): this is NoneType {\n return false;\n }\n\n /**\n * Unwraps the value held by this `Some` option.\n * @returns The value held by this `Some` option.\n */\n unwrap(): T {\n return this._value;\n }\n\n /**\n * Returns the inner value. After an `isSome()` type guard, TypeScript narrows the return type to `T`.\n * Without a type guard, returns `T | undefined` (use `isSome()` or `isNone()` for type narrowing).\n * @returns The value held by this `Some` option.\n */\n value(): T {\n return this._value;\n }\n\n /**\n * Applies a transformation function to the value held by this `Some` option and returns a new `Option` with the transformed value.\n * @template U The type of the transformed value.\n * @param fn The transformation function to apply to the value.\n * @returns A new `Some` option containing the transformed value.\n */\n map<U>(fn: (value: T) => U): Option<U> {\n return new Some(fn(this._value));\n }\n\n /**\n * Applies a transformation function that returns an `Option` to the value held by this `Some` option.\n * @template U The type of the value in the resulting `Option`.\n * @param fn The transformation function to apply to the value.\n * @returns The result of applying the transformation function.\n */\n flatMap<U>(fn: (value: T) => Option<U>): Option<U> {\n return fn(this._value);\n }\n\n /**\n * Returns the value held by this `Some` option, ignoring the default value provided.\n * @param _ A default value (ignored in this implementation).\n * @returns The value held by this `Some` option.\n */\n unwrapOr(_: T): T {\n return this._value;\n }\n\n /**\n * Returns the value held by this `Some` option, ignoring the function provided.\n * @template U The type of the default value.\n * @param _fn A function to compute the default value (ignored in this implementation).\n * @returns The value held by this `Some` option.\n */\n unwrapOrElse<U>(_fn: () => U): T {\n return this._value;\n }\n\n /**\n * Converts this `Option` to a `Result`, using the provided error value if this is `None`.\n * @template E The type of the error.\n * @param _error The error value to use if this is `None` (ignored since this is `Some`).\n * @returns An `Ok` result containing the value from this `Some`.\n */\n okOr<E>(_error: E) {\n return Ok(this._value);\n }\n\n /**\n * Filters this `Option` based on a predicate function.\n * @param predicate The function to test the value.\n * @returns This `Some` if the predicate returns true, otherwise `None`.\n */\n filter(predicate: (value: T) => boolean): Option<T> {\n return predicate(this._value) ? this : None();\n }\n}\n","import type { Some } from \"./some\";\nimport type { Option } from \"./option\";\nimport { None as NoneFactory } from \"../../option\";\nimport { Err } from \"@/result\";\n\n// Hidden discriminant tag for O(1) dispatch in `match`.\n// Symbol.for ensures the same global symbol regardless of bundling.\nconst TAG = Symbol.for(\"@consolidados/results.tag\");\n\n/**\n * Represents a `None` option, which holds no value.\n */\nexport class None {\n /** Hidden tag — read by `match()` for O(1) dispatch. */\n readonly [TAG] = \"None\" as const;\n\n /**\n * Checks if this option is a `Some`.\n * @returns `false` because this is a `None`.\n */\n isSome(): this is Some<never> {\n return false;\n }\n\n /**\n * Checks if this option is a `None`.\n * @returns `true` because this is a `None`.\n */\n isNone(): this is None {\n return true;\n }\n\n /**\n * Attempts to unwrap the value from this `None` option.\n * @throws An error because `None` has no value.\n */\n unwrap(): never {\n throw new Error(\"Called unwrap on a None value\");\n }\n\n /**\n * Returns `undefined` for a `None` option. After an `isNone()` type guard, TypeScript narrows the return type to `undefined`.\n * Without a type guard, returns `T | undefined` (use `isSome()` or `isNone()` for type narrowing).\n * Unlike `unwrap()`, this method does not throw an error.\n * @returns `undefined` because this is a `None`.\n */\n value(): undefined {\n return undefined;\n }\n\n /**\n * Applies a transformation function to the value (which does not exist) of this `None` option.\n * @template U The type of the value that would have been returned.\n * @param _fn The transformation function (ignored in this implementation).\n * @returns The singleton `None` instance.\n */\n map<U>(_fn: (value: never) => U): Option<U> {\n return NoneFactory();\n }\n\n /**\n * Applies a transformation function that returns an `Option` to the value (which does not exist) of this `None` option.\n * @template U The type of the value in the resulting `Option`.\n * @param _fn The transformation function (ignored in this implementation).\n * @returns The singleton `None` instance.\n */\n flatMap<U>(_fn: (value: never) => Option<U>): Option<U> {\n return NoneFactory();\n }\n\n /**\n * Returns the default value provided, since `None` has no value.\n * @template T The type of the default value.\n * @param defaultValue The value to return.\n * @returns The default value provided.\n */\n unwrapOr<T>(defaultValue: T): T {\n return defaultValue;\n }\n\n /**\n * Computes and returns the default value using the provided function, since `None` has no value.\n * @template T The type of the default value.\n * @param fn The function to compute the default value.\n * @returns The result of calling the provided function.\n */\n unwrapOrElse<T>(fn: () => T): T {\n return fn();\n }\n\n /**\n * Converts this `Option` to a `Result`, using the provided error value since this is `None`.\n * @template E The type of the error.\n * @param error The error value to use.\n * @returns An `Err` result containing the provided error.\n */\n okOr<E>(error: E) {\n return Err(error);\n }\n\n /**\n * Filters this `Option` based on a predicate function.\n * @param _predicate The function to test the value (ignored since this is `None`).\n * @returns `None` since there is no value to filter.\n */\n filter<T>(_predicate: (value: never) => boolean): Option<T> {\n return NoneFactory();\n }\n}\n","import {\n\tSome as SomeType,\n\tNone as NoneType,\n\ttype Option,\n} from \"./__internal__/return-types\";\n\n/**\n * Creates a new `Some` instance, representing an `Option` with a value.\n * @template T The type of the value contained in the `Some`.\n * @param value The value to wrap in the `Some` instance.\n * @returns A `Some` instance containing the given value.\n * @example\n * const option = Some(42);\n * console.log(option.isSome()); // true\n * console.log(option.unwrap()); // 42\n */\nfunction Some<T>(value: T): SomeType<T> {\n\treturn new SomeType(value);\n}\n\nlet NONE_INSTANCE: NoneType | null = null;\n\n/**\n * Returns the singleton `None` instance, representing an `Option` with no value.\n * Uses a singleton pattern to reduce memory allocations.\n * @returns The singleton `None` instance.\n * @example\n * const option = None();\n * console.log(option.isNone()); // true\n * console.log(option.unwrap()); // throws Error: \"Called unwrap on a None value\"\n */\nfunction None(): NoneType {\n\tif (!NONE_INSTANCE) {\n\t\tNONE_INSTANCE = new NoneType();\n\t}\n\treturn NONE_INSTANCE;\n}\n\n(globalThis as any).Some = Some;\n(globalThis as any).None = None;\n\nexport { None, Some, Option };\n"]}
|
package/dist/option/option.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { N as None$1, S as Some$1 } from '../option-
|
|
2
|
-
export { O as Option } from '../option-
|
|
1
|
+
import { N as None$1, S as Some$1 } from '../option-CYCiGxtw.cjs';
|
|
2
|
+
export { O as Option } from '../option-CYCiGxtw.cjs';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Creates a new `Some` instance, representing an `Option` with a value.
|
package/dist/option/option.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { N as None$1, S as Some$1 } from '../option-
|
|
2
|
-
export { O as Option } from '../option-
|
|
1
|
+
import { N as None$1, S as Some$1 } from '../option-CYCiGxtw.js';
|
|
2
|
+
export { O as Option } from '../option-CYCiGxtw.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Creates a new `Some` instance, representing an `Option` with a value.
|
package/dist/option/option.js
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
// src/result/__internal__/return-types/err.ts
|
|
2
|
+
var TAG = Symbol.for("@consolidados/results.tag");
|
|
2
3
|
var Err = class _Err {
|
|
4
|
+
/** Hidden tag — read by `match()` for O(1) dispatch. */
|
|
5
|
+
[TAG] = "Err";
|
|
3
6
|
error;
|
|
4
7
|
/**
|
|
5
8
|
* Creates a new `Err` instance with the given error value.
|
|
@@ -110,6 +113,7 @@ var Err = class _Err {
|
|
|
110
113
|
};
|
|
111
114
|
|
|
112
115
|
// src/result/__internal__/return-types/ok.ts
|
|
116
|
+
var TAG2 = Symbol.for("@consolidados/results.tag");
|
|
113
117
|
var Ok = class _Ok {
|
|
114
118
|
/**
|
|
115
119
|
* Creates a new `Ok` instance with the given value.
|
|
@@ -118,6 +122,9 @@ var Ok = class _Ok {
|
|
|
118
122
|
constructor(_value) {
|
|
119
123
|
this._value = _value;
|
|
120
124
|
}
|
|
125
|
+
/** Hidden tag — read by `match()` for O(1) dispatch. Symbol-keyed so it
|
|
126
|
+
* doesn't appear in `for...in`, `Object.keys`, or `JSON.stringify`. */
|
|
127
|
+
[TAG2] = "Ok";
|
|
121
128
|
/**
|
|
122
129
|
* Checks if this result is an `Ok`.
|
|
123
130
|
* @returns `true` because this is an `Ok`.
|
|
@@ -225,10 +232,11 @@ function Ok2(value) {
|
|
|
225
232
|
function Err2(error) {
|
|
226
233
|
return new Err(error);
|
|
227
234
|
}
|
|
228
|
-
|
|
229
|
-
|
|
235
|
+
globalThis.Ok = Ok2;
|
|
236
|
+
globalThis.Err = Err2;
|
|
230
237
|
|
|
231
238
|
// src/option/__internal__/return-types/some.ts
|
|
239
|
+
var TAG3 = Symbol.for("@consolidados/results.tag");
|
|
232
240
|
var Some2 = class _Some {
|
|
233
241
|
/**
|
|
234
242
|
* Creates a new `Some` option with the given value.
|
|
@@ -237,6 +245,8 @@ var Some2 = class _Some {
|
|
|
237
245
|
constructor(_value) {
|
|
238
246
|
this._value = _value;
|
|
239
247
|
}
|
|
248
|
+
/** Hidden tag — read by `match()` for O(1) dispatch. */
|
|
249
|
+
[TAG3] = "Some";
|
|
240
250
|
/**
|
|
241
251
|
* Checks if this option is a `Some`.
|
|
242
252
|
* @returns `true` if this option is a `Some`, otherwise `false`.
|
|
@@ -321,7 +331,10 @@ var Some2 = class _Some {
|
|
|
321
331
|
};
|
|
322
332
|
|
|
323
333
|
// src/option/__internal__/return-types/none.ts
|
|
334
|
+
var TAG4 = Symbol.for("@consolidados/results.tag");
|
|
324
335
|
var None3 = class {
|
|
336
|
+
/** Hidden tag — read by `match()` for O(1) dispatch. */
|
|
337
|
+
[TAG4] = "None";
|
|
325
338
|
/**
|
|
326
339
|
* Checks if this option is a `Some`.
|
|
327
340
|
* @returns `false` because this is a `None`.
|
|
@@ -418,8 +431,8 @@ function None2() {
|
|
|
418
431
|
}
|
|
419
432
|
return NONE_INSTANCE;
|
|
420
433
|
}
|
|
421
|
-
|
|
422
|
-
|
|
434
|
+
globalThis.Some = Some3;
|
|
435
|
+
globalThis.None = None2;
|
|
423
436
|
|
|
424
437
|
export { None2 as None, Some3 as Some };
|
|
425
438
|
//# sourceMappingURL=option.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/result/__internal__/return-types/err.ts","../../src/result/__internal__/return-types/ok.ts","../../src/result/result.ts","../../src/option/__internal__/return-types/some.ts","../../src/option/__internal__/return-types/none.ts","../../src/option/option.ts"],"names":["Ok","Err","Some","None"],"mappings":"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","file":"option.js","sourcesContent":["import type { Ok } from \"./ok\";\nimport type { ResultDefinition } from \"./result\";\n\n/**\n * Represents a failed result (`Err`) that contains an error value.\n * @template E The type of the error contained in this `Err`. Can be any type (Error, string, enum, etc).\n */\nexport class Err<E> implements ResultDefinition<never, E> {\n private error: E;\n /**\n * Creates a new `Err` instance with the given error value.\n * @param error The error to wrap in the `Err` instance. Can be any type.\n */\n constructor(error: E) {\n // Store error as-is - conversion is handled by factory function\n this.error = error;\n // Object.setPrototypeOf(this, Err.prototype);\n //\n // if (Error.captureStackTrace) {\n // Error.captureStackTrace(this, Err);\n // }\n }\n\n /**\n * Checks if this result is an `Ok`.\n * @returns `false` because this is an `Err`.\n */\n isOk(): this is Ok<never> {\n return false;\n }\n\n /**\n * Checks if this result is an `Err`.\n * @returns `true` because this is an `Err`.\n */\n isErr(): this is Err<E> {\n return true;\n }\n\n /**\n * Retrieves the value contained in this result. Since this is an `Err`, an error is thrown.\n * @throws An error because `unwrap` is called on an `Err`.\n */\n unwrap(): never {\n throw new Error(\"Called unwrap on an Err value\");\n }\n\n /**\n * Maps the value (if any). Since this is an `Err`, the mapping function is ignored, and the original `Err` is returned.\n * @template U The type of the value (ignored for `Err`).\n * @param _fn The mapping function for values (not used).\n * @returns The original `Err` instance.\n */\n map<U>(_fn: (value: never) => U): ResultDefinition<never, E> {\n return this as unknown as ResultDefinition<never, E>;\n }\n\n /**\n * Maps the error value using a transformation function and returns a new `Result` with the transformed error.\n * @template U The type of the transformed error. Can be any type.\n * @param fn The transformation function to apply to the error value.\n * @returns A new `Err` containing the transformed error.\n */\n mapErr<U>(fn: (err: E) => U): ResultDefinition<never, U> {\n return new Err<U>(fn(this.error)) as unknown as ResultDefinition<never, U>;\n }\n\n /**\n * Applies a transformation function that returns a `Result` to the value (which does not exist) of this `Err`.\n * @template U The type of the value in the resulting `Result`.\n * @template F The type of the error in the resulting `Result`.\n * @param _fn The transformation function (ignored in this implementation).\n * @returns The original `Err` instance cast to the new error type.\n */\n flatMap<U, F = E>(\n _fn: (value: never) => ResultDefinition<U, F>,\n ): ResultDefinition<U, E> {\n return this as unknown as ResultDefinition<U, E>;\n }\n\n /**\n * Retrieves the error value contained in this `Err`.\n * @returns The error value contained in this `Err`.\n */\n unwrapErr(): E {\n return this.error;\n }\n\n /**\n * Returns the inner error. After an `isErr()` type guard, TypeScript narrows the return type to `E`.\n * Without a type guard, returns `T | E` (use `isOk()` or `isErr()` for type narrowing).\n * @returns The error value contained in this `Err`.\n */\n value(): E {\n return this.error;\n }\n\n /**\n * Returns the contained value if `Ok`, otherwise returns the provided default value.\n * @template U The type of the default value.\n * @param defaultValue The value to return since this is an `Err`.\n * @returns The provided default value.\n */\n unwrapOr<U>(defaultValue: U): U {\n return defaultValue;\n }\n\n /**\n * Returns the contained value if `Ok`, otherwise computes and returns the result of the provided function.\n * @template U The type of the default value.\n * @param fn The function to compute the default value.\n * @returns The result of calling the provided function with the error.\n */\n unwrapOrElse<U>(fn: (error: E) => U): U {\n return fn(this.error);\n }\n\n /**\n * Returns this `Err` if it is `Err`, otherwise returns the result of the provided function.\n * @template T The type of the alternative success value.\n * @template F The type of the alternative error.\n * @param fn The function to compute the alternative result.\n * @returns The result of calling the provided function with the error.\n */\n orElse<T, F>(\n fn: (error: E) => ResultDefinition<T, F>,\n ): ResultDefinition<T, F> {\n return fn(this.error);\n }\n\n /**\n * Converts `Result` type to `Option` type.\n * @returns `Some` if the result is `Ok`, `None` if the result is `Err`.\n */\n ok() {\n return None();\n }\n}\n","import type { ResultDefinition } from \"./result\";\nimport type { Err } from \"./err\";\n\n/**\n * Represents a successful result (`Ok`) that contains a value.\n * @template T The type of the value contained in this `Ok`.\n */\nexport class Ok<T> implements ResultDefinition<T, never> {\n /**\n * Creates a new `Ok` instance with the given value.\n * @param _value The value to wrap in the `Ok` instance.\n */\n constructor(private _value: T) {}\n /**\n * Checks if this result is an `Ok`.\n * @returns `true` because this is an `Ok`.\n */\n isOk(): this is Ok<T> {\n return true;\n }\n\n /**\n * Checks if this result is an `Err`.\n * @returns `false` because this is an `Ok`.\n */\n isErr(): this is Err<never> {\n return false;\n }\n\n /**\n * Retrieves the value contained in this `Ok`.\n * @returns The value contained in this `Ok`.\n */\n unwrap(): T {\n return this._value;\n }\n\n /**\n * Returns the inner value. After an `isOk()` type guard, TypeScript narrows the return type to `T`.\n * Without a type guard, returns `T | E` (use `isOk()` or `isErr()` for type narrowing).\n * @returns The value contained in this `Ok`.\n */\n value(): T {\n return this._value;\n }\n\n /**\n * Applies a transformation function to the value contained in this `Ok` and returns a new `Result` with the transformed value.\n * @template U The type of the transformed value.\n * @param fn The transformation function to apply to the value.\n * @returns A new `Ok` containing the transformed value.\n */\n map<U>(fn: (value: T) => U): ResultDefinition<U, never> {\n return new Ok(fn(this._value)) as unknown as ResultDefinition<U, never>;\n }\n\n /**\n * Applies a transformation function that returns a `Result` to the value contained in this `Ok`.\n * @template U The type of the value in the resulting `Result`.\n * @template E The type of the error in the resulting `Result`.\n * @param fn The transformation function to apply to the value.\n * @returns The result of applying the transformation function.\n */\n flatMap<U, E = never>(\n fn: (value: T) => ResultDefinition<U, E>,\n ): ResultDefinition<U, E> {\n return fn(this._value);\n }\n\n /**\n * Maps the error value (if any). Since this is an `Ok`, the error mapping function is ignored, and the original `Ok` is returned.\n * @template U The type of the error (ignored for `Ok`). Can be any type.\n * @param _fn The mapping function for errors (not used).\n * @returns The original `Ok` instance.\n */\n mapErr<U>(_fn: (err: never) => U): ResultDefinition<T, U> {\n return this as unknown as ResultDefinition<T, U>;\n }\n\n /**\n * Retrieves the error contained in this result. Since this is an `Ok`, an error is thrown.\n * @throws An error because `unwrapErr` is called on an `Ok`.\n */\n unwrapErr(): never {\n throw new Error(\"Called unwrapErr on an Ok value\");\n }\n\n /**\n * Returns the contained value if `Ok`, otherwise returns the provided default value.\n * @template U The type of the default value.\n * @param defaultValue The value to return if this is an `Err`.\n * @returns The value contained in this `Ok`.\n */\n unwrapOr<U>(defaultValue: U): T {\n return this._value;\n }\n\n /**\n * Returns the contained value if `Ok`, otherwise computes and returns the result of the provided function.\n * @template U The type of the default value.\n * @param fn The function to compute the default value.\n * @returns The value contained in this `Ok`.\n */\n unwrapOrElse<U>(fn: (error: never) => U): T {\n return this._value;\n }\n\n /**\n * Returns this `Ok` if it is `Ok`, otherwise returns the result of the provided function.\n * @template F The type of the alternative error.\n * @param fn The function to compute the alternative result.\n * @returns The original `Ok` instance.\n */\n orElse<F>(fn: (error: never) => ResultDefinition<T, F>): ResultDefinition<T, F> {\n return this as unknown as ResultDefinition<T, F>;\n }\n\n /**\n * Converts `Result` type to `Option` type.\n * @returns `Some` if the result is `Ok`, `None` if the result is `Err`.\n */\n ok() {\n return Some(this._value);\n }\n}\n","import {\n Err as ErrType,\n Ok as OkType,\n type Result,\n} from \"./__internal__/return-types\";\n\n/**\n * Creates a new `Ok` instance, representing a successful result.\n * @template T The type of the value contained in the `Ok`.\n * @param value The value to wrap in the `Ok` instance.\n * @returns An `Ok` instance containing the given value.\n * @example\n * const result = Ok(42);\n * console.log(result.isOk()); // true\n * console.log(result.unwrap()); // 42\n */\nfunction Ok<T>(value: T): OkType<T> {\n return new OkType(value);\n}\n\n/**\n * Creates an Err - strings are converted to Error, everything else preserved\n */\nfunction Err<E>(error: E): ErrType<E> {\n return new ErrType(error);\n}\n\n// biome-ignore lint/suspicious/noExplicitAny: <explanation>\n(global as any).Ok = Ok;\n// biome-ignore lint/suspicious/noExplicitAny: <explanation>\n(global as any).Err = Err;\n\nexport { Err, Ok, Result, ErrType, OkType };\n","import type { None as NoneType } from \"./none\";\nimport type { Option } from \"./option\";\nimport { None } from \"../../option\";\nimport { Ok } from \"@/result\";\n\n/**\n * Represents a `Some` option, which holds a value.\n * @template T The type of the value held by this `Some` instance.\n */\nexport class Some<T> {\n /**\n * Creates a new `Some` option with the given value.\n * @param _value The value to be wrapped in the `Some` option.\n */\n constructor(private _value: T) { }\n\n /**\n * Checks if this option is a `Some`.\n * @returns `true` if this option is a `Some`, otherwise `false`.\n */\n isSome(): this is Some<T> {\n return true;\n }\n\n /**\n * Checks if this option is a `None`.\n * @returns `false` because this is a `Some`.\n */\n isNone(): this is NoneType {\n return false;\n }\n\n /**\n * Unwraps the value held by this `Some` option.\n * @returns The value held by this `Some` option.\n */\n unwrap(): T {\n return this._value;\n }\n\n /**\n * Returns the inner value. After an `isSome()` type guard, TypeScript narrows the return type to `T`.\n * Without a type guard, returns `T | undefined` (use `isSome()` or `isNone()` for type narrowing).\n * @returns The value held by this `Some` option.\n */\n value(): T {\n return this._value;\n }\n\n /**\n * Applies a transformation function to the value held by this `Some` option and returns a new `Option` with the transformed value.\n * @template U The type of the transformed value.\n * @param fn The transformation function to apply to the value.\n * @returns A new `Some` option containing the transformed value.\n */\n map<U>(fn: (value: T) => U): Option<U> {\n return new Some(fn(this._value));\n }\n\n /**\n * Applies a transformation function that returns an `Option` to the value held by this `Some` option.\n * @template U The type of the value in the resulting `Option`.\n * @param fn The transformation function to apply to the value.\n * @returns The result of applying the transformation function.\n */\n flatMap<U>(fn: (value: T) => Option<U>): Option<U> {\n return fn(this._value);\n }\n\n /**\n * Returns the value held by this `Some` option, ignoring the default value provided.\n * @param _ A default value (ignored in this implementation).\n * @returns The value held by this `Some` option.\n */\n unwrapOr(_: T): T {\n return this._value;\n }\n\n /**\n * Returns the value held by this `Some` option, ignoring the function provided.\n * @template U The type of the default value.\n * @param _fn A function to compute the default value (ignored in this implementation).\n * @returns The value held by this `Some` option.\n */\n unwrapOrElse<U>(_fn: () => U): T {\n return this._value;\n }\n\n /**\n * Converts this `Option` to a `Result`, using the provided error value if this is `None`.\n * @template E The type of the error.\n * @param _error The error value to use if this is `None` (ignored since this is `Some`).\n * @returns An `Ok` result containing the value from this `Some`.\n */\n okOr<E>(_error: E) {\n return Ok(this._value);\n }\n\n /**\n * Filters this `Option` based on a predicate function.\n * @param predicate The function to test the value.\n * @returns This `Some` if the predicate returns true, otherwise `None`.\n */\n filter(predicate: (value: T) => boolean): Option<T> {\n return predicate(this._value) ? this : None();\n }\n}\n","import type { Some } from \"./some\";\nimport type { Option } from \"./option\";\nimport { None as NoneFactory } from \"../../option\";\nimport { Err } from \"@/result\";\n\n/**\n * Represents a `None` option, which holds no value.\n */\nexport class None {\n /**\n * Checks if this option is a `Some`.\n * @returns `false` because this is a `None`.\n */\n isSome(): this is Some<never> {\n return false;\n }\n\n /**\n * Checks if this option is a `None`.\n * @returns `true` because this is a `None`.\n */\n isNone(): this is None {\n return true;\n }\n\n /**\n * Attempts to unwrap the value from this `None` option.\n * @throws An error because `None` has no value.\n */\n unwrap(): never {\n throw new Error(\"Called unwrap on a None value\");\n }\n\n /**\n * Returns `undefined` for a `None` option. After an `isNone()` type guard, TypeScript narrows the return type to `undefined`.\n * Without a type guard, returns `T | undefined` (use `isSome()` or `isNone()` for type narrowing).\n * Unlike `unwrap()`, this method does not throw an error.\n * @returns `undefined` because this is a `None`.\n */\n value(): undefined {\n return undefined;\n }\n\n /**\n * Applies a transformation function to the value (which does not exist) of this `None` option.\n * @template U The type of the value that would have been returned.\n * @param _fn The transformation function (ignored in this implementation).\n * @returns The singleton `None` instance.\n */\n map<U>(_fn: (value: never) => U): Option<U> {\n return NoneFactory();\n }\n\n /**\n * Applies a transformation function that returns an `Option` to the value (which does not exist) of this `None` option.\n * @template U The type of the value in the resulting `Option`.\n * @param _fn The transformation function (ignored in this implementation).\n * @returns The singleton `None` instance.\n */\n flatMap<U>(_fn: (value: never) => Option<U>): Option<U> {\n return NoneFactory();\n }\n\n /**\n * Returns the default value provided, since `None` has no value.\n * @template T The type of the default value.\n * @param defaultValue The value to return.\n * @returns The default value provided.\n */\n unwrapOr<T>(defaultValue: T): T {\n return defaultValue;\n }\n\n /**\n * Computes and returns the default value using the provided function, since `None` has no value.\n * @template T The type of the default value.\n * @param fn The function to compute the default value.\n * @returns The result of calling the provided function.\n */\n unwrapOrElse<T>(fn: () => T): T {\n return fn();\n }\n\n /**\n * Converts this `Option` to a `Result`, using the provided error value since this is `None`.\n * @template E The type of the error.\n * @param error The error value to use.\n * @returns An `Err` result containing the provided error.\n */\n okOr<E>(error: E) {\n return Err(error);\n }\n\n /**\n * Filters this `Option` based on a predicate function.\n * @param _predicate The function to test the value (ignored since this is `None`).\n * @returns `None` since there is no value to filter.\n */\n filter<T>(_predicate: (value: never) => boolean): Option<T> {\n return NoneFactory();\n }\n}\n","import {\n\tSome as SomeType,\n\tNone as NoneType,\n\ttype Option,\n} from \"./__internal__/return-types\";\n\n/**\n * Creates a new `Some` instance, representing an `Option` with a value.\n * @template T The type of the value contained in the `Some`.\n * @param value The value to wrap in the `Some` instance.\n * @returns A `Some` instance containing the given value.\n * @example\n * const option = Some(42);\n * console.log(option.isSome()); // true\n * console.log(option.unwrap()); // 42\n */\nfunction Some<T>(value: T): SomeType<T> {\n\treturn new SomeType(value);\n}\n\nlet NONE_INSTANCE: NoneType | null = null;\n\n/**\n * Returns the singleton `None` instance, representing an `Option` with no value.\n * Uses a singleton pattern to reduce memory allocations.\n * @returns The singleton `None` instance.\n * @example\n * const option = None();\n * console.log(option.isNone()); // true\n * console.log(option.unwrap()); // throws Error: \"Called unwrap on a None value\"\n */\nfunction None(): NoneType {\n\tif (!NONE_INSTANCE) {\n\t\tNONE_INSTANCE = new NoneType();\n\t}\n\treturn NONE_INSTANCE;\n}\n\n(global as any).Some = Some;\n(global as any).None = None;\n\nexport { None, Some, Option };\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/result/__internal__/return-types/err.ts","../../src/result/__internal__/return-types/ok.ts","../../src/result/result.ts","../../src/option/__internal__/return-types/some.ts","../../src/option/__internal__/return-types/none.ts","../../src/option/option.ts"],"names":["TAG","Ok","Err","Some","None"],"mappings":"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","file":"option.js","sourcesContent":["import type { Ok } from \"./ok\";\nimport type { ResultDefinition } from \"./result\";\n\n// Hidden discriminant tag for O(1) dispatch in `match`.\n// Symbol.for ensures the same global symbol regardless of bundling.\nconst TAG = Symbol.for(\"@consolidados/results.tag\");\n\n/**\n * Represents a failed result (`Err`) that contains an error value.\n * @template E The type of the error contained in this `Err`. Can be any type (Error, string, enum, etc).\n */\nexport class Err<E> implements ResultDefinition<never, E> {\n /** Hidden tag — read by `match()` for O(1) dispatch. */\n readonly [TAG] = \"Err\" as const;\n private error: E;\n /**\n * Creates a new `Err` instance with the given error value.\n * @param error The error to wrap in the `Err` instance. Can be any type.\n */\n constructor(error: E) {\n // Store error as-is - conversion is handled by factory function\n this.error = error;\n // Object.setPrototypeOf(this, Err.prototype);\n //\n // if (Error.captureStackTrace) {\n // Error.captureStackTrace(this, Err);\n // }\n }\n\n /**\n * Checks if this result is an `Ok`.\n * @returns `false` because this is an `Err`.\n */\n isOk(): this is Ok<never> {\n return false;\n }\n\n /**\n * Checks if this result is an `Err`.\n * @returns `true` because this is an `Err`.\n */\n isErr(): this is Err<E> {\n return true;\n }\n\n /**\n * Retrieves the value contained in this result. Since this is an `Err`, an error is thrown.\n * @throws An error because `unwrap` is called on an `Err`.\n */\n unwrap(): never {\n throw new Error(\"Called unwrap on an Err value\");\n }\n\n /**\n * Maps the value (if any). Since this is an `Err`, the mapping function is ignored, and the original `Err` is returned.\n * @template U The type of the value (ignored for `Err`).\n * @param _fn The mapping function for values (not used).\n * @returns The original `Err` instance.\n */\n map<U>(_fn: (value: never) => U): ResultDefinition<never, E> {\n return this as unknown as ResultDefinition<never, E>;\n }\n\n /**\n * Maps the error value using a transformation function and returns a new `Result` with the transformed error.\n * @template U The type of the transformed error. Can be any type.\n * @param fn The transformation function to apply to the error value.\n * @returns A new `Err` containing the transformed error.\n */\n mapErr<U>(fn: (err: E) => U): ResultDefinition<never, U> {\n return new Err<U>(fn(this.error)) as unknown as ResultDefinition<never, U>;\n }\n\n /**\n * Applies a transformation function that returns a `Result` to the value (which does not exist) of this `Err`.\n * @template U The type of the value in the resulting `Result`.\n * @template F The type of the error in the resulting `Result`.\n * @param _fn The transformation function (ignored in this implementation).\n * @returns The original `Err` instance cast to the new error type.\n */\n flatMap<U, F = E>(\n _fn: (value: never) => ResultDefinition<U, F>,\n ): ResultDefinition<U, E> {\n return this as unknown as ResultDefinition<U, E>;\n }\n\n /**\n * Retrieves the error value contained in this `Err`.\n * @returns The error value contained in this `Err`.\n */\n unwrapErr(): E {\n return this.error;\n }\n\n /**\n * Returns the inner error. After an `isErr()` type guard, TypeScript narrows the return type to `E`.\n * Without a type guard, returns `T | E` (use `isOk()` or `isErr()` for type narrowing).\n * @returns The error value contained in this `Err`.\n */\n value(): E {\n return this.error;\n }\n\n /**\n * Returns the contained value if `Ok`, otherwise returns the provided default value.\n * @template U The type of the default value.\n * @param defaultValue The value to return since this is an `Err`.\n * @returns The provided default value.\n */\n unwrapOr<U>(defaultValue: U): U {\n return defaultValue;\n }\n\n /**\n * Returns the contained value if `Ok`, otherwise computes and returns the result of the provided function.\n * @template U The type of the default value.\n * @param fn The function to compute the default value.\n * @returns The result of calling the provided function with the error.\n */\n unwrapOrElse<U>(fn: (error: E) => U): U {\n return fn(this.error);\n }\n\n /**\n * Returns this `Err` if it is `Err`, otherwise returns the result of the provided function.\n * @template T The type of the alternative success value.\n * @template F The type of the alternative error.\n * @param fn The function to compute the alternative result.\n * @returns The result of calling the provided function with the error.\n */\n orElse<T, F>(\n fn: (error: E) => ResultDefinition<T, F>,\n ): ResultDefinition<T, F> {\n return fn(this.error);\n }\n\n /**\n * Converts `Result` type to `Option` type.\n * @returns `Some` if the result is `Ok`, `None` if the result is `Err`.\n */\n ok() {\n return None();\n }\n}\n","import type { ResultDefinition } from \"./result\";\nimport type { Err } from \"./err\";\n\n// Hidden discriminant tag for O(1) dispatch in `match`.\n// Symbol.for ensures the same global symbol regardless of bundling.\nconst TAG = Symbol.for(\"@consolidados/results.tag\");\n\n/**\n * Represents a successful result (`Ok`) that contains a value.\n * @template T The type of the value contained in this `Ok`.\n */\nexport class Ok<T> implements ResultDefinition<T, never> {\n /** Hidden tag — read by `match()` for O(1) dispatch. Symbol-keyed so it\n * doesn't appear in `for...in`, `Object.keys`, or `JSON.stringify`. */\n readonly [TAG] = \"Ok\" as const;\n\n /**\n * Creates a new `Ok` instance with the given value.\n * @param _value The value to wrap in the `Ok` instance.\n */\n constructor(private _value: T) {}\n /**\n * Checks if this result is an `Ok`.\n * @returns `true` because this is an `Ok`.\n */\n isOk(): this is Ok<T> {\n return true;\n }\n\n /**\n * Checks if this result is an `Err`.\n * @returns `false` because this is an `Ok`.\n */\n isErr(): this is Err<never> {\n return false;\n }\n\n /**\n * Retrieves the value contained in this `Ok`.\n * @returns The value contained in this `Ok`.\n */\n unwrap(): T {\n return this._value;\n }\n\n /**\n * Returns the inner value. After an `isOk()` type guard, TypeScript narrows the return type to `T`.\n * Without a type guard, returns `T | E` (use `isOk()` or `isErr()` for type narrowing).\n * @returns The value contained in this `Ok`.\n */\n value(): T {\n return this._value;\n }\n\n /**\n * Applies a transformation function to the value contained in this `Ok` and returns a new `Result` with the transformed value.\n * @template U The type of the transformed value.\n * @param fn The transformation function to apply to the value.\n * @returns A new `Ok` containing the transformed value.\n */\n map<U>(fn: (value: T) => U): ResultDefinition<U, never> {\n return new Ok(fn(this._value)) as unknown as ResultDefinition<U, never>;\n }\n\n /**\n * Applies a transformation function that returns a `Result` to the value contained in this `Ok`.\n * @template U The type of the value in the resulting `Result`.\n * @template E The type of the error in the resulting `Result`.\n * @param fn The transformation function to apply to the value.\n * @returns The result of applying the transformation function.\n */\n flatMap<U, E = never>(\n fn: (value: T) => ResultDefinition<U, E>,\n ): ResultDefinition<U, E> {\n return fn(this._value);\n }\n\n /**\n * Maps the error value (if any). Since this is an `Ok`, the error mapping function is ignored, and the original `Ok` is returned.\n * @template U The type of the error (ignored for `Ok`). Can be any type.\n * @param _fn The mapping function for errors (not used).\n * @returns The original `Ok` instance.\n */\n mapErr<U>(_fn: (err: never) => U): ResultDefinition<T, U> {\n return this as unknown as ResultDefinition<T, U>;\n }\n\n /**\n * Retrieves the error contained in this result. Since this is an `Ok`, an error is thrown.\n * @throws An error because `unwrapErr` is called on an `Ok`.\n */\n unwrapErr(): never {\n throw new Error(\"Called unwrapErr on an Ok value\");\n }\n\n /**\n * Returns the contained value if `Ok`, otherwise returns the provided default value.\n * @template U The type of the default value.\n * @param defaultValue The value to return if this is an `Err`.\n * @returns The value contained in this `Ok`.\n */\n unwrapOr<U>(defaultValue: U): T {\n return this._value;\n }\n\n /**\n * Returns the contained value if `Ok`, otherwise computes and returns the result of the provided function.\n * @template U The type of the default value.\n * @param fn The function to compute the default value.\n * @returns The value contained in this `Ok`.\n */\n unwrapOrElse<U>(fn: (error: never) => U): T {\n return this._value;\n }\n\n /**\n * Returns this `Ok` if it is `Ok`, otherwise returns the result of the provided function.\n * @template F The type of the alternative error.\n * @param fn The function to compute the alternative result.\n * @returns The original `Ok` instance.\n */\n orElse<F>(fn: (error: never) => ResultDefinition<T, F>): ResultDefinition<T, F> {\n return this as unknown as ResultDefinition<T, F>;\n }\n\n /**\n * Converts `Result` type to `Option` type.\n * @returns `Some` if the result is `Ok`, `None` if the result is `Err`.\n */\n ok() {\n return Some(this._value);\n }\n}\n","import {\n Err as ErrType,\n Ok as OkType,\n type Result,\n} from \"./__internal__/return-types\";\n\n/**\n * Creates a new `Ok` instance, representing a successful result.\n * @template T The type of the value contained in the `Ok`.\n * @param value The value to wrap in the `Ok` instance.\n * @returns An `Ok` instance containing the given value.\n * @example\n * const result = Ok(42);\n * console.log(result.isOk()); // true\n * console.log(result.unwrap()); // 42\n */\nfunction Ok<T>(value: T): OkType<T> {\n return new OkType(value);\n}\n\n/**\n * Creates an Err - strings are converted to Error, everything else preserved\n */\nfunction Err<E>(error: E): ErrType<E> {\n return new ErrType(error);\n}\n\n// biome-ignore lint/suspicious/noExplicitAny: <explanation>\n(globalThis as any).Ok = Ok;\n// biome-ignore lint/suspicious/noExplicitAny: <explanation>\n(globalThis as any).Err = Err;\n\nexport { Err, Ok, Result, ErrType, OkType };\n","import type { None as NoneType } from \"./none\";\nimport type { Option } from \"./option\";\nimport { None } from \"../../option\";\nimport { Ok } from \"@/result\";\n\n// Hidden discriminant tag for O(1) dispatch in `match`.\n// Symbol.for ensures the same global symbol regardless of bundling.\nconst TAG = Symbol.for(\"@consolidados/results.tag\");\n\n/**\n * Represents a `Some` option, which holds a value.\n * @template T The type of the value held by this `Some` instance.\n */\nexport class Some<T> {\n /** Hidden tag — read by `match()` for O(1) dispatch. */\n readonly [TAG] = \"Some\" as const;\n\n /**\n * Creates a new `Some` option with the given value.\n * @param _value The value to be wrapped in the `Some` option.\n */\n constructor(private _value: T) { }\n\n /**\n * Checks if this option is a `Some`.\n * @returns `true` if this option is a `Some`, otherwise `false`.\n */\n isSome(): this is Some<T> {\n return true;\n }\n\n /**\n * Checks if this option is a `None`.\n * @returns `false` because this is a `Some`.\n */\n isNone(): this is NoneType {\n return false;\n }\n\n /**\n * Unwraps the value held by this `Some` option.\n * @returns The value held by this `Some` option.\n */\n unwrap(): T {\n return this._value;\n }\n\n /**\n * Returns the inner value. After an `isSome()` type guard, TypeScript narrows the return type to `T`.\n * Without a type guard, returns `T | undefined` (use `isSome()` or `isNone()` for type narrowing).\n * @returns The value held by this `Some` option.\n */\n value(): T {\n return this._value;\n }\n\n /**\n * Applies a transformation function to the value held by this `Some` option and returns a new `Option` with the transformed value.\n * @template U The type of the transformed value.\n * @param fn The transformation function to apply to the value.\n * @returns A new `Some` option containing the transformed value.\n */\n map<U>(fn: (value: T) => U): Option<U> {\n return new Some(fn(this._value));\n }\n\n /**\n * Applies a transformation function that returns an `Option` to the value held by this `Some` option.\n * @template U The type of the value in the resulting `Option`.\n * @param fn The transformation function to apply to the value.\n * @returns The result of applying the transformation function.\n */\n flatMap<U>(fn: (value: T) => Option<U>): Option<U> {\n return fn(this._value);\n }\n\n /**\n * Returns the value held by this `Some` option, ignoring the default value provided.\n * @param _ A default value (ignored in this implementation).\n * @returns The value held by this `Some` option.\n */\n unwrapOr(_: T): T {\n return this._value;\n }\n\n /**\n * Returns the value held by this `Some` option, ignoring the function provided.\n * @template U The type of the default value.\n * @param _fn A function to compute the default value (ignored in this implementation).\n * @returns The value held by this `Some` option.\n */\n unwrapOrElse<U>(_fn: () => U): T {\n return this._value;\n }\n\n /**\n * Converts this `Option` to a `Result`, using the provided error value if this is `None`.\n * @template E The type of the error.\n * @param _error The error value to use if this is `None` (ignored since this is `Some`).\n * @returns An `Ok` result containing the value from this `Some`.\n */\n okOr<E>(_error: E) {\n return Ok(this._value);\n }\n\n /**\n * Filters this `Option` based on a predicate function.\n * @param predicate The function to test the value.\n * @returns This `Some` if the predicate returns true, otherwise `None`.\n */\n filter(predicate: (value: T) => boolean): Option<T> {\n return predicate(this._value) ? this : None();\n }\n}\n","import type { Some } from \"./some\";\nimport type { Option } from \"./option\";\nimport { None as NoneFactory } from \"../../option\";\nimport { Err } from \"@/result\";\n\n// Hidden discriminant tag for O(1) dispatch in `match`.\n// Symbol.for ensures the same global symbol regardless of bundling.\nconst TAG = Symbol.for(\"@consolidados/results.tag\");\n\n/**\n * Represents a `None` option, which holds no value.\n */\nexport class None {\n /** Hidden tag — read by `match()` for O(1) dispatch. */\n readonly [TAG] = \"None\" as const;\n\n /**\n * Checks if this option is a `Some`.\n * @returns `false` because this is a `None`.\n */\n isSome(): this is Some<never> {\n return false;\n }\n\n /**\n * Checks if this option is a `None`.\n * @returns `true` because this is a `None`.\n */\n isNone(): this is None {\n return true;\n }\n\n /**\n * Attempts to unwrap the value from this `None` option.\n * @throws An error because `None` has no value.\n */\n unwrap(): never {\n throw new Error(\"Called unwrap on a None value\");\n }\n\n /**\n * Returns `undefined` for a `None` option. After an `isNone()` type guard, TypeScript narrows the return type to `undefined`.\n * Without a type guard, returns `T | undefined` (use `isSome()` or `isNone()` for type narrowing).\n * Unlike `unwrap()`, this method does not throw an error.\n * @returns `undefined` because this is a `None`.\n */\n value(): undefined {\n return undefined;\n }\n\n /**\n * Applies a transformation function to the value (which does not exist) of this `None` option.\n * @template U The type of the value that would have been returned.\n * @param _fn The transformation function (ignored in this implementation).\n * @returns The singleton `None` instance.\n */\n map<U>(_fn: (value: never) => U): Option<U> {\n return NoneFactory();\n }\n\n /**\n * Applies a transformation function that returns an `Option` to the value (which does not exist) of this `None` option.\n * @template U The type of the value in the resulting `Option`.\n * @param _fn The transformation function (ignored in this implementation).\n * @returns The singleton `None` instance.\n */\n flatMap<U>(_fn: (value: never) => Option<U>): Option<U> {\n return NoneFactory();\n }\n\n /**\n * Returns the default value provided, since `None` has no value.\n * @template T The type of the default value.\n * @param defaultValue The value to return.\n * @returns The default value provided.\n */\n unwrapOr<T>(defaultValue: T): T {\n return defaultValue;\n }\n\n /**\n * Computes and returns the default value using the provided function, since `None` has no value.\n * @template T The type of the default value.\n * @param fn The function to compute the default value.\n * @returns The result of calling the provided function.\n */\n unwrapOrElse<T>(fn: () => T): T {\n return fn();\n }\n\n /**\n * Converts this `Option` to a `Result`, using the provided error value since this is `None`.\n * @template E The type of the error.\n * @param error The error value to use.\n * @returns An `Err` result containing the provided error.\n */\n okOr<E>(error: E) {\n return Err(error);\n }\n\n /**\n * Filters this `Option` based on a predicate function.\n * @param _predicate The function to test the value (ignored since this is `None`).\n * @returns `None` since there is no value to filter.\n */\n filter<T>(_predicate: (value: never) => boolean): Option<T> {\n return NoneFactory();\n }\n}\n","import {\n\tSome as SomeType,\n\tNone as NoneType,\n\ttype Option,\n} from \"./__internal__/return-types\";\n\n/**\n * Creates a new `Some` instance, representing an `Option` with a value.\n * @template T The type of the value contained in the `Some`.\n * @param value The value to wrap in the `Some` instance.\n * @returns A `Some` instance containing the given value.\n * @example\n * const option = Some(42);\n * console.log(option.isSome()); // true\n * console.log(option.unwrap()); // 42\n */\nfunction Some<T>(value: T): SomeType<T> {\n\treturn new SomeType(value);\n}\n\nlet NONE_INSTANCE: NoneType | null = null;\n\n/**\n * Returns the singleton `None` instance, representing an `Option` with no value.\n * Uses a singleton pattern to reduce memory allocations.\n * @returns The singleton `None` instance.\n * @example\n * const option = None();\n * console.log(option.isNone()); // true\n * console.log(option.unwrap()); // throws Error: \"Called unwrap on a None value\"\n */\nfunction None(): NoneType {\n\tif (!NONE_INSTANCE) {\n\t\tNONE_INSTANCE = new NoneType();\n\t}\n\treturn NONE_INSTANCE;\n}\n\n(globalThis as any).Some = Some;\n(globalThis as any).None = None;\n\nexport { None, Some, Option };\n"]}
|
|
@@ -26,12 +26,16 @@ interface ResultDefinition<T = never, E = never> {
|
|
|
26
26
|
ok(): Option<T>;
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
+
declare const TAG$3: unique symbol;
|
|
29
30
|
/**
|
|
30
31
|
* Represents a successful result (`Ok`) that contains a value.
|
|
31
32
|
* @template T The type of the value contained in this `Ok`.
|
|
32
33
|
*/
|
|
33
34
|
declare class Ok<T> implements ResultDefinition<T, never> {
|
|
34
35
|
private _value;
|
|
36
|
+
/** Hidden tag — read by `match()` for O(1) dispatch. Symbol-keyed so it
|
|
37
|
+
* doesn't appear in `for...in`, `Object.keys`, or `JSON.stringify`. */
|
|
38
|
+
readonly [TAG$3]: "Ok";
|
|
35
39
|
/**
|
|
36
40
|
* Creates a new `Ok` instance with the given value.
|
|
37
41
|
* @param _value The value to wrap in the `Ok` instance.
|
|
@@ -113,11 +117,14 @@ declare class Ok<T> implements ResultDefinition<T, never> {
|
|
|
113
117
|
ok(): Some<T>;
|
|
114
118
|
}
|
|
115
119
|
|
|
120
|
+
declare const TAG$2: unique symbol;
|
|
116
121
|
/**
|
|
117
122
|
* Represents a failed result (`Err`) that contains an error value.
|
|
118
123
|
* @template E The type of the error contained in this `Err`. Can be any type (Error, string, enum, etc).
|
|
119
124
|
*/
|
|
120
125
|
declare class Err<E> implements ResultDefinition<never, E> {
|
|
126
|
+
/** Hidden tag — read by `match()` for O(1) dispatch. */
|
|
127
|
+
readonly [TAG$2]: "Err";
|
|
121
128
|
private error;
|
|
122
129
|
/**
|
|
123
130
|
* Creates a new `Err` instance with the given error value.
|
|
@@ -201,12 +208,15 @@ declare class Err<E> implements ResultDefinition<never, E> {
|
|
|
201
208
|
ok(): None;
|
|
202
209
|
}
|
|
203
210
|
|
|
211
|
+
declare const TAG$1: unique symbol;
|
|
204
212
|
/**
|
|
205
213
|
* Represents a `Some` option, which holds a value.
|
|
206
214
|
* @template T The type of the value held by this `Some` instance.
|
|
207
215
|
*/
|
|
208
216
|
declare class Some<T> {
|
|
209
217
|
private _value;
|
|
218
|
+
/** Hidden tag — read by `match()` for O(1) dispatch. */
|
|
219
|
+
readonly [TAG$1]: "Some";
|
|
210
220
|
/**
|
|
211
221
|
* Creates a new `Some` option with the given value.
|
|
212
222
|
* @param _value The value to be wrapped in the `Some` option.
|
|
@@ -275,10 +285,13 @@ declare class Some<T> {
|
|
|
275
285
|
filter(predicate: (value: T) => boolean): Option<T>;
|
|
276
286
|
}
|
|
277
287
|
|
|
288
|
+
declare const TAG: unique symbol;
|
|
278
289
|
/**
|
|
279
290
|
* Represents a `None` option, which holds no value.
|
|
280
291
|
*/
|
|
281
292
|
declare class None {
|
|
293
|
+
/** Hidden tag — read by `match()` for O(1) dispatch. */
|
|
294
|
+
readonly [TAG]: "None";
|
|
282
295
|
/**
|
|
283
296
|
* Checks if this option is a `Some`.
|
|
284
297
|
* @returns `false` because this is a `None`.
|
|
@@ -26,12 +26,16 @@ interface ResultDefinition<T = never, E = never> {
|
|
|
26
26
|
ok(): Option<T>;
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
+
declare const TAG$3: unique symbol;
|
|
29
30
|
/**
|
|
30
31
|
* Represents a successful result (`Ok`) that contains a value.
|
|
31
32
|
* @template T The type of the value contained in this `Ok`.
|
|
32
33
|
*/
|
|
33
34
|
declare class Ok<T> implements ResultDefinition<T, never> {
|
|
34
35
|
private _value;
|
|
36
|
+
/** Hidden tag — read by `match()` for O(1) dispatch. Symbol-keyed so it
|
|
37
|
+
* doesn't appear in `for...in`, `Object.keys`, or `JSON.stringify`. */
|
|
38
|
+
readonly [TAG$3]: "Ok";
|
|
35
39
|
/**
|
|
36
40
|
* Creates a new `Ok` instance with the given value.
|
|
37
41
|
* @param _value The value to wrap in the `Ok` instance.
|
|
@@ -113,11 +117,14 @@ declare class Ok<T> implements ResultDefinition<T, never> {
|
|
|
113
117
|
ok(): Some<T>;
|
|
114
118
|
}
|
|
115
119
|
|
|
120
|
+
declare const TAG$2: unique symbol;
|
|
116
121
|
/**
|
|
117
122
|
* Represents a failed result (`Err`) that contains an error value.
|
|
118
123
|
* @template E The type of the error contained in this `Err`. Can be any type (Error, string, enum, etc).
|
|
119
124
|
*/
|
|
120
125
|
declare class Err<E> implements ResultDefinition<never, E> {
|
|
126
|
+
/** Hidden tag — read by `match()` for O(1) dispatch. */
|
|
127
|
+
readonly [TAG$2]: "Err";
|
|
121
128
|
private error;
|
|
122
129
|
/**
|
|
123
130
|
* Creates a new `Err` instance with the given error value.
|
|
@@ -201,12 +208,15 @@ declare class Err<E> implements ResultDefinition<never, E> {
|
|
|
201
208
|
ok(): None;
|
|
202
209
|
}
|
|
203
210
|
|
|
211
|
+
declare const TAG$1: unique symbol;
|
|
204
212
|
/**
|
|
205
213
|
* Represents a `Some` option, which holds a value.
|
|
206
214
|
* @template T The type of the value held by this `Some` instance.
|
|
207
215
|
*/
|
|
208
216
|
declare class Some<T> {
|
|
209
217
|
private _value;
|
|
218
|
+
/** Hidden tag — read by `match()` for O(1) dispatch. */
|
|
219
|
+
readonly [TAG$1]: "Some";
|
|
210
220
|
/**
|
|
211
221
|
* Creates a new `Some` option with the given value.
|
|
212
222
|
* @param _value The value to be wrapped in the `Some` option.
|
|
@@ -275,10 +285,13 @@ declare class Some<T> {
|
|
|
275
285
|
filter(predicate: (value: T) => boolean): Option<T>;
|
|
276
286
|
}
|
|
277
287
|
|
|
288
|
+
declare const TAG: unique symbol;
|
|
278
289
|
/**
|
|
279
290
|
* Represents a `None` option, which holds no value.
|
|
280
291
|
*/
|
|
281
292
|
declare class None {
|
|
293
|
+
/** Hidden tag — read by `match()` for O(1) dispatch. */
|
|
294
|
+
readonly [TAG]: "None";
|
|
282
295
|
/**
|
|
283
296
|
* Checks if this option is a `Some`.
|
|
284
297
|
* @returns `false` because this is a `None`.
|
package/dist/result/index.cjs
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
// src/result/__internal__/return-types/err.ts
|
|
4
|
+
var TAG = Symbol.for("@consolidados/results.tag");
|
|
4
5
|
var Err = class _Err {
|
|
6
|
+
/** Hidden tag — read by `match()` for O(1) dispatch. */
|
|
7
|
+
[TAG] = "Err";
|
|
5
8
|
error;
|
|
6
9
|
/**
|
|
7
10
|
* Creates a new `Err` instance with the given error value.
|
|
@@ -112,6 +115,7 @@ var Err = class _Err {
|
|
|
112
115
|
};
|
|
113
116
|
|
|
114
117
|
// src/result/__internal__/return-types/ok.ts
|
|
118
|
+
var TAG2 = Symbol.for("@consolidados/results.tag");
|
|
115
119
|
var Ok = class _Ok {
|
|
116
120
|
/**
|
|
117
121
|
* Creates a new `Ok` instance with the given value.
|
|
@@ -120,6 +124,9 @@ var Ok = class _Ok {
|
|
|
120
124
|
constructor(_value) {
|
|
121
125
|
this._value = _value;
|
|
122
126
|
}
|
|
127
|
+
/** Hidden tag — read by `match()` for O(1) dispatch. Symbol-keyed so it
|
|
128
|
+
* doesn't appear in `for...in`, `Object.keys`, or `JSON.stringify`. */
|
|
129
|
+
[TAG2] = "Ok";
|
|
123
130
|
/**
|
|
124
131
|
* Checks if this result is an `Ok`.
|
|
125
132
|
* @returns `true` because this is an `Ok`.
|
|
@@ -227,8 +234,8 @@ function Ok2(value) {
|
|
|
227
234
|
function Err2(error) {
|
|
228
235
|
return new Err(error);
|
|
229
236
|
}
|
|
230
|
-
|
|
231
|
-
|
|
237
|
+
globalThis.Ok = Ok2;
|
|
238
|
+
globalThis.Err = Err2;
|
|
232
239
|
|
|
233
240
|
exports.Err = Err2;
|
|
234
241
|
exports.Ok = Ok2;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/result/__internal__/return-types/err.ts","../../src/result/__internal__/return-types/ok.ts","../../src/result/result.ts"],"names":["Ok","Err"],"mappings":"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","file":"index.cjs","sourcesContent":["import type { Ok } from \"./ok\";\nimport type { ResultDefinition } from \"./result\";\n\n/**\n * Represents a failed result (`Err`) that contains an error value.\n * @template E The type of the error contained in this `Err`. Can be any type (Error, string, enum, etc).\n */\nexport class Err<E> implements ResultDefinition<never, E> {\n private error: E;\n /**\n * Creates a new `Err` instance with the given error value.\n * @param error The error to wrap in the `Err` instance. Can be any type.\n */\n constructor(error: E) {\n // Store error as-is - conversion is handled by factory function\n this.error = error;\n // Object.setPrototypeOf(this, Err.prototype);\n //\n // if (Error.captureStackTrace) {\n // Error.captureStackTrace(this, Err);\n // }\n }\n\n /**\n * Checks if this result is an `Ok`.\n * @returns `false` because this is an `Err`.\n */\n isOk(): this is Ok<never> {\n return false;\n }\n\n /**\n * Checks if this result is an `Err`.\n * @returns `true` because this is an `Err`.\n */\n isErr(): this is Err<E> {\n return true;\n }\n\n /**\n * Retrieves the value contained in this result. Since this is an `Err`, an error is thrown.\n * @throws An error because `unwrap` is called on an `Err`.\n */\n unwrap(): never {\n throw new Error(\"Called unwrap on an Err value\");\n }\n\n /**\n * Maps the value (if any). Since this is an `Err`, the mapping function is ignored, and the original `Err` is returned.\n * @template U The type of the value (ignored for `Err`).\n * @param _fn The mapping function for values (not used).\n * @returns The original `Err` instance.\n */\n map<U>(_fn: (value: never) => U): ResultDefinition<never, E> {\n return this as unknown as ResultDefinition<never, E>;\n }\n\n /**\n * Maps the error value using a transformation function and returns a new `Result` with the transformed error.\n * @template U The type of the transformed error. Can be any type.\n * @param fn The transformation function to apply to the error value.\n * @returns A new `Err` containing the transformed error.\n */\n mapErr<U>(fn: (err: E) => U): ResultDefinition<never, U> {\n return new Err<U>(fn(this.error)) as unknown as ResultDefinition<never, U>;\n }\n\n /**\n * Applies a transformation function that returns a `Result` to the value (which does not exist) of this `Err`.\n * @template U The type of the value in the resulting `Result`.\n * @template F The type of the error in the resulting `Result`.\n * @param _fn The transformation function (ignored in this implementation).\n * @returns The original `Err` instance cast to the new error type.\n */\n flatMap<U, F = E>(\n _fn: (value: never) => ResultDefinition<U, F>,\n ): ResultDefinition<U, E> {\n return this as unknown as ResultDefinition<U, E>;\n }\n\n /**\n * Retrieves the error value contained in this `Err`.\n * @returns The error value contained in this `Err`.\n */\n unwrapErr(): E {\n return this.error;\n }\n\n /**\n * Returns the inner error. After an `isErr()` type guard, TypeScript narrows the return type to `E`.\n * Without a type guard, returns `T | E` (use `isOk()` or `isErr()` for type narrowing).\n * @returns The error value contained in this `Err`.\n */\n value(): E {\n return this.error;\n }\n\n /**\n * Returns the contained value if `Ok`, otherwise returns the provided default value.\n * @template U The type of the default value.\n * @param defaultValue The value to return since this is an `Err`.\n * @returns The provided default value.\n */\n unwrapOr<U>(defaultValue: U): U {\n return defaultValue;\n }\n\n /**\n * Returns the contained value if `Ok`, otherwise computes and returns the result of the provided function.\n * @template U The type of the default value.\n * @param fn The function to compute the default value.\n * @returns The result of calling the provided function with the error.\n */\n unwrapOrElse<U>(fn: (error: E) => U): U {\n return fn(this.error);\n }\n\n /**\n * Returns this `Err` if it is `Err`, otherwise returns the result of the provided function.\n * @template T The type of the alternative success value.\n * @template F The type of the alternative error.\n * @param fn The function to compute the alternative result.\n * @returns The result of calling the provided function with the error.\n */\n orElse<T, F>(\n fn: (error: E) => ResultDefinition<T, F>,\n ): ResultDefinition<T, F> {\n return fn(this.error);\n }\n\n /**\n * Converts `Result` type to `Option` type.\n * @returns `Some` if the result is `Ok`, `None` if the result is `Err`.\n */\n ok() {\n return None();\n }\n}\n","import type { ResultDefinition } from \"./result\";\nimport type { Err } from \"./err\";\n\n/**\n * Represents a successful result (`Ok`) that contains a value.\n * @template T The type of the value contained in this `Ok`.\n */\nexport class Ok<T> implements ResultDefinition<T, never> {\n /**\n * Creates a new `Ok` instance with the given value.\n * @param _value The value to wrap in the `Ok` instance.\n */\n constructor(private _value: T) {}\n /**\n * Checks if this result is an `Ok`.\n * @returns `true` because this is an `Ok`.\n */\n isOk(): this is Ok<T> {\n return true;\n }\n\n /**\n * Checks if this result is an `Err`.\n * @returns `false` because this is an `Ok`.\n */\n isErr(): this is Err<never> {\n return false;\n }\n\n /**\n * Retrieves the value contained in this `Ok`.\n * @returns The value contained in this `Ok`.\n */\n unwrap(): T {\n return this._value;\n }\n\n /**\n * Returns the inner value. After an `isOk()` type guard, TypeScript narrows the return type to `T`.\n * Without a type guard, returns `T | E` (use `isOk()` or `isErr()` for type narrowing).\n * @returns The value contained in this `Ok`.\n */\n value(): T {\n return this._value;\n }\n\n /**\n * Applies a transformation function to the value contained in this `Ok` and returns a new `Result` with the transformed value.\n * @template U The type of the transformed value.\n * @param fn The transformation function to apply to the value.\n * @returns A new `Ok` containing the transformed value.\n */\n map<U>(fn: (value: T) => U): ResultDefinition<U, never> {\n return new Ok(fn(this._value)) as unknown as ResultDefinition<U, never>;\n }\n\n /**\n * Applies a transformation function that returns a `Result` to the value contained in this `Ok`.\n * @template U The type of the value in the resulting `Result`.\n * @template E The type of the error in the resulting `Result`.\n * @param fn The transformation function to apply to the value.\n * @returns The result of applying the transformation function.\n */\n flatMap<U, E = never>(\n fn: (value: T) => ResultDefinition<U, E>,\n ): ResultDefinition<U, E> {\n return fn(this._value);\n }\n\n /**\n * Maps the error value (if any). Since this is an `Ok`, the error mapping function is ignored, and the original `Ok` is returned.\n * @template U The type of the error (ignored for `Ok`). Can be any type.\n * @param _fn The mapping function for errors (not used).\n * @returns The original `Ok` instance.\n */\n mapErr<U>(_fn: (err: never) => U): ResultDefinition<T, U> {\n return this as unknown as ResultDefinition<T, U>;\n }\n\n /**\n * Retrieves the error contained in this result. Since this is an `Ok`, an error is thrown.\n * @throws An error because `unwrapErr` is called on an `Ok`.\n */\n unwrapErr(): never {\n throw new Error(\"Called unwrapErr on an Ok value\");\n }\n\n /**\n * Returns the contained value if `Ok`, otherwise returns the provided default value.\n * @template U The type of the default value.\n * @param defaultValue The value to return if this is an `Err`.\n * @returns The value contained in this `Ok`.\n */\n unwrapOr<U>(defaultValue: U): T {\n return this._value;\n }\n\n /**\n * Returns the contained value if `Ok`, otherwise computes and returns the result of the provided function.\n * @template U The type of the default value.\n * @param fn The function to compute the default value.\n * @returns The value contained in this `Ok`.\n */\n unwrapOrElse<U>(fn: (error: never) => U): T {\n return this._value;\n }\n\n /**\n * Returns this `Ok` if it is `Ok`, otherwise returns the result of the provided function.\n * @template F The type of the alternative error.\n * @param fn The function to compute the alternative result.\n * @returns The original `Ok` instance.\n */\n orElse<F>(fn: (error: never) => ResultDefinition<T, F>): ResultDefinition<T, F> {\n return this as unknown as ResultDefinition<T, F>;\n }\n\n /**\n * Converts `Result` type to `Option` type.\n * @returns `Some` if the result is `Ok`, `None` if the result is `Err`.\n */\n ok() {\n return Some(this._value);\n }\n}\n","import {\n Err as ErrType,\n Ok as OkType,\n type Result,\n} from \"./__internal__/return-types\";\n\n/**\n * Creates a new `Ok` instance, representing a successful result.\n * @template T The type of the value contained in the `Ok`.\n * @param value The value to wrap in the `Ok` instance.\n * @returns An `Ok` instance containing the given value.\n * @example\n * const result = Ok(42);\n * console.log(result.isOk()); // true\n * console.log(result.unwrap()); // 42\n */\nfunction Ok<T>(value: T): OkType<T> {\n return new OkType(value);\n}\n\n/**\n * Creates an Err - strings are converted to Error, everything else preserved\n */\nfunction Err<E>(error: E): ErrType<E> {\n return new ErrType(error);\n}\n\n// biome-ignore lint/suspicious/noExplicitAny: <explanation>\n(global as any).Ok = Ok;\n// biome-ignore lint/suspicious/noExplicitAny: <explanation>\n(global as any).Err = Err;\n\nexport { Err, Ok, Result, ErrType, OkType };\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/result/__internal__/return-types/err.ts","../../src/result/__internal__/return-types/ok.ts","../../src/result/result.ts"],"names":["TAG","Ok","Err"],"mappings":";;;AAKA,IAAM,GAAA,GAAM,MAAO,CAAA,GAAA,CAAI,2BAA2B,CAAA;AAM3C,IAAM,GAAA,GAAN,MAAM,IAA6C,CAAA;AAAA;AAAA,EAExD,CAAU,GAAG,IAAI,KAAA;AAAA,EACT,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAKR,YAAY,KAAU,EAAA;AAEpB,IAAA,IAAA,CAAK,KAAQ,GAAA,KAAA;AAAA;AAMf;AAAA;AAAA;AAAA;AAAA,EAMA,IAA0B,GAAA;AACxB,IAAO,OAAA,KAAA;AAAA;AACT;AAAA;AAAA;AAAA;AAAA,EAMA,KAAwB,GAAA;AACtB,IAAO,OAAA,IAAA;AAAA;AACT;AAAA;AAAA;AAAA;AAAA,EAMA,MAAgB,GAAA;AACd,IAAM,MAAA,IAAI,MAAM,+BAA+B,CAAA;AAAA;AACjD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,IAAO,GAAsD,EAAA;AAC3D,IAAO,OAAA,IAAA;AAAA;AACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OAAU,EAA+C,EAAA;AACvD,IAAA,OAAO,IAAI,IAAA,CAAO,EAAG,CAAA,IAAA,CAAK,KAAK,CAAC,CAAA;AAAA;AAClC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,QACE,GACwB,EAAA;AACxB,IAAO,OAAA,IAAA;AAAA;AACT;AAAA;AAAA;AAAA;AAAA,EAMA,SAAe,GAAA;AACb,IAAA,OAAO,IAAK,CAAA,KAAA;AAAA;AACd;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,KAAW,GAAA;AACT,IAAA,OAAO,IAAK,CAAA,KAAA;AAAA;AACd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,SAAY,YAAoB,EAAA;AAC9B,IAAO,OAAA,YAAA;AAAA;AACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,aAAgB,EAAwB,EAAA;AACtC,IAAO,OAAA,EAAA,CAAG,KAAK,KAAK,CAAA;AAAA;AACtB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,OACE,EACwB,EAAA;AACxB,IAAO,OAAA,EAAA,CAAG,KAAK,KAAK,CAAA;AAAA;AACtB;AAAA;AAAA;AAAA;AAAA,EAMA,EAAK,GAAA;AACH,IAAA,OAAO,IAAK,EAAA;AAAA;AAEhB,CAAA;;;AC1IA,IAAMA,IAAAA,GAAM,MAAO,CAAA,GAAA,CAAI,2BAA2B,CAAA;AAM3C,IAAM,EAAA,GAAN,MAAM,GAA4C,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASvD,YAAoB,MAAW,EAAA;AAAX,IAAA,IAAA,CAAA,MAAA,GAAA,MAAA;AAAA;AAAY;AAAA;AAAA,EANhC,CAAUA,IAAG,IAAI,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWjB,IAAsB,GAAA;AACpB,IAAO,OAAA,IAAA;AAAA;AACT;AAAA;AAAA;AAAA;AAAA,EAMA,KAA4B,GAAA;AAC1B,IAAO,OAAA,KAAA;AAAA;AACT;AAAA;AAAA;AAAA;AAAA,EAMA,MAAY,GAAA;AACV,IAAA,OAAO,IAAK,CAAA,MAAA;AAAA;AACd;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,KAAW,GAAA;AACT,IAAA,OAAO,IAAK,CAAA,MAAA;AAAA;AACd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,IAAO,EAAiD,EAAA;AACtD,IAAA,OAAO,IAAI,GAAA,CAAG,EAAG,CAAA,IAAA,CAAK,MAAM,CAAC,CAAA;AAAA;AAC/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,QACE,EACwB,EAAA;AACxB,IAAO,OAAA,EAAA,CAAG,KAAK,MAAM,CAAA;AAAA;AACvB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OAAU,GAAgD,EAAA;AACxD,IAAO,OAAA,IAAA;AAAA;AACT;AAAA;AAAA;AAAA;AAAA,EAMA,SAAmB,GAAA;AACjB,IAAM,MAAA,IAAI,MAAM,iCAAiC,CAAA;AAAA;AACnD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,SAAY,YAAoB,EAAA;AAC9B,IAAA,OAAO,IAAK,CAAA,MAAA;AAAA;AACd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,aAAgB,EAA4B,EAAA;AAC1C,IAAA,OAAO,IAAK,CAAA,MAAA;AAAA;AACd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OAAU,EAAsE,EAAA;AAC9E,IAAO,OAAA,IAAA;AAAA;AACT;AAAA;AAAA;AAAA;AAAA,EAMA,EAAK,GAAA;AACH,IAAO,OAAA,IAAA,CAAK,KAAK,MAAM,CAAA;AAAA;AAE3B,CAAA;;;ACpHA,SAASC,IAAM,KAAqB,EAAA;AAClC,EAAO,OAAA,IAAI,GAAO,KAAK,CAAA;AACzB;AAKA,SAASC,KAAO,KAAsB,EAAA;AACpC,EAAO,OAAA,IAAI,IAAQ,KAAK,CAAA;AAC1B;AAGC,UAAA,CAAmB,EAAKD,GAAAA,GAAAA;AAExB,UAAA,CAAmB,GAAMC,GAAAA,IAAAA","file":"index.cjs","sourcesContent":["import type { Ok } from \"./ok\";\nimport type { ResultDefinition } from \"./result\";\n\n// Hidden discriminant tag for O(1) dispatch in `match`.\n// Symbol.for ensures the same global symbol regardless of bundling.\nconst TAG = Symbol.for(\"@consolidados/results.tag\");\n\n/**\n * Represents a failed result (`Err`) that contains an error value.\n * @template E The type of the error contained in this `Err`. Can be any type (Error, string, enum, etc).\n */\nexport class Err<E> implements ResultDefinition<never, E> {\n /** Hidden tag — read by `match()` for O(1) dispatch. */\n readonly [TAG] = \"Err\" as const;\n private error: E;\n /**\n * Creates a new `Err` instance with the given error value.\n * @param error The error to wrap in the `Err` instance. Can be any type.\n */\n constructor(error: E) {\n // Store error as-is - conversion is handled by factory function\n this.error = error;\n // Object.setPrototypeOf(this, Err.prototype);\n //\n // if (Error.captureStackTrace) {\n // Error.captureStackTrace(this, Err);\n // }\n }\n\n /**\n * Checks if this result is an `Ok`.\n * @returns `false` because this is an `Err`.\n */\n isOk(): this is Ok<never> {\n return false;\n }\n\n /**\n * Checks if this result is an `Err`.\n * @returns `true` because this is an `Err`.\n */\n isErr(): this is Err<E> {\n return true;\n }\n\n /**\n * Retrieves the value contained in this result. Since this is an `Err`, an error is thrown.\n * @throws An error because `unwrap` is called on an `Err`.\n */\n unwrap(): never {\n throw new Error(\"Called unwrap on an Err value\");\n }\n\n /**\n * Maps the value (if any). Since this is an `Err`, the mapping function is ignored, and the original `Err` is returned.\n * @template U The type of the value (ignored for `Err`).\n * @param _fn The mapping function for values (not used).\n * @returns The original `Err` instance.\n */\n map<U>(_fn: (value: never) => U): ResultDefinition<never, E> {\n return this as unknown as ResultDefinition<never, E>;\n }\n\n /**\n * Maps the error value using a transformation function and returns a new `Result` with the transformed error.\n * @template U The type of the transformed error. Can be any type.\n * @param fn The transformation function to apply to the error value.\n * @returns A new `Err` containing the transformed error.\n */\n mapErr<U>(fn: (err: E) => U): ResultDefinition<never, U> {\n return new Err<U>(fn(this.error)) as unknown as ResultDefinition<never, U>;\n }\n\n /**\n * Applies a transformation function that returns a `Result` to the value (which does not exist) of this `Err`.\n * @template U The type of the value in the resulting `Result`.\n * @template F The type of the error in the resulting `Result`.\n * @param _fn The transformation function (ignored in this implementation).\n * @returns The original `Err` instance cast to the new error type.\n */\n flatMap<U, F = E>(\n _fn: (value: never) => ResultDefinition<U, F>,\n ): ResultDefinition<U, E> {\n return this as unknown as ResultDefinition<U, E>;\n }\n\n /**\n * Retrieves the error value contained in this `Err`.\n * @returns The error value contained in this `Err`.\n */\n unwrapErr(): E {\n return this.error;\n }\n\n /**\n * Returns the inner error. After an `isErr()` type guard, TypeScript narrows the return type to `E`.\n * Without a type guard, returns `T | E` (use `isOk()` or `isErr()` for type narrowing).\n * @returns The error value contained in this `Err`.\n */\n value(): E {\n return this.error;\n }\n\n /**\n * Returns the contained value if `Ok`, otherwise returns the provided default value.\n * @template U The type of the default value.\n * @param defaultValue The value to return since this is an `Err`.\n * @returns The provided default value.\n */\n unwrapOr<U>(defaultValue: U): U {\n return defaultValue;\n }\n\n /**\n * Returns the contained value if `Ok`, otherwise computes and returns the result of the provided function.\n * @template U The type of the default value.\n * @param fn The function to compute the default value.\n * @returns The result of calling the provided function with the error.\n */\n unwrapOrElse<U>(fn: (error: E) => U): U {\n return fn(this.error);\n }\n\n /**\n * Returns this `Err` if it is `Err`, otherwise returns the result of the provided function.\n * @template T The type of the alternative success value.\n * @template F The type of the alternative error.\n * @param fn The function to compute the alternative result.\n * @returns The result of calling the provided function with the error.\n */\n orElse<T, F>(\n fn: (error: E) => ResultDefinition<T, F>,\n ): ResultDefinition<T, F> {\n return fn(this.error);\n }\n\n /**\n * Converts `Result` type to `Option` type.\n * @returns `Some` if the result is `Ok`, `None` if the result is `Err`.\n */\n ok() {\n return None();\n }\n}\n","import type { ResultDefinition } from \"./result\";\nimport type { Err } from \"./err\";\n\n// Hidden discriminant tag for O(1) dispatch in `match`.\n// Symbol.for ensures the same global symbol regardless of bundling.\nconst TAG = Symbol.for(\"@consolidados/results.tag\");\n\n/**\n * Represents a successful result (`Ok`) that contains a value.\n * @template T The type of the value contained in this `Ok`.\n */\nexport class Ok<T> implements ResultDefinition<T, never> {\n /** Hidden tag — read by `match()` for O(1) dispatch. Symbol-keyed so it\n * doesn't appear in `for...in`, `Object.keys`, or `JSON.stringify`. */\n readonly [TAG] = \"Ok\" as const;\n\n /**\n * Creates a new `Ok` instance with the given value.\n * @param _value The value to wrap in the `Ok` instance.\n */\n constructor(private _value: T) {}\n /**\n * Checks if this result is an `Ok`.\n * @returns `true` because this is an `Ok`.\n */\n isOk(): this is Ok<T> {\n return true;\n }\n\n /**\n * Checks if this result is an `Err`.\n * @returns `false` because this is an `Ok`.\n */\n isErr(): this is Err<never> {\n return false;\n }\n\n /**\n * Retrieves the value contained in this `Ok`.\n * @returns The value contained in this `Ok`.\n */\n unwrap(): T {\n return this._value;\n }\n\n /**\n * Returns the inner value. After an `isOk()` type guard, TypeScript narrows the return type to `T`.\n * Without a type guard, returns `T | E` (use `isOk()` or `isErr()` for type narrowing).\n * @returns The value contained in this `Ok`.\n */\n value(): T {\n return this._value;\n }\n\n /**\n * Applies a transformation function to the value contained in this `Ok` and returns a new `Result` with the transformed value.\n * @template U The type of the transformed value.\n * @param fn The transformation function to apply to the value.\n * @returns A new `Ok` containing the transformed value.\n */\n map<U>(fn: (value: T) => U): ResultDefinition<U, never> {\n return new Ok(fn(this._value)) as unknown as ResultDefinition<U, never>;\n }\n\n /**\n * Applies a transformation function that returns a `Result` to the value contained in this `Ok`.\n * @template U The type of the value in the resulting `Result`.\n * @template E The type of the error in the resulting `Result`.\n * @param fn The transformation function to apply to the value.\n * @returns The result of applying the transformation function.\n */\n flatMap<U, E = never>(\n fn: (value: T) => ResultDefinition<U, E>,\n ): ResultDefinition<U, E> {\n return fn(this._value);\n }\n\n /**\n * Maps the error value (if any). Since this is an `Ok`, the error mapping function is ignored, and the original `Ok` is returned.\n * @template U The type of the error (ignored for `Ok`). Can be any type.\n * @param _fn The mapping function for errors (not used).\n * @returns The original `Ok` instance.\n */\n mapErr<U>(_fn: (err: never) => U): ResultDefinition<T, U> {\n return this as unknown as ResultDefinition<T, U>;\n }\n\n /**\n * Retrieves the error contained in this result. Since this is an `Ok`, an error is thrown.\n * @throws An error because `unwrapErr` is called on an `Ok`.\n */\n unwrapErr(): never {\n throw new Error(\"Called unwrapErr on an Ok value\");\n }\n\n /**\n * Returns the contained value if `Ok`, otherwise returns the provided default value.\n * @template U The type of the default value.\n * @param defaultValue The value to return if this is an `Err`.\n * @returns The value contained in this `Ok`.\n */\n unwrapOr<U>(defaultValue: U): T {\n return this._value;\n }\n\n /**\n * Returns the contained value if `Ok`, otherwise computes and returns the result of the provided function.\n * @template U The type of the default value.\n * @param fn The function to compute the default value.\n * @returns The value contained in this `Ok`.\n */\n unwrapOrElse<U>(fn: (error: never) => U): T {\n return this._value;\n }\n\n /**\n * Returns this `Ok` if it is `Ok`, otherwise returns the result of the provided function.\n * @template F The type of the alternative error.\n * @param fn The function to compute the alternative result.\n * @returns The original `Ok` instance.\n */\n orElse<F>(fn: (error: never) => ResultDefinition<T, F>): ResultDefinition<T, F> {\n return this as unknown as ResultDefinition<T, F>;\n }\n\n /**\n * Converts `Result` type to `Option` type.\n * @returns `Some` if the result is `Ok`, `None` if the result is `Err`.\n */\n ok() {\n return Some(this._value);\n }\n}\n","import {\n Err as ErrType,\n Ok as OkType,\n type Result,\n} from \"./__internal__/return-types\";\n\n/**\n * Creates a new `Ok` instance, representing a successful result.\n * @template T The type of the value contained in the `Ok`.\n * @param value The value to wrap in the `Ok` instance.\n * @returns An `Ok` instance containing the given value.\n * @example\n * const result = Ok(42);\n * console.log(result.isOk()); // true\n * console.log(result.unwrap()); // 42\n */\nfunction Ok<T>(value: T): OkType<T> {\n return new OkType(value);\n}\n\n/**\n * Creates an Err - strings are converted to Error, everything else preserved\n */\nfunction Err<E>(error: E): ErrType<E> {\n return new ErrType(error);\n}\n\n// biome-ignore lint/suspicious/noExplicitAny: <explanation>\n(globalThis as any).Ok = Ok;\n// biome-ignore lint/suspicious/noExplicitAny: <explanation>\n(globalThis as any).Err = Err;\n\nexport { Err, Ok, Result, ErrType, OkType };\n"]}
|