@terrygonguet/utils 0.0.12 → 0.0.13
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.js +36 -30
- package/package.json +1 -1
- package/src/functional/index.ts +35 -0
- package/types/functional/index.d.ts +5 -0
package/dist/functional.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
3
|
-
var u = (r, e, t) => (
|
|
4
|
-
const a = "@terrygonguet/utils/functional/result",
|
|
5
|
-
class
|
|
1
|
+
var S = Object.defineProperty;
|
|
2
|
+
var v = (r, e, t) => e in r ? S(r, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[e] = t;
|
|
3
|
+
var u = (r, e, t) => (v(r, typeof e != "symbol" ? e + "" : e, t), t);
|
|
4
|
+
const a = "@terrygonguet/utils/functional/result", f = "@terrygonguet/utils/functional/result/Success", w = "@terrygonguet/utils/functional/result/Failure";
|
|
5
|
+
class l {
|
|
6
6
|
constructor(e) {
|
|
7
7
|
u(this, "value");
|
|
8
8
|
Object.defineProperties(this, {
|
|
9
9
|
$_kind: { value: a, enumerable: !1, writable: !1 },
|
|
10
|
-
$_variant: { value:
|
|
10
|
+
$_variant: { value: f, enumerable: !1, writable: !1 },
|
|
11
11
|
value: { value: e, writable: !1 }
|
|
12
12
|
});
|
|
13
13
|
}
|
|
@@ -24,13 +24,13 @@ class f {
|
|
|
24
24
|
return e(this.value);
|
|
25
25
|
}
|
|
26
26
|
map(e) {
|
|
27
|
-
return new
|
|
27
|
+
return new l(e(this.value));
|
|
28
28
|
}
|
|
29
29
|
flatMap(e) {
|
|
30
30
|
return e(this.value);
|
|
31
31
|
}
|
|
32
32
|
toJSON() {
|
|
33
|
-
return { $_kind: a, $_variant:
|
|
33
|
+
return { $_kind: a, $_variant: f, value: this.value };
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
class g {
|
|
@@ -38,7 +38,7 @@ class g {
|
|
|
38
38
|
u(this, "reason");
|
|
39
39
|
Object.defineProperties(this, {
|
|
40
40
|
$_kind: { value: a, enumerable: !1, writable: !1 },
|
|
41
|
-
$_variant: { value:
|
|
41
|
+
$_variant: { value: f, enumerable: !1, writable: !1 },
|
|
42
42
|
reason: { value: e, writable: !1 }
|
|
43
43
|
});
|
|
44
44
|
}
|
|
@@ -64,18 +64,18 @@ class g {
|
|
|
64
64
|
return { $_kind: a, $_variant: w, reason: this.reason };
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
|
-
function
|
|
67
|
+
function y(r, e) {
|
|
68
68
|
return e ? r.toResult(e) : r.toResult();
|
|
69
69
|
}
|
|
70
70
|
const c = {
|
|
71
71
|
Success(r) {
|
|
72
|
-
return new
|
|
72
|
+
return new l(r);
|
|
73
73
|
},
|
|
74
74
|
Failure(r) {
|
|
75
75
|
return new g(r);
|
|
76
76
|
},
|
|
77
77
|
try(r) {
|
|
78
|
-
return new
|
|
78
|
+
return new d(r);
|
|
79
79
|
},
|
|
80
80
|
fromPromise(r, e, t) {
|
|
81
81
|
return r.then(
|
|
@@ -83,20 +83,20 @@ const c = {
|
|
|
83
83
|
b(t, this.Failure)
|
|
84
84
|
);
|
|
85
85
|
},
|
|
86
|
-
fromMaybe:
|
|
86
|
+
fromMaybe: y,
|
|
87
87
|
JSONReviver(r, e) {
|
|
88
88
|
if ((e == null ? void 0 : e.$_kind) == a) {
|
|
89
89
|
const t = e == null ? void 0 : e.$_variant;
|
|
90
|
-
return t ==
|
|
90
|
+
return t == f ? new l(e == null ? void 0 : e.value) : t == w ? new g(e == null ? void 0 : e.reason) : e;
|
|
91
91
|
} else
|
|
92
92
|
return e;
|
|
93
93
|
}
|
|
94
94
|
};
|
|
95
|
-
class
|
|
95
|
+
class d {
|
|
96
96
|
constructor(e) {
|
|
97
97
|
u(this, "tryFn");
|
|
98
98
|
u(this, "catchFn");
|
|
99
|
-
this.tryFn = e, this.catchFn =
|
|
99
|
+
this.tryFn = e, this.catchFn = $;
|
|
100
100
|
}
|
|
101
101
|
catch(e) {
|
|
102
102
|
return this.catchFn = e, this;
|
|
@@ -111,8 +111,8 @@ class y {
|
|
|
111
111
|
}
|
|
112
112
|
}
|
|
113
113
|
}
|
|
114
|
-
const h = "@terrygonguet/utils/functional/maybe", _ = "@terrygonguet/utils/functional/maybe/Some",
|
|
115
|
-
class
|
|
114
|
+
const h = "@terrygonguet/utils/functional/maybe", _ = "@terrygonguet/utils/functional/maybe/Some", p = "@terrygonguet/utils/functional/maybe/None";
|
|
115
|
+
class i {
|
|
116
116
|
constructor(e) {
|
|
117
117
|
u(this, "value");
|
|
118
118
|
Object.defineProperties(this, {
|
|
@@ -131,7 +131,7 @@ class o {
|
|
|
131
131
|
return this.value;
|
|
132
132
|
}
|
|
133
133
|
map(e) {
|
|
134
|
-
return new
|
|
134
|
+
return new i(e(this.value));
|
|
135
135
|
}
|
|
136
136
|
flatMap(e) {
|
|
137
137
|
return e(this.value);
|
|
@@ -165,12 +165,12 @@ class k {
|
|
|
165
165
|
return e ? c.Failure(e == null ? void 0 : e()) : c.Failure(void 0);
|
|
166
166
|
}
|
|
167
167
|
toJSON() {
|
|
168
|
-
return { $_kind: h, $_variant:
|
|
168
|
+
return { $_kind: h, $_variant: p };
|
|
169
169
|
}
|
|
170
170
|
}
|
|
171
171
|
const N = new k(), s = {
|
|
172
172
|
Some(r) {
|
|
173
|
-
return new
|
|
173
|
+
return new i(r);
|
|
174
174
|
},
|
|
175
175
|
None() {
|
|
176
176
|
return N;
|
|
@@ -181,20 +181,20 @@ const N = new k(), s = {
|
|
|
181
181
|
case void 0:
|
|
182
182
|
return this.None();
|
|
183
183
|
default:
|
|
184
|
-
return new
|
|
184
|
+
return new i(r);
|
|
185
185
|
}
|
|
186
186
|
},
|
|
187
187
|
/**
|
|
188
188
|
* CAUTION: this method swallows errors and simply returns None!
|
|
189
189
|
* Use `Result.fromPromise()` if you need error details.
|
|
190
190
|
*/
|
|
191
|
-
fromPromise(r, e =
|
|
191
|
+
fromPromise(r, e = $) {
|
|
192
192
|
return r.then(b(e, s.from), M(this.None()));
|
|
193
193
|
},
|
|
194
194
|
JSONReviver(r, e) {
|
|
195
195
|
if ((e == null ? void 0 : e.$_kind) == h) {
|
|
196
196
|
const t = e == null ? void 0 : e.$_variant;
|
|
197
|
-
return t == _ ? new
|
|
197
|
+
return t == _ ? new i(e == null ? void 0 : e.value) : t == p ? s.None() : e;
|
|
198
198
|
} else
|
|
199
199
|
return e;
|
|
200
200
|
}
|
|
@@ -207,7 +207,7 @@ function F(r, e) {
|
|
|
207
207
|
);
|
|
208
208
|
var t = arguments;
|
|
209
209
|
return function() {
|
|
210
|
-
for (var n = t[0].apply(this, arguments),
|
|
210
|
+
for (var n = t[0].apply(this, arguments), o = t.length, m = 1; m < o; m++)
|
|
211
211
|
n = t[m].call(this, n);
|
|
212
212
|
return n;
|
|
213
213
|
};
|
|
@@ -220,11 +220,11 @@ function x(r, ...e) {
|
|
|
220
220
|
throw new Error(
|
|
221
221
|
"expected at least one (and probably more) function arguments"
|
|
222
222
|
);
|
|
223
|
-
for (var t = e[0](r), n = e.length,
|
|
224
|
-
t = e[
|
|
223
|
+
for (var t = e[0](r), n = e.length, o = 1; o < n; o++)
|
|
224
|
+
t = e[o](t);
|
|
225
225
|
return t;
|
|
226
226
|
}
|
|
227
|
-
function
|
|
227
|
+
function $(r) {
|
|
228
228
|
return r;
|
|
229
229
|
}
|
|
230
230
|
function M(r) {
|
|
@@ -247,6 +247,11 @@ function O(r, e) {
|
|
|
247
247
|
return t == -1 ? s.None() : s.Some(t);
|
|
248
248
|
}
|
|
249
249
|
}
|
|
250
|
+
function C(r, ...e) {
|
|
251
|
+
for (const t of e)
|
|
252
|
+
r = r == null ? void 0 : r[t];
|
|
253
|
+
return s.from(r);
|
|
254
|
+
}
|
|
250
255
|
export {
|
|
251
256
|
s as Maybe,
|
|
252
257
|
c as Result,
|
|
@@ -255,6 +260,7 @@ export {
|
|
|
255
260
|
M as constant,
|
|
256
261
|
E as find,
|
|
257
262
|
O as findIndex,
|
|
258
|
-
|
|
259
|
-
J as pipe
|
|
263
|
+
$ as identity,
|
|
264
|
+
J as pipe,
|
|
265
|
+
C as prop
|
|
260
266
|
};
|
package/package.json
CHANGED
package/src/functional/index.ts
CHANGED
|
@@ -43,3 +43,38 @@ export function findIndex<T>(dataOrPredicate: T[] | Predicate<T>, predicate?: Pr
|
|
|
43
43
|
return idx == -1 ? Maybe.None<number>() : Maybe.Some(idx)
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
|
+
|
|
47
|
+
export function prop<T extends {}, K1 extends keyof T = keyof T>(data: T, key1: K1): Maybe<T[K1]>
|
|
48
|
+
export function prop<
|
|
49
|
+
T extends {},
|
|
50
|
+
K1 extends keyof T = keyof T,
|
|
51
|
+
K2 extends keyof T[K1] = keyof T[K1],
|
|
52
|
+
>(data: T, key1: K1, key2: K2): Maybe<T[K1][K2]>
|
|
53
|
+
export function prop<
|
|
54
|
+
T extends {},
|
|
55
|
+
K1 extends keyof T = keyof T,
|
|
56
|
+
K2 extends keyof T[K1] = keyof T[K1],
|
|
57
|
+
K3 extends keyof T[K1][K2] = keyof T[K1][K2],
|
|
58
|
+
>(data: T, key1: K1, key2: K2, key: K3): Maybe<T[K1][K2][K3]>
|
|
59
|
+
export function prop<
|
|
60
|
+
T extends {},
|
|
61
|
+
K1 extends keyof T = keyof T,
|
|
62
|
+
K2 extends keyof T[K1] = keyof T[K1],
|
|
63
|
+
K3 extends keyof T[K1][K2] = keyof T[K1][K2],
|
|
64
|
+
K4 extends keyof T[K1][K2][K3] = keyof T[K1][K2][K3],
|
|
65
|
+
>(data: T, key1: K1, key2: K2, key: K3, key4: K4): Maybe<T[K1][K2][K3][K4]>
|
|
66
|
+
export function prop<
|
|
67
|
+
T extends {},
|
|
68
|
+
K1 extends keyof T = keyof T,
|
|
69
|
+
K2 extends keyof T[K1] = keyof T[K1],
|
|
70
|
+
K3 extends keyof T[K1][K2] = keyof T[K1][K2],
|
|
71
|
+
K4 extends keyof T[K1][K2][K3] = keyof T[K1][K2][K3],
|
|
72
|
+
K5 extends keyof T[K1][K2][K3][K4] = keyof T[K1][K2][K3][K4],
|
|
73
|
+
>(data: T, key1: K1, key2: K2, key: K3, key4: K4, key5: K5): Maybe<T[K1][K2][K3][K4][K5]>
|
|
74
|
+
|
|
75
|
+
export function prop(data: any, ...path: string[]) {
|
|
76
|
+
for (const key of path) {
|
|
77
|
+
data = data?.[key]
|
|
78
|
+
}
|
|
79
|
+
return Maybe.from(data)
|
|
80
|
+
}
|
|
@@ -12,3 +12,8 @@ export declare function find<T>(predicate: Predicate<T>): (data: T[]) => Maybe<T
|
|
|
12
12
|
export declare function find<T>(data: T[], predicate: Predicate<T>): Maybe<T>;
|
|
13
13
|
export declare function findIndex<T>(predicate: Predicate<T>): (data: T[]) => Maybe<number>;
|
|
14
14
|
export declare function findIndex<T>(data: T[], predicate: Predicate<T>): Maybe<number>;
|
|
15
|
+
export declare function prop<T extends {}, K1 extends keyof T = keyof T>(data: T, key1: K1): Maybe<T[K1]>;
|
|
16
|
+
export declare function prop<T extends {}, K1 extends keyof T = keyof T, K2 extends keyof T[K1] = keyof T[K1]>(data: T, key1: K1, key2: K2): Maybe<T[K1][K2]>;
|
|
17
|
+
export declare function prop<T extends {}, K1 extends keyof T = keyof T, K2 extends keyof T[K1] = keyof T[K1], K3 extends keyof T[K1][K2] = keyof T[K1][K2]>(data: T, key1: K1, key2: K2, key: K3): Maybe<T[K1][K2][K3]>;
|
|
18
|
+
export declare function prop<T extends {}, K1 extends keyof T = keyof T, K2 extends keyof T[K1] = keyof T[K1], K3 extends keyof T[K1][K2] = keyof T[K1][K2], K4 extends keyof T[K1][K2][K3] = keyof T[K1][K2][K3]>(data: T, key1: K1, key2: K2, key: K3, key4: K4): Maybe<T[K1][K2][K3][K4]>;
|
|
19
|
+
export declare function prop<T extends {}, K1 extends keyof T = keyof T, K2 extends keyof T[K1] = keyof T[K1], K3 extends keyof T[K1][K2] = keyof T[K1][K2], K4 extends keyof T[K1][K2][K3] = keyof T[K1][K2][K3], K5 extends keyof T[K1][K2][K3][K4] = keyof T[K1][K2][K3][K4]>(data: T, key1: K1, key2: K2, key: K3, key4: K4, key5: K5): Maybe<T[K1][K2][K3][K4][K5]>;
|