@praha/byethrow 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +77 -0
  3. package/dist/cjs/exports.cjs +186 -0
  4. package/dist/cjs/exports.d.ts +15 -0
  5. package/dist/cjs/functions/and-then.cjs +44 -0
  6. package/dist/cjs/functions/and-then.d.ts +45 -0
  7. package/dist/cjs/functions/and-through.cjs +50 -0
  8. package/dist/cjs/functions/and-through.d.ts +57 -0
  9. package/dist/cjs/functions/bind.cjs +50 -0
  10. package/dist/cjs/functions/bind.d.ts +61 -0
  11. package/dist/cjs/functions/do.cjs +37 -0
  12. package/dist/cjs/functions/do.d.ts +17 -0
  13. package/dist/cjs/functions/fail.cjs +50 -0
  14. package/dist/cjs/functions/fail.d.ts +38 -0
  15. package/dist/cjs/functions/is-failure.cjs +36 -0
  16. package/dist/cjs/functions/is-failure.d.ts +22 -0
  17. package/dist/cjs/functions/is-success.cjs +36 -0
  18. package/dist/cjs/functions/is-success.d.ts +22 -0
  19. package/dist/cjs/functions/map-error.cjs +46 -0
  20. package/dist/cjs/functions/map-error.d.ts +37 -0
  21. package/dist/cjs/functions/map.cjs +46 -0
  22. package/dist/cjs/functions/map.d.ts +37 -0
  23. package/dist/cjs/functions/pipe.cjs +40 -0
  24. package/dist/cjs/functions/pipe.d.ts +58 -0
  25. package/dist/cjs/functions/succeed.cjs +50 -0
  26. package/dist/cjs/functions/succeed.d.ts +39 -0
  27. package/dist/cjs/functions/try.cjs +52 -0
  28. package/dist/cjs/functions/try.d.ts +84 -0
  29. package/dist/cjs/functions/unwrap-error.cjs +40 -0
  30. package/dist/cjs/functions/unwrap-error.d.ts +31 -0
  31. package/dist/cjs/functions/unwrap.cjs +40 -0
  32. package/dist/cjs/functions/unwrap.d.ts +31 -0
  33. package/dist/cjs/index.cjs +39 -0
  34. package/dist/cjs/index.d.ts +69 -0
  35. package/dist/cjs/internals/helpers/is-promise.cjs +36 -0
  36. package/dist/cjs/internals/helpers/is-promise.d.ts +9 -0
  37. package/dist/cjs/internals/types/has-promise.cjs +18 -0
  38. package/dist/cjs/internals/types/has-promise.d.ts +17 -0
  39. package/dist/cjs/result.cjs +18 -0
  40. package/dist/cjs/result.d.ts +193 -0
  41. package/dist/esm/exports.d.ts +15 -0
  42. package/dist/esm/exports.js +15 -0
  43. package/dist/esm/functions/and-then.d.ts +45 -0
  44. package/dist/esm/functions/and-then.js +10 -0
  45. package/dist/esm/functions/and-through.d.ts +57 -0
  46. package/dist/esm/functions/and-through.js +16 -0
  47. package/dist/esm/functions/bind.d.ts +61 -0
  48. package/dist/esm/functions/bind.js +16 -0
  49. package/dist/esm/functions/do.d.ts +17 -0
  50. package/dist/esm/functions/do.js +3 -0
  51. package/dist/esm/functions/fail.d.ts +38 -0
  52. package/dist/esm/functions/fail.js +16 -0
  53. package/dist/esm/functions/is-failure.d.ts +22 -0
  54. package/dist/esm/functions/is-failure.js +2 -0
  55. package/dist/esm/functions/is-success.d.ts +22 -0
  56. package/dist/esm/functions/is-success.js +2 -0
  57. package/dist/esm/functions/map-error.d.ts +37 -0
  58. package/dist/esm/functions/map-error.js +12 -0
  59. package/dist/esm/functions/map.d.ts +37 -0
  60. package/dist/esm/functions/map.js +12 -0
  61. package/dist/esm/functions/pipe.d.ts +58 -0
  62. package/dist/esm/functions/pipe.js +6 -0
  63. package/dist/esm/functions/succeed.d.ts +39 -0
  64. package/dist/esm/functions/succeed.js +16 -0
  65. package/dist/esm/functions/try.d.ts +84 -0
  66. package/dist/esm/functions/try.js +18 -0
  67. package/dist/esm/functions/unwrap-error.d.ts +31 -0
  68. package/dist/esm/functions/unwrap-error.js +6 -0
  69. package/dist/esm/functions/unwrap.d.ts +31 -0
  70. package/dist/esm/functions/unwrap.js +6 -0
  71. package/dist/esm/index.d.ts +69 -0
  72. package/dist/esm/index.js +2 -0
  73. package/dist/esm/internals/helpers/is-promise.d.ts +9 -0
  74. package/dist/esm/internals/helpers/is-promise.js +2 -0
  75. package/dist/esm/internals/types/has-promise.d.ts +17 -0
  76. package/dist/esm/internals/types/has-promise.js +0 -0
  77. package/dist/esm/result.d.ts +193 -0
  78. package/dist/esm/result.js +0 -0
  79. package/package.json +61 -0
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Alias for `succeed({})`. Commonly used as a neutral base value in functional chains or monadic pipelines.
3
+ *
4
+ * @function
5
+ *
6
+ * @example
7
+ * ```ts
8
+ * import { Result } from '@praha/byethrow';
9
+ *
10
+ * const result = Result.do();
11
+ * // Result.Result<{}, never>
12
+ * ```
13
+ *
14
+ * @category Creators
15
+ */
16
+ declare const do_: () => import("../result").Result<{}, never>;
17
+ export { do_ as do };
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ fail: ()=>fail
28
+ });
29
+ const is_promise_cjs_namespaceObject = require("../internals/helpers/is-promise.cjs");
30
+ const fail = (...args)=>{
31
+ const error = args[0];
32
+ if (void 0 === error) return {
33
+ type: 'Failure'
34
+ };
35
+ if ((0, is_promise_cjs_namespaceObject.isPromise)(error)) return error.then((error)=>({
36
+ type: 'Failure',
37
+ error: error
38
+ }));
39
+ return {
40
+ type: 'Failure',
41
+ error
42
+ };
43
+ };
44
+ exports.fail = __webpack_exports__.fail;
45
+ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
46
+ "fail"
47
+ ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
48
+ Object.defineProperty(exports, '__esModule', {
49
+ value: true
50
+ });
@@ -0,0 +1,38 @@
1
+ import type { ResultFor } from '../result';
2
+ /**
3
+ * Creates a {@link Failure} result from a given error.
4
+ * Automatically wraps the error in a `Promise` if it is asynchronous.
5
+ *
6
+ * @function
7
+ * @typeParam E - The type of the error to wrap.
8
+ * @returns A {@link Result} or {@link ResultAsync} depending on whether the input is a promise.
9
+ *
10
+ * @example Synchronous Usage
11
+ * ```ts
12
+ * import { Result } from '@praha/byethrow';
13
+ *
14
+ * const result = Result.fail('Something went wrong');
15
+ * // Result.Result<never, string>
16
+ * ```
17
+ *
18
+ * @example Asynchronous Usage
19
+ * ```ts
20
+ * import { Result } from '@praha/byethrow';
21
+ *
22
+ * const result = Result.fail(Promise.resolve('Async error'));
23
+ * // Result.ResultAsync<never, string>
24
+ * ```
25
+ *
26
+ * @example With No Value
27
+ * ```ts
28
+ * import { Result } from '@praha/byethrow';
29
+ *
30
+ * const result = Result.fail();
31
+ * // Result.Result<never, void>
32
+ * ```
33
+ * @category Creators
34
+ */
35
+ export declare const fail: {
36
+ (): ResultFor<never, never, void>;
37
+ <E>(error: E): ResultFor<E, never, Awaited<E>>;
38
+ };
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ isFailure: ()=>isFailure
28
+ });
29
+ const isFailure = (result)=>'Failure' === result.type;
30
+ exports.isFailure = __webpack_exports__.isFailure;
31
+ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
32
+ "isFailure"
33
+ ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
34
+ Object.defineProperty(exports, '__esModule', {
35
+ value: true
36
+ });
@@ -0,0 +1,22 @@
1
+ import type { Failure, Result } from '../result';
2
+ /**
3
+ * Type guard to check if a {@link Result} is a {@link Failure}.
4
+ *
5
+ * @function
6
+ * @typeParam E - The type of the error value.
7
+ * @param result - The {@link Result} to check.
8
+ * @returns `true` if the result is a {@link Failure}, otherwise `false`.
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * import { Result } from '@praha/byethrow';
13
+ *
14
+ * const result: Result.Result<number, string> = { type: 'Failure', error: 'Something went wrong' };
15
+ * if (Result.isFailure(result)) {
16
+ * console.error(result.error); // Safe access to error
17
+ * }
18
+ * ```
19
+ *
20
+ * @category Type Guards
21
+ */
22
+ export declare const isFailure: <E>(result: Result<unknown, E>) => result is Failure<E>;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ isSuccess: ()=>isSuccess
28
+ });
29
+ const isSuccess = (result)=>'Success' === result.type;
30
+ exports.isSuccess = __webpack_exports__.isSuccess;
31
+ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
32
+ "isSuccess"
33
+ ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
34
+ Object.defineProperty(exports, '__esModule', {
35
+ value: true
36
+ });
@@ -0,0 +1,22 @@
1
+ import type { Result, Success } from '../result';
2
+ /**
3
+ * Type guard to check if a {@link Result} is a {@link Success}.
4
+ *
5
+ * @function
6
+ * @typeParam T - The type of the success value.
7
+ * @param result - The {@link Result} to check.
8
+ * @returns `true` if the result is a {@link Success}, otherwise `false`.
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * import { Result } from '@praha/byethrow';
13
+ *
14
+ * const result: Result.Result<number, string> = { type: 'Success', value: 10 };
15
+ * if (Result.isSuccess(result)) {
16
+ * console.log(result.value); // Safe access to value
17
+ * }
18
+ * ```
19
+ *
20
+ * @category Type Guards
21
+ */
22
+ export declare const isSuccess: <T>(result: Result<T, unknown>) => result is Success<T>;
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ mapError: ()=>mapError
28
+ });
29
+ const external_fail_cjs_namespaceObject = require("./fail.cjs");
30
+ const external_is_success_cjs_namespaceObject = require("./is-success.cjs");
31
+ const is_promise_cjs_namespaceObject = require("../internals/helpers/is-promise.cjs");
32
+ const mapError = (fn)=>(result)=>{
33
+ const apply = (r)=>{
34
+ if ((0, external_is_success_cjs_namespaceObject.isSuccess)(r)) return r;
35
+ return (0, external_fail_cjs_namespaceObject.fail)(fn(r.error));
36
+ };
37
+ if ((0, is_promise_cjs_namespaceObject.isPromise)(result)) return result.then(apply);
38
+ return apply(result);
39
+ };
40
+ exports.mapError = __webpack_exports__.mapError;
41
+ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
42
+ "mapError"
43
+ ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
44
+ Object.defineProperty(exports, '__esModule', {
45
+ value: true
46
+ });
@@ -0,0 +1,37 @@
1
+ import type { InferFailure, InferSuccess, ResultFor, ResultMaybeAsync } from '../result';
2
+ /**
3
+ * Applies a transformation function to the error value of a {@link Result} or {@link ResultAsync}.
4
+ * If the input is a {@link Success}, it will be returned unchanged.
5
+ *
6
+ * @function
7
+ * @typeParam R1 - The input {@link Result} or {@link ResultAsync}.
8
+ * @typeParam E2 - The transformed error value type.
9
+ *
10
+ * @example Failure Case (unchanged)
11
+ * ```ts
12
+ * import { Result } from '@praha/byethrow';
13
+ *
14
+ * const result = Result.pipe(
15
+ * Result.fail('NotFound'),
16
+ * Result.mapError((error) => new Error(error)),
17
+ * );
18
+ * // { type: 'Failure', error: Error('NotFound') }
19
+ * ```
20
+ *
21
+ * @example Success Case (unchanged)
22
+ * ```ts
23
+ * import { Result } from '@praha/byethrow';
24
+ *
25
+ * const result = Result.pipe(
26
+ * Result.succeed(123),
27
+ * Result.mapError((error) => new Error(error)),
28
+ * );
29
+ * // { type: 'Success', value: 123 }
30
+ * ```
31
+ *
32
+ * @category Combinators
33
+ */
34
+ export declare const mapError: {
35
+ <R1 extends ResultMaybeAsync<any, any>, E2>(fn: (a: InferFailure<R1>) => E2): (result: R1) => ResultFor<R1, InferSuccess<R1>, E2>;
36
+ <E1, E2>(fn: (a: E1) => E2): <R1 extends ResultMaybeAsync<any, E1>>(result: R1) => ResultFor<R1, InferSuccess<R1>, E2>;
37
+ };
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ map: ()=>map
28
+ });
29
+ const external_is_failure_cjs_namespaceObject = require("./is-failure.cjs");
30
+ const external_succeed_cjs_namespaceObject = require("./succeed.cjs");
31
+ const is_promise_cjs_namespaceObject = require("../internals/helpers/is-promise.cjs");
32
+ const map = (fn)=>(result)=>{
33
+ const apply = (r)=>{
34
+ if ((0, external_is_failure_cjs_namespaceObject.isFailure)(r)) return r;
35
+ return (0, external_succeed_cjs_namespaceObject.succeed)(fn(r.value));
36
+ };
37
+ if ((0, is_promise_cjs_namespaceObject.isPromise)(result)) return result.then(apply);
38
+ return apply(result);
39
+ };
40
+ exports.map = __webpack_exports__.map;
41
+ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
42
+ "map"
43
+ ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
44
+ Object.defineProperty(exports, '__esModule', {
45
+ value: true
46
+ });
@@ -0,0 +1,37 @@
1
+ import type { InferFailure, InferSuccess, ResultFor, ResultMaybeAsync } from '../result';
2
+ /**
3
+ * Applies a transformation function to the success value of a {@link Result} or {@link ResultAsync}.
4
+ * If the input is a {@link Failure}, it will be returned unchanged.
5
+ *
6
+ * @function
7
+ * @typeParam R1 - The input {@link Result} or {@link ResultAsync}.
8
+ * @typeParam T2 - The transformed success value type.
9
+ *
10
+ * @example Success Case
11
+ * ```ts
12
+ * import { Result } from '@praha/byethrow';
13
+ *
14
+ * const result = Result.pipe(
15
+ * Result.succeed(2),
16
+ * Result.map((x) => x * 10),
17
+ * );
18
+ * // { type: 'Success', value: 20 }
19
+ * ```
20
+ *
21
+ * @example Failure Case (unchanged)
22
+ * ```ts
23
+ * import { Result } from '@praha/byethrow';
24
+ *
25
+ * const result = Result.pipe(
26
+ * Result.fail('error'),
27
+ * Result.map((x) => x * 10),
28
+ * );
29
+ * // { type: 'Failure', error: 'error' }
30
+ * ```
31
+ *
32
+ * @category Combinators
33
+ */
34
+ export declare const map: {
35
+ <R1 extends ResultMaybeAsync<any, any>, T2>(fn: (a: InferSuccess<R1>) => T2): (result: R1) => ResultFor<R1, T2, InferFailure<R1>>;
36
+ <T1, T2>(fn: (a: T1) => T2): <R1 extends ResultMaybeAsync<T1, any>>(result: R1) => ResultFor<R1, T2, InferFailure<R1>>;
37
+ };
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ pipe: ()=>pipe
28
+ });
29
+ const pipe = (value, ...functions)=>{
30
+ let next = value;
31
+ for (const func of functions)next = func(next);
32
+ return next;
33
+ };
34
+ exports.pipe = __webpack_exports__.pipe;
35
+ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
36
+ "pipe"
37
+ ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
38
+ Object.defineProperty(exports, '__esModule', {
39
+ value: true
40
+ });
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Applies a sequence of functions to a value, from left to right.
3
+ *
4
+ * This utility enables function composition in a left-to-right manner.
5
+ * It supports up to 26 chained functions from `A` through `Z`.
6
+ *
7
+ * @function
8
+ * @typeParam A - The initial input value type.
9
+ * @typeParam B-Z - Intermediate and final function return types.
10
+ *
11
+ * @param value - The initial input value.
12
+ * @param functions - Additional unary functions composing of the previous result.
13
+ *
14
+ * @returns The final result after applying all functions.
15
+ *
16
+ * @example
17
+ * ```ts
18
+ * import { Result } from '@praha/byethrow';
19
+ *
20
+ * const result = Result.pipe(
21
+ * 2,
22
+ * x => x + 1,
23
+ * x => x * 3,
24
+ * x => `Result: ${x}`
25
+ * );
26
+ * // Result: 9
27
+ * ```
28
+ *
29
+ * @category Utilities
30
+ */
31
+ export declare const pipe: {
32
+ <A>(a: A): A;
33
+ <A, B = never>(a: A, ab: (a: A) => B): B;
34
+ <A, B = never, C = never>(a: A, ab: (a: A) => B, bc: (b: B) => C): C;
35
+ <A, B = never, C = never, D = never>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D): D;
36
+ <A, B = never, C = never, D = never, E = never>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E): E;
37
+ <A, B = never, C = never, D = never, E = never, F = never>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F): F;
38
+ <A, B = never, C = never, D = never, E = never, F = never, G = never>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G): G;
39
+ <A, B = never, C = never, D = never, E = never, F = never, G = never, H = never>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H): H;
40
+ <A, B = never, C = never, D = never, E = never, F = never, G = never, H = never, I = never>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (h: H) => I): I;
41
+ <A, B = never, C = never, D = never, E = never, F = never, G = never, H = never, I = never, J = never>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (h: H) => I, ij: (i: I) => J): J;
42
+ <A, B = never, C = never, D = never, E = never, F = never, G = never, H = never, I = never, J = never, K = never>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (h: H) => I, ij: (i: I) => J, jk: (j: J) => K): K;
43
+ <A, B = never, C = never, D = never, E = never, F = never, G = never, H = never, I = never, J = never, K = never, L = never>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (h: H) => I, ij: (i: I) => J, jk: (j: J) => K, kl: (k: K) => L): L;
44
+ <A, B = never, C = never, D = never, E = never, F = never, G = never, H = never, I = never, J = never, K = never, L = never, M = never>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (h: H) => I, ij: (i: I) => J, jk: (j: J) => K, kl: (k: K) => L, lm: (l: L) => M): M;
45
+ <A, B = never, C = never, D = never, E = never, F = never, G = never, H = never, I = never, J = never, K = never, L = never, M = never, N = never>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (h: H) => I, ij: (i: I) => J, jk: (j: J) => K, kl: (k: K) => L, lm: (l: L) => M, mn: (m: M) => N): N;
46
+ <A, B = never, C = never, D = never, E = never, F = never, G = never, H = never, I = never, J = never, K = never, L = never, M = never, N = never, O = never>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (h: H) => I, ij: (i: I) => J, jk: (j: J) => K, kl: (k: K) => L, lm: (l: L) => M, mn: (m: M) => N, no: (n: N) => O): O;
47
+ <A, B = never, C = never, D = never, E = never, F = never, G = never, H = never, I = never, J = never, K = never, L = never, M = never, N = never, O = never, P = never>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (h: H) => I, ij: (i: I) => J, jk: (j: J) => K, kl: (k: K) => L, lm: (l: L) => M, mn: (m: M) => N, no: (n: N) => O, op: (o: O) => P): P;
48
+ <A, B = never, C = never, D = never, E = never, F = never, G = never, H = never, I = never, J = never, K = never, L = never, M = never, N = never, O = never, P = never, Q = never>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (h: H) => I, ij: (i: I) => J, jk: (j: J) => K, kl: (k: K) => L, lm: (l: L) => M, mn: (m: M) => N, no: (n: N) => O, op: (o: O) => P, pq: (p: P) => Q): Q;
49
+ <A, B = never, C = never, D = never, E = never, F = never, G = never, H = never, I = never, J = never, K = never, L = never, M = never, N = never, O = never, P = never, Q = never, R = never>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (h: H) => I, ij: (i: I) => J, jk: (j: J) => K, kl: (k: K) => L, lm: (l: L) => M, mn: (m: M) => N, no: (n: N) => O, op: (o: O) => P, pq: (p: P) => Q, qr: (q: Q) => R): R;
50
+ <A, B = never, C = never, D = never, E = never, F = never, G = never, H = never, I = never, J = never, K = never, L = never, M = never, N = never, O = never, P = never, Q = never, R = never, S = never>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (h: H) => I, ij: (i: I) => J, jk: (j: J) => K, kl: (k: K) => L, lm: (l: L) => M, mn: (m: M) => N, no: (n: N) => O, op: (o: O) => P, pq: (p: P) => Q, qr: (q: Q) => R, rs: (r: R) => S): S;
51
+ <A, B = never, C = never, D = never, E = never, F = never, G = never, H = never, I = never, J = never, K = never, L = never, M = never, N = never, O = never, P = never, Q = never, R = never, S = never, T = never>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (h: H) => I, ij: (i: I) => J, jk: (j: J) => K, kl: (k: K) => L, lm: (l: L) => M, mn: (m: M) => N, no: (n: N) => O, op: (o: O) => P, pq: (p: P) => Q, qr: (q: Q) => R, rs: (r: R) => S, st: (s: S) => T): T;
52
+ <A, B = never, C = never, D = never, E = never, F = never, G = never, H = never, I = never, J = never, K = never, L = never, M = never, N = never, O = never, P = never, Q = never, R = never, S = never, T = never, U = never>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (h: H) => I, ij: (i: I) => J, jk: (j: J) => K, kl: (k: K) => L, lm: (l: L) => M, mn: (m: M) => N, no: (n: N) => O, op: (o: O) => P, pq: (p: P) => Q, qr: (q: Q) => R, rs: (r: R) => S, st: (s: S) => T, tu: (t: T) => U): U;
53
+ <A, B = never, C = never, D = never, E = never, F = never, G = never, H = never, I = never, J = never, K = never, L = never, M = never, N = never, O = never, P = never, Q = never, R = never, S = never, T = never, U = never, V = never>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (h: H) => I, ij: (i: I) => J, jk: (j: J) => K, kl: (k: K) => L, lm: (l: L) => M, mn: (m: M) => N, no: (n: N) => O, op: (o: O) => P, pq: (p: P) => Q, qr: (q: Q) => R, rs: (r: R) => S, st: (s: S) => T, tu: (t: T) => U, uv: (u: U) => V): V;
54
+ <A, B = never, C = never, D = never, E = never, F = never, G = never, H = never, I = never, J = never, K = never, L = never, M = never, N = never, O = never, P = never, Q = never, R = never, S = never, T = never, U = never, V = never, W = never>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (h: H) => I, ij: (i: I) => J, jk: (j: J) => K, kl: (k: K) => L, lm: (l: L) => M, mn: (m: M) => N, no: (n: N) => O, op: (o: O) => P, pq: (p: P) => Q, qr: (q: Q) => R, rs: (r: R) => S, st: (s: S) => T, tu: (t: T) => U, uv: (u: U) => V, vw: (v: V) => W): W;
55
+ <A, B = never, C = never, D = never, E = never, F = never, G = never, H = never, I = never, J = never, K = never, L = never, M = never, N = never, O = never, P = never, Q = never, R = never, S = never, T = never, U = never, V = never, W = never, X = never>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (h: H) => I, ij: (i: I) => J, jk: (j: J) => K, kl: (k: K) => L, lm: (l: L) => M, mn: (m: M) => N, no: (n: N) => O, op: (o: O) => P, pq: (p: P) => Q, qr: (q: Q) => R, rs: (r: R) => S, st: (s: S) => T, tu: (t: T) => U, uv: (u: U) => V, vw: (v: V) => W, wx: (w: W) => X): X;
56
+ <A, B = never, C = never, D = never, E = never, F = never, G = never, H = never, I = never, J = never, K = never, L = never, M = never, N = never, O = never, P = never, Q = never, R = never, S = never, T = never, U = never, V = never, W = never, X = never, Y = never>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (h: H) => I, ij: (i: I) => J, jk: (j: J) => K, kl: (k: K) => L, lm: (l: L) => M, mn: (m: M) => N, no: (n: N) => O, op: (o: O) => P, pq: (p: P) => Q, qr: (q: Q) => R, rs: (r: R) => S, st: (s: S) => T, tu: (t: T) => U, uv: (u: U) => V, vw: (v: V) => W, wx: (w: W) => X, xy: (x: X) => Y): Y;
57
+ <A, B = never, C = never, D = never, E = never, F = never, G = never, H = never, I = never, J = never, K = never, L = never, M = never, N = never, O = never, P = never, Q = never, R = never, S = never, T = never, U = never, V = never, W = never, X = never, Y = never, Z = never>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (h: H) => I, ij: (i: I) => J, jk: (j: J) => K, kl: (k: K) => L, lm: (l: L) => M, mn: (m: M) => N, no: (n: N) => O, op: (o: O) => P, pq: (p: P) => Q, qr: (q: Q) => R, rs: (r: R) => S, st: (s: S) => T, tu: (t: T) => U, uv: (u: U) => V, vw: (v: V) => W, wx: (w: W) => X, xy: (x: X) => Y, yz: (y: Y) => Z): Z;
58
+ };
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ succeed: ()=>succeed
28
+ });
29
+ const is_promise_cjs_namespaceObject = require("../internals/helpers/is-promise.cjs");
30
+ const succeed = (...args)=>{
31
+ const value = args[0];
32
+ if (void 0 === value) return {
33
+ type: 'Success'
34
+ };
35
+ if ((0, is_promise_cjs_namespaceObject.isPromise)(value)) return value.then((value)=>({
36
+ type: 'Success',
37
+ value: value
38
+ }));
39
+ return {
40
+ type: 'Success',
41
+ value
42
+ };
43
+ };
44
+ exports.succeed = __webpack_exports__.succeed;
45
+ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
46
+ "succeed"
47
+ ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
48
+ Object.defineProperty(exports, '__esModule', {
49
+ value: true
50
+ });
@@ -0,0 +1,39 @@
1
+ import type { ResultFor } from '../result';
2
+ /**
3
+ * Creates a {@link Success} result from a given value.
4
+ * Automatically wraps the value in a `Promise` if it is asynchronous.
5
+ *
6
+ * @function
7
+ * @typeParam T - The type of the value to wrap.
8
+ * @returns A {@link Result} or {@link ResultAsync} depending on whether the input is a promise.
9
+ *
10
+ * @example Synchronous Usage
11
+ * ```ts
12
+ * import { Result } from '@praha/byethrow';
13
+ *
14
+ * const result = Result.succeed(42);
15
+ * // Result.Result<number, never>
16
+ * ```
17
+ *
18
+ * @example Asynchronous Usage
19
+ * ```ts
20
+ * import { Result } from '@praha/byethrow';
21
+ *
22
+ * const result = Result.succeed(Promise.resolve(42));
23
+ * // Result.ResultAsync<number, never>
24
+ * ```
25
+ *
26
+ * @example With No Value
27
+ * ```ts
28
+ * import { Result } from '@praha/byethrow';
29
+ *
30
+ * const result = Result.succeed();
31
+ * // Result.Result<void, never>
32
+ * ```
33
+ *
34
+ * @category Creators
35
+ */
36
+ export declare const succeed: {
37
+ (): ResultFor<never, void, never>;
38
+ <T>(value: T): ResultFor<T, Awaited<T>, never>;
39
+ };
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ try: ()=>try_
28
+ });
29
+ const external_fail_cjs_namespaceObject = require("./fail.cjs");
30
+ const external_succeed_cjs_namespaceObject = require("./succeed.cjs");
31
+ const is_promise_cjs_namespaceObject = require("../internals/helpers/is-promise.cjs");
32
+ const try_ = (options)=>(...args)=>{
33
+ try {
34
+ const output = options.try(...args);
35
+ if ((0, is_promise_cjs_namespaceObject.isPromise)(output)) {
36
+ const promise = (0, external_succeed_cjs_namespaceObject.succeed)(output);
37
+ if ('safe' in options && options.safe) return promise;
38
+ return promise.catch((error)=>(0, external_fail_cjs_namespaceObject.fail)(options.catch(error)));
39
+ }
40
+ return (0, external_succeed_cjs_namespaceObject.succeed)(output);
41
+ } catch (error) {
42
+ if ('safe' in options && options.safe) throw error;
43
+ return (0, external_fail_cjs_namespaceObject.fail)(options.catch(error));
44
+ }
45
+ };
46
+ exports["try"] = __webpack_exports__["try"];
47
+ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
48
+ "try"
49
+ ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
50
+ Object.defineProperty(exports, '__esModule', {
51
+ value: true
52
+ });