ts-data-forge 1.0.2 → 1.1.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/dist/functional/optional.d.mts +14 -8
- package/dist/functional/optional.d.mts.map +1 -1
- package/dist/functional/optional.mjs +11 -11
- package/dist/functional/optional.mjs.map +1 -1
- package/dist/functional/result.d.mts +14 -8
- package/dist/functional/result.d.mts.map +1 -1
- package/dist/functional/result.mjs +11 -11
- package/dist/functional/result.mjs.map +1 -1
- package/package.json +1 -1
- package/src/functional/optional.mts +22 -15
- package/src/functional/result.mts +23 -15
|
@@ -1,15 +1,18 @@
|
|
|
1
|
-
/** @internal
|
|
2
|
-
declare const
|
|
3
|
-
/** @internal
|
|
4
|
-
declare const
|
|
1
|
+
/** @internal String literal tag to identify the 'Some' variant of Optional. */
|
|
2
|
+
declare const SomeTypeTagName = "ts-data-forge::Optional.some";
|
|
3
|
+
/** @internal String literal tag to identify the 'None' variant of Optional. */
|
|
4
|
+
declare const NoneTypeTagName = "ts-data-forge::Optional.none";
|
|
5
5
|
/**
|
|
6
6
|
* @internal
|
|
7
7
|
* Represents the 'Some' variant of an Optional, containing a value.
|
|
8
8
|
* @template S The type of the contained value.
|
|
9
9
|
*/
|
|
10
10
|
type Some_<S> = Readonly<{
|
|
11
|
-
/**
|
|
12
|
-
|
|
11
|
+
/**
|
|
12
|
+
* @internal
|
|
13
|
+
* Discriminant property for the 'Some' type.
|
|
14
|
+
*/
|
|
15
|
+
$$tag: typeof SomeTypeTagName;
|
|
13
16
|
/** The contained value. */
|
|
14
17
|
value: S;
|
|
15
18
|
}>;
|
|
@@ -18,8 +21,11 @@ type Some_<S> = Readonly<{
|
|
|
18
21
|
* Represents the 'None' variant of an Optional, indicating the absence of a value.
|
|
19
22
|
*/
|
|
20
23
|
type None_ = Readonly<{
|
|
21
|
-
/**
|
|
22
|
-
|
|
24
|
+
/**
|
|
25
|
+
* @internal
|
|
26
|
+
* Discriminant property for the 'None' type.
|
|
27
|
+
*/
|
|
28
|
+
$$tag: typeof NoneTypeTagName;
|
|
23
29
|
}>;
|
|
24
30
|
/**
|
|
25
31
|
* Represents an optional value that can either be 'Some' (containing a value) or 'None' (empty).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"optional.d.mts","sourceRoot":"","sources":["../../src/functional/optional.mts"],"names":[],"mappings":"AAIA
|
|
1
|
+
{"version":3,"file":"optional.d.mts","sourceRoot":"","sources":["../../src/functional/optional.mts"],"names":[],"mappings":"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"}
|
|
@@ -2,10 +2,10 @@ import { isRecord } from '../guard/is-record.mjs';
|
|
|
2
2
|
import { pipe } from './pipe.mjs';
|
|
3
3
|
|
|
4
4
|
/* eslint-disable @typescript-eslint/no-unsafe-type-assertion */
|
|
5
|
-
/** @internal
|
|
6
|
-
const
|
|
7
|
-
/** @internal
|
|
8
|
-
const
|
|
5
|
+
/** @internal String literal tag to identify the 'Some' variant of Optional. */
|
|
6
|
+
const SomeTypeTagName = 'ts-data-forge::Optional.some';
|
|
7
|
+
/** @internal String literal tag to identify the 'None' variant of Optional. */
|
|
8
|
+
const NoneTypeTagName = 'ts-data-forge::Optional.none';
|
|
9
9
|
/**
|
|
10
10
|
* Namespace for the {@link Optional} type and related functions.
|
|
11
11
|
* Provides utilities to handle values that might be absent, similar to Option types in other languages.
|
|
@@ -18,10 +18,10 @@ var Optional;
|
|
|
18
18
|
* @returns `true` if the value is an {@link Optional}, otherwise `false`.
|
|
19
19
|
*/
|
|
20
20
|
Optional.isOptional = (maybeOptional) => isRecord(maybeOptional) &&
|
|
21
|
-
Object.hasOwn(maybeOptional, '
|
|
22
|
-
((maybeOptional['
|
|
21
|
+
Object.hasOwn(maybeOptional, '$$tag') &&
|
|
22
|
+
((maybeOptional['$$tag'] === SomeTypeTagName &&
|
|
23
23
|
Object.hasOwn(maybeOptional, 'value')) ||
|
|
24
|
-
maybeOptional['
|
|
24
|
+
maybeOptional['$$tag'] === NoneTypeTagName);
|
|
25
25
|
/**
|
|
26
26
|
* Creates an {@link Optional.Some} containing the given value.
|
|
27
27
|
* @template S The type of the value.
|
|
@@ -38,7 +38,7 @@ var Optional;
|
|
|
38
38
|
* ```
|
|
39
39
|
*/
|
|
40
40
|
Optional.some = (value) => ({
|
|
41
|
-
|
|
41
|
+
$$tag: SomeTypeTagName,
|
|
42
42
|
value,
|
|
43
43
|
});
|
|
44
44
|
/**
|
|
@@ -52,7 +52,7 @@ var Optional;
|
|
|
52
52
|
* console.log(Optional.unwrapOr(emptyValue, "default")); // "default"
|
|
53
53
|
* ```
|
|
54
54
|
*/
|
|
55
|
-
Optional.none = {
|
|
55
|
+
Optional.none = { $$tag: NoneTypeTagName };
|
|
56
56
|
/**
|
|
57
57
|
* Checks if an {@link Optional} is {@link Optional.Some}.
|
|
58
58
|
* Acts as a type guard.
|
|
@@ -60,7 +60,7 @@ var Optional;
|
|
|
60
60
|
* @param optional The {@link Optional} to check.
|
|
61
61
|
* @returns `true` if the {@link Optional} is {@link Optional.Some}, `false` otherwise.
|
|
62
62
|
*/
|
|
63
|
-
Optional.isSome = (optional) => optional
|
|
63
|
+
Optional.isSome = (optional) => optional.$$tag === SomeTypeTagName;
|
|
64
64
|
/**
|
|
65
65
|
* Checks if an {@link Optional} is {@link Optional.None}.
|
|
66
66
|
* Acts as a type guard.
|
|
@@ -68,7 +68,7 @@ var Optional;
|
|
|
68
68
|
* @param optional The {@link Optional} to check.
|
|
69
69
|
* @returns `true` if the {@link Optional} is {@link Optional.None}, `false` otherwise.
|
|
70
70
|
*/
|
|
71
|
-
Optional.isNone = (optional) => optional
|
|
71
|
+
Optional.isNone = (optional) => optional.$$tag === NoneTypeTagName;
|
|
72
72
|
/**
|
|
73
73
|
* Unwraps an `Optional`, returning the contained value.
|
|
74
74
|
* Throws an error if the `Optional` is `Optional.None`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"optional.mjs","sources":["../../src/functional/optional.mts"],"sourcesContent":[null],"names":[],"mappings":";;;AAAA;AAIA;AACA,MAAM,
|
|
1
|
+
{"version":3,"file":"optional.mjs","sources":["../../src/functional/optional.mts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
import { Optional } from './optional.mjs';
|
|
2
|
-
/** @internal
|
|
3
|
-
declare const
|
|
4
|
-
/** @internal
|
|
5
|
-
declare const
|
|
2
|
+
/** @internal String literal tag to identify the 'Ok' variant of Result. */
|
|
3
|
+
declare const OkTypeTagName = "ts-data-forge::Result.ok";
|
|
4
|
+
/** @internal String literal tag to identify the 'Err' variant of Result. */
|
|
5
|
+
declare const ErrTypeTagName = "ts-data-forge::Result.err";
|
|
6
6
|
/**
|
|
7
7
|
* @internal
|
|
8
8
|
* Represents the 'Ok' variant of a Result, containing a success value.
|
|
9
9
|
* @template S The type of the success value.
|
|
10
10
|
*/
|
|
11
11
|
type Ok_<S> = Readonly<{
|
|
12
|
-
/**
|
|
13
|
-
|
|
12
|
+
/**
|
|
13
|
+
* @internal
|
|
14
|
+
* Discriminant property for the 'Ok' type.
|
|
15
|
+
*/
|
|
16
|
+
$$tag: typeof OkTypeTagName;
|
|
14
17
|
/** The success value. */
|
|
15
18
|
value: S;
|
|
16
19
|
}>;
|
|
@@ -20,8 +23,11 @@ type Ok_<S> = Readonly<{
|
|
|
20
23
|
* @template E The type of the error value.
|
|
21
24
|
*/
|
|
22
25
|
type Err_<E> = Readonly<{
|
|
23
|
-
/**
|
|
24
|
-
|
|
26
|
+
/**
|
|
27
|
+
* @internal
|
|
28
|
+
* Discriminant property for the 'Err' type.
|
|
29
|
+
*/
|
|
30
|
+
$$tag: typeof ErrTypeTagName;
|
|
25
31
|
/** The error value. */
|
|
26
32
|
value: E;
|
|
27
33
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"result.d.mts","sourceRoot":"","sources":["../../src/functional/result.mts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C
|
|
1
|
+
{"version":3,"file":"result.d.mts","sourceRoot":"","sources":["../../src/functional/result.mts"],"names":[],"mappings":"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"}
|
|
@@ -3,10 +3,10 @@ import { unknownToString } from '../others/unknown-to-string.mjs';
|
|
|
3
3
|
import { Optional } from './optional.mjs';
|
|
4
4
|
|
|
5
5
|
/* eslint-disable @typescript-eslint/no-unsafe-type-assertion */
|
|
6
|
-
/** @internal
|
|
7
|
-
const
|
|
8
|
-
/** @internal
|
|
9
|
-
const
|
|
6
|
+
/** @internal String literal tag to identify the 'Ok' variant of Result. */
|
|
7
|
+
const OkTypeTagName = 'ts-data-forge::Result.ok';
|
|
8
|
+
/** @internal String literal tag to identify the 'Err' variant of Result. */
|
|
9
|
+
const ErrTypeTagName = 'ts-data-forge::Result.err';
|
|
10
10
|
/**
|
|
11
11
|
* Namespace for the `Result` type and related functions.
|
|
12
12
|
* Provides utilities to handle operations that can succeed or fail.
|
|
@@ -19,10 +19,10 @@ var Result;
|
|
|
19
19
|
* @returns `true` if the value is a `Result`, otherwise `false`.
|
|
20
20
|
*/
|
|
21
21
|
Result.isResult = (maybeOptional) => isRecord(maybeOptional) &&
|
|
22
|
-
Object.hasOwn(maybeOptional, '
|
|
22
|
+
Object.hasOwn(maybeOptional, '$$tag') &&
|
|
23
23
|
Object.hasOwn(maybeOptional, 'value') &&
|
|
24
|
-
(maybeOptional['
|
|
25
|
-
maybeOptional['
|
|
24
|
+
(maybeOptional['$$tag'] === ErrTypeTagName ||
|
|
25
|
+
maybeOptional['$$tag'] === OkTypeTagName);
|
|
26
26
|
/**
|
|
27
27
|
* Creates a `Result.Ok` containing the given success value.
|
|
28
28
|
*
|
|
@@ -52,7 +52,7 @@ var Result;
|
|
|
52
52
|
* ```
|
|
53
53
|
*/
|
|
54
54
|
Result.ok = (value) => ({
|
|
55
|
-
|
|
55
|
+
$$tag: OkTypeTagName,
|
|
56
56
|
value,
|
|
57
57
|
});
|
|
58
58
|
/**
|
|
@@ -96,7 +96,7 @@ var Result;
|
|
|
96
96
|
* ```
|
|
97
97
|
*/
|
|
98
98
|
Result.err = (value) => ({
|
|
99
|
-
|
|
99
|
+
$$tag: ErrTypeTagName,
|
|
100
100
|
value,
|
|
101
101
|
});
|
|
102
102
|
/**
|
|
@@ -146,7 +146,7 @@ var Result;
|
|
|
146
146
|
* // successes is Result.Ok<number>[]
|
|
147
147
|
* ```
|
|
148
148
|
*/
|
|
149
|
-
Result.isOk = (result) => result
|
|
149
|
+
Result.isOk = (result) => result.$$tag === OkTypeTagName;
|
|
150
150
|
/**
|
|
151
151
|
* Checks if a `Result` is `Result.Err`.
|
|
152
152
|
* Acts as a type guard, narrowing the type to the error variant.
|
|
@@ -188,7 +188,7 @@ var Result;
|
|
|
188
188
|
* .map(err => err.value); // ValidationError[]
|
|
189
189
|
* ```
|
|
190
190
|
*/
|
|
191
|
-
Result.isErr = (result) => result
|
|
191
|
+
Result.isErr = (result) => result.$$tag === ErrTypeTagName;
|
|
192
192
|
/**
|
|
193
193
|
* Unwraps a `Result`, returning the success value.
|
|
194
194
|
* Throws an error if the `Result` is `Result.Err`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"result.mjs","sources":["../../src/functional/result.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAAA;AAKA;AACA,MAAM,
|
|
1
|
+
{"version":3,"file":"result.mjs","sources":["../../src/functional/result.mts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
import { isRecord } from '../guard/index.mjs';
|
|
3
3
|
import { pipe } from './pipe.mjs';
|
|
4
4
|
|
|
5
|
-
/** @internal
|
|
6
|
-
const
|
|
5
|
+
/** @internal String literal tag to identify the 'Some' variant of Optional. */
|
|
6
|
+
const SomeTypeTagName = 'ts-data-forge::Optional.some';
|
|
7
7
|
|
|
8
|
-
/** @internal
|
|
9
|
-
const
|
|
8
|
+
/** @internal String literal tag to identify the 'None' variant of Optional. */
|
|
9
|
+
const NoneTypeTagName = 'ts-data-forge::Optional.none';
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
12
|
* @internal
|
|
@@ -14,8 +14,12 @@ const NoneTypeSymbol: unique symbol = Symbol('Optional.none');
|
|
|
14
14
|
* @template S The type of the contained value.
|
|
15
15
|
*/
|
|
16
16
|
type Some_<S> = Readonly<{
|
|
17
|
-
/**
|
|
18
|
-
|
|
17
|
+
/**
|
|
18
|
+
* @internal
|
|
19
|
+
* Discriminant property for the 'Some' type.
|
|
20
|
+
*/
|
|
21
|
+
$$tag: typeof SomeTypeTagName;
|
|
22
|
+
|
|
19
23
|
/** The contained value. */
|
|
20
24
|
value: S;
|
|
21
25
|
}>;
|
|
@@ -25,8 +29,11 @@ type Some_<S> = Readonly<{
|
|
|
25
29
|
* Represents the 'None' variant of an Optional, indicating the absence of a value.
|
|
26
30
|
*/
|
|
27
31
|
type None_ = Readonly<{
|
|
28
|
-
/**
|
|
29
|
-
|
|
32
|
+
/**
|
|
33
|
+
* @internal
|
|
34
|
+
* Discriminant property for the 'None' type.
|
|
35
|
+
*/
|
|
36
|
+
$$tag: typeof NoneTypeTagName;
|
|
30
37
|
}>;
|
|
31
38
|
|
|
32
39
|
/**
|
|
@@ -49,10 +56,10 @@ export namespace Optional {
|
|
|
49
56
|
maybeOptional: unknown,
|
|
50
57
|
): maybeOptional is Optional<unknown> =>
|
|
51
58
|
isRecord(maybeOptional) &&
|
|
52
|
-
Object.hasOwn(maybeOptional, '
|
|
53
|
-
((maybeOptional['
|
|
59
|
+
Object.hasOwn(maybeOptional, '$$tag') &&
|
|
60
|
+
((maybeOptional['$$tag'] === SomeTypeTagName &&
|
|
54
61
|
Object.hasOwn(maybeOptional, 'value')) ||
|
|
55
|
-
maybeOptional['
|
|
62
|
+
maybeOptional['$$tag'] === NoneTypeTagName);
|
|
56
63
|
|
|
57
64
|
/**
|
|
58
65
|
* Represents an {@link Optional} that contains a value.
|
|
@@ -108,7 +115,7 @@ export namespace Optional {
|
|
|
108
115
|
* ```
|
|
109
116
|
*/
|
|
110
117
|
export const some = <S,>(value: S): Some<S> => ({
|
|
111
|
-
|
|
118
|
+
$$tag: SomeTypeTagName,
|
|
112
119
|
value,
|
|
113
120
|
});
|
|
114
121
|
|
|
@@ -123,7 +130,7 @@ export namespace Optional {
|
|
|
123
130
|
* console.log(Optional.unwrapOr(emptyValue, "default")); // "default"
|
|
124
131
|
* ```
|
|
125
132
|
*/
|
|
126
|
-
export const none: None = {
|
|
133
|
+
export const none: None = { $$tag: NoneTypeTagName } as const;
|
|
127
134
|
|
|
128
135
|
/**
|
|
129
136
|
* Checks if an {@link Optional} is {@link Optional.Some}.
|
|
@@ -134,7 +141,7 @@ export namespace Optional {
|
|
|
134
141
|
*/
|
|
135
142
|
export const isSome = <O extends Base>(
|
|
136
143
|
optional: O,
|
|
137
|
-
): optional is NarrowToSome<O> => optional
|
|
144
|
+
): optional is NarrowToSome<O> => optional.$$tag === SomeTypeTagName;
|
|
138
145
|
|
|
139
146
|
/**
|
|
140
147
|
* Checks if an {@link Optional} is {@link Optional.None}.
|
|
@@ -145,7 +152,7 @@ export namespace Optional {
|
|
|
145
152
|
*/
|
|
146
153
|
export const isNone = <O extends Base>(
|
|
147
154
|
optional: O,
|
|
148
|
-
): optional is NarrowToNone<O> => optional
|
|
155
|
+
): optional is NarrowToNone<O> => optional.$$tag === NoneTypeTagName;
|
|
149
156
|
|
|
150
157
|
/**
|
|
151
158
|
* Unwraps an `Optional`, returning the contained value.
|
|
@@ -3,11 +3,11 @@ import { isRecord } from '../guard/index.mjs';
|
|
|
3
3
|
import { unknownToString } from '../others/index.mjs';
|
|
4
4
|
import { Optional } from './optional.mjs';
|
|
5
5
|
|
|
6
|
-
/** @internal
|
|
7
|
-
const
|
|
6
|
+
/** @internal String literal tag to identify the 'Ok' variant of Result. */
|
|
7
|
+
const OkTypeTagName = 'ts-data-forge::Result.ok';
|
|
8
8
|
|
|
9
|
-
/** @internal
|
|
10
|
-
const
|
|
9
|
+
/** @internal String literal tag to identify the 'Err' variant of Result. */
|
|
10
|
+
const ErrTypeTagName = 'ts-data-forge::Result.err';
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* @internal
|
|
@@ -15,8 +15,12 @@ const ErrTypeSymbol: unique symbol = Symbol('Result.err');
|
|
|
15
15
|
* @template S The type of the success value.
|
|
16
16
|
*/
|
|
17
17
|
type Ok_<S> = Readonly<{
|
|
18
|
-
/**
|
|
19
|
-
|
|
18
|
+
/**
|
|
19
|
+
* @internal
|
|
20
|
+
* Discriminant property for the 'Ok' type.
|
|
21
|
+
*/
|
|
22
|
+
$$tag: typeof OkTypeTagName;
|
|
23
|
+
|
|
20
24
|
/** The success value. */
|
|
21
25
|
value: S;
|
|
22
26
|
}>;
|
|
@@ -27,8 +31,12 @@ type Ok_<S> = Readonly<{
|
|
|
27
31
|
* @template E The type of the error value.
|
|
28
32
|
*/
|
|
29
33
|
type Err_<E> = Readonly<{
|
|
30
|
-
/**
|
|
31
|
-
|
|
34
|
+
/**
|
|
35
|
+
* @internal
|
|
36
|
+
* Discriminant property for the 'Err' type.
|
|
37
|
+
*/
|
|
38
|
+
$$tag: typeof ErrTypeTagName;
|
|
39
|
+
|
|
32
40
|
/** The error value. */
|
|
33
41
|
value: E;
|
|
34
42
|
}>;
|
|
@@ -54,10 +62,10 @@ export namespace Result {
|
|
|
54
62
|
maybeOptional: unknown,
|
|
55
63
|
): maybeOptional is Result<unknown, unknown> =>
|
|
56
64
|
isRecord(maybeOptional) &&
|
|
57
|
-
Object.hasOwn(maybeOptional, '
|
|
65
|
+
Object.hasOwn(maybeOptional, '$$tag') &&
|
|
58
66
|
Object.hasOwn(maybeOptional, 'value') &&
|
|
59
|
-
(maybeOptional['
|
|
60
|
-
maybeOptional['
|
|
67
|
+
(maybeOptional['$$tag'] === ErrTypeTagName ||
|
|
68
|
+
maybeOptional['$$tag'] === OkTypeTagName);
|
|
61
69
|
|
|
62
70
|
/**
|
|
63
71
|
* Represents a `Result` that is a success, containing a value.
|
|
@@ -134,7 +142,7 @@ export namespace Result {
|
|
|
134
142
|
* ```
|
|
135
143
|
*/
|
|
136
144
|
export const ok = <S,>(value: S): Ok<S> => ({
|
|
137
|
-
|
|
145
|
+
$$tag: OkTypeTagName,
|
|
138
146
|
value,
|
|
139
147
|
});
|
|
140
148
|
|
|
@@ -179,7 +187,7 @@ export namespace Result {
|
|
|
179
187
|
* ```
|
|
180
188
|
*/
|
|
181
189
|
export const err = <E,>(value: E): Err<E> => ({
|
|
182
|
-
|
|
190
|
+
$$tag: ErrTypeTagName,
|
|
183
191
|
value,
|
|
184
192
|
});
|
|
185
193
|
|
|
@@ -232,7 +240,7 @@ export namespace Result {
|
|
|
232
240
|
* ```
|
|
233
241
|
*/
|
|
234
242
|
export const isOk = <R extends Base>(result: R): result is NarrowToOk<R> =>
|
|
235
|
-
result
|
|
243
|
+
result.$$tag === OkTypeTagName;
|
|
236
244
|
|
|
237
245
|
/**
|
|
238
246
|
* Checks if a `Result` is `Result.Err`.
|
|
@@ -276,7 +284,7 @@ export namespace Result {
|
|
|
276
284
|
* ```
|
|
277
285
|
*/
|
|
278
286
|
export const isErr = <R extends Base>(result: R): result is NarrowToErr<R> =>
|
|
279
|
-
result
|
|
287
|
+
result.$$tag === ErrTypeTagName;
|
|
280
288
|
|
|
281
289
|
/**
|
|
282
290
|
* Unwraps a `Result`, returning the success value.
|