@lsby/ts-fp-data 0.1.0 → 0.1.4

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.
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/data/lazy.ts
21
+ var lazy_exports = {};
22
+ __export(lazy_exports, {
23
+ Lazy: () => Lazy,
24
+ LazyDeferValue: () => LazyDeferValue,
25
+ LazyForceValue: () => LazyForceValue
26
+ });
27
+ module.exports = __toCommonJS(lazy_exports);
28
+ var Lazy = class {
29
+ };
30
+ var LazyDeferValue = class _LazyDeferValue extends Lazy {
31
+ constructor(value) {
32
+ super();
33
+ this.value = value;
34
+ }
35
+ cache = null;
36
+ run() {
37
+ if (this.cache)
38
+ return this.cache;
39
+ this.cache = this.value();
40
+ return this.cache;
41
+ }
42
+ map(f) {
43
+ return new _LazyDeferValue(() => f(this.run()));
44
+ }
45
+ };
46
+ var LazyForceValue = class _LazyForceValue extends Lazy {
47
+ constructor(value) {
48
+ super();
49
+ this.value = value;
50
+ }
51
+ run() {
52
+ return this.value;
53
+ }
54
+ map(f) {
55
+ return new _LazyForceValue(f(this.run()));
56
+ }
57
+ };
58
+ // Annotate the CommonJS export names for ESM import in node:
59
+ 0 && (module.exports = {
60
+ Lazy,
61
+ LazyDeferValue,
62
+ LazyForceValue
63
+ });
@@ -0,0 +1,19 @@
1
+ declare abstract class Lazy<A> {
2
+ abstract run(): A;
3
+ abstract map<B>(f: (a: A) => B): Lazy<B>;
4
+ }
5
+ declare class LazyDeferValue<A> extends Lazy<A> {
6
+ private value;
7
+ private cache;
8
+ constructor(value: () => A);
9
+ run(): A;
10
+ map<B>(f: (a: A) => B): Lazy<B>;
11
+ }
12
+ declare class LazyForceValue<A> extends Lazy<A> {
13
+ private value;
14
+ constructor(value: A);
15
+ run(): A;
16
+ map<B>(f: (a: A) => B): Lazy<B>;
17
+ }
18
+
19
+ export { Lazy, LazyDeferValue, LazyForceValue };
@@ -23,7 +23,9 @@ __export(seq_exports, {
23
23
  seqArrayEither: () => seqArrayEither,
24
24
  seqArrayTask: () => seqArrayTask,
25
25
  seqEitherArray: () => seqEitherArray,
26
- seqEitherTask: () => seqEitherTask
26
+ seqEitherPromise: () => seqEitherPromise,
27
+ seqEitherTask: () => seqEitherTask,
28
+ seqMaybePromise: () => seqMaybePromise
27
29
  });
28
30
  module.exports = __toCommonJS(seq_exports);
29
31
 
@@ -106,6 +108,72 @@ var Right = class _Right extends Either {
106
108
  }
107
109
  };
108
110
 
111
+ // src/data/maybe.ts
112
+ var Maybe = class {
113
+ static pure(a) {
114
+ return new Just(a);
115
+ }
116
+ };
117
+ var Just = class _Just extends Maybe {
118
+ constructor(\u503C) {
119
+ super();
120
+ this.\u503C = \u503C;
121
+ }
122
+ map(f) {
123
+ return new _Just(f(this.\u503C));
124
+ }
125
+ bind(f) {
126
+ return f(this.\u503C);
127
+ }
128
+ isJust() {
129
+ return true;
130
+ }
131
+ isNothing() {
132
+ return false;
133
+ }
134
+ assertJust() {
135
+ return this;
136
+ }
137
+ assertNothing() {
138
+ throw new Error("\u65AD\u8A00\u5931\u8D25");
139
+ }
140
+ getJust() {
141
+ return this.\u503C;
142
+ }
143
+ getJustOrNull() {
144
+ return this.\u503C;
145
+ }
146
+ match(onJust, _onNothing) {
147
+ return onJust(this.\u503C);
148
+ }
149
+ };
150
+ var Nothing = class _Nothing extends Maybe {
151
+ map(_f) {
152
+ return new _Nothing();
153
+ }
154
+ bind(_f) {
155
+ return new _Nothing();
156
+ }
157
+ isJust() {
158
+ return false;
159
+ }
160
+ isNothing() {
161
+ return true;
162
+ }
163
+ assertJust() {
164
+ throw new Error("\u65AD\u8A00\u5931\u8D25");
165
+ }
166
+ assertNothing() {
167
+ return this;
168
+ }
169
+ getJustOrNull() {
170
+ return null;
171
+ }
172
+ match(_onJust, onNothing) {
173
+ return onNothing();
174
+ }
175
+ };
176
+
109
177
  // src/data/task.ts
110
178
  var TaskDo = class _TaskDo {
111
179
  constructor(accTask) {
@@ -225,10 +293,24 @@ function seqArrayEither(value) {
225
293
  const data = value.map((a) => a.assertRight().getRight());
226
294
  return new Right(data);
227
295
  }
296
+ function seqMaybePromise(a) {
297
+ return a.match(
298
+ async (a2) => new Just(await a2),
299
+ async () => new Nothing()
300
+ );
301
+ }
302
+ function seqEitherPromise(a) {
303
+ return a.match(
304
+ async (a2) => new Left(a2),
305
+ async (a2) => new Right(await a2)
306
+ );
307
+ }
228
308
  // Annotate the CommonJS export names for ESM import in node:
229
309
  0 && (module.exports = {
230
310
  seqArrayEither,
231
311
  seqArrayTask,
232
312
  seqEitherArray,
233
- seqEitherTask
313
+ seqEitherPromise,
314
+ seqEitherTask,
315
+ seqMaybePromise
234
316
  });
@@ -1,9 +1,12 @@
1
1
  import { Either } from '../data/either.cjs';
2
+ import { Maybe } from '../data/maybe.cjs';
2
3
  import { Task } from '../data/task.cjs';
3
4
 
4
5
  declare function seqArrayTask<A>(a: Array<Task<A>>): Task<Array<A>>;
5
6
  declare function seqEitherTask<L, R>(value: Either<L, Task<R>>): Task<Either<L, R>>;
6
7
  declare function seqEitherArray<A, B>(value: Either<A, Array<B>>): Array<Either<A, B>>;
7
8
  declare function seqArrayEither<A, B>(value: Array<Either<A, B>>): Either<A, Array<B>>;
9
+ declare function seqMaybePromise<A>(a: Maybe<Promise<A>>): Promise<Maybe<A>>;
10
+ declare function seqEitherPromise<L, R>(a: Either<L, Promise<R>>): Promise<Either<L, R>>;
8
11
 
9
- export { seqArrayEither, seqArrayTask, seqEitherArray, seqEitherTask };
12
+ export { seqArrayEither, seqArrayTask, seqEitherArray, seqEitherPromise, seqEitherTask, seqMaybePromise };
@@ -22,6 +22,9 @@ var src_exports = {};
22
22
  __export(src_exports, {
23
23
  Either: () => Either,
24
24
  Just: () => Just,
25
+ Lazy: () => Lazy,
26
+ LazyDeferValue: () => LazyDeferValue,
27
+ LazyForceValue: () => LazyForceValue,
25
28
  Left: () => Left,
26
29
  Maybe: () => Maybe,
27
30
  Nothing: () => Nothing,
@@ -31,7 +34,9 @@ __export(src_exports, {
31
34
  seqArrayEither: () => seqArrayEither,
32
35
  seqArrayTask: () => seqArrayTask,
33
36
  seqEitherArray: () => seqEitherArray,
34
- seqEitherTask: () => seqEitherTask
37
+ seqEitherPromise: () => seqEitherPromise,
38
+ seqEitherTask: () => seqEitherTask,
39
+ seqMaybePromise: () => seqMaybePromise
35
40
  });
36
41
  module.exports = __toCommonJS(src_exports);
37
42
 
@@ -114,6 +119,104 @@ var Right = class _Right extends Either {
114
119
  }
115
120
  };
116
121
 
122
+ // src/data/lazy.ts
123
+ var Lazy = class {
124
+ };
125
+ var LazyDeferValue = class _LazyDeferValue extends Lazy {
126
+ constructor(value) {
127
+ super();
128
+ this.value = value;
129
+ }
130
+ cache = null;
131
+ run() {
132
+ if (this.cache)
133
+ return this.cache;
134
+ this.cache = this.value();
135
+ return this.cache;
136
+ }
137
+ map(f) {
138
+ return new _LazyDeferValue(() => f(this.run()));
139
+ }
140
+ };
141
+ var LazyForceValue = class _LazyForceValue extends Lazy {
142
+ constructor(value) {
143
+ super();
144
+ this.value = value;
145
+ }
146
+ run() {
147
+ return this.value;
148
+ }
149
+ map(f) {
150
+ return new _LazyForceValue(f(this.run()));
151
+ }
152
+ };
153
+
154
+ // src/data/maybe.ts
155
+ var Maybe = class {
156
+ static pure(a) {
157
+ return new Just(a);
158
+ }
159
+ };
160
+ var Just = class _Just extends Maybe {
161
+ constructor(\u503C) {
162
+ super();
163
+ this.\u503C = \u503C;
164
+ }
165
+ map(f) {
166
+ return new _Just(f(this.\u503C));
167
+ }
168
+ bind(f) {
169
+ return f(this.\u503C);
170
+ }
171
+ isJust() {
172
+ return true;
173
+ }
174
+ isNothing() {
175
+ return false;
176
+ }
177
+ assertJust() {
178
+ return this;
179
+ }
180
+ assertNothing() {
181
+ throw new Error("\u65AD\u8A00\u5931\u8D25");
182
+ }
183
+ getJust() {
184
+ return this.\u503C;
185
+ }
186
+ getJustOrNull() {
187
+ return this.\u503C;
188
+ }
189
+ match(onJust, _onNothing) {
190
+ return onJust(this.\u503C);
191
+ }
192
+ };
193
+ var Nothing = class _Nothing extends Maybe {
194
+ map(_f) {
195
+ return new _Nothing();
196
+ }
197
+ bind(_f) {
198
+ return new _Nothing();
199
+ }
200
+ isJust() {
201
+ return false;
202
+ }
203
+ isNothing() {
204
+ return true;
205
+ }
206
+ assertJust() {
207
+ throw new Error("\u65AD\u8A00\u5931\u8D25");
208
+ }
209
+ assertNothing() {
210
+ return this;
211
+ }
212
+ getJustOrNull() {
213
+ return null;
214
+ }
215
+ match(_onJust, onNothing) {
216
+ return onNothing();
217
+ }
218
+ };
219
+
117
220
  // src/data/task.ts
118
221
  var TaskDo = class _TaskDo {
119
222
  constructor(accTask) {
@@ -208,72 +311,6 @@ var Task = class _Task {
208
311
  }
209
312
  };
210
313
 
211
- // src/data/maybe.ts
212
- var Maybe = class {
213
- static pure(a) {
214
- return new Just(a);
215
- }
216
- };
217
- var Just = class _Just extends Maybe {
218
- constructor(\u503C) {
219
- super();
220
- this.\u503C = \u503C;
221
- }
222
- map(f) {
223
- return new _Just(f(this.\u503C));
224
- }
225
- bind(f) {
226
- return f(this.\u503C);
227
- }
228
- isJust() {
229
- return true;
230
- }
231
- isNothing() {
232
- return false;
233
- }
234
- assertJust() {
235
- return this;
236
- }
237
- assertNothing() {
238
- throw new Error("\u65AD\u8A00\u5931\u8D25");
239
- }
240
- getJust() {
241
- return this.\u503C;
242
- }
243
- getJustOrNull() {
244
- return this.\u503C;
245
- }
246
- match(onJust, _onNothing) {
247
- return onJust(this.\u503C);
248
- }
249
- };
250
- var Nothing = class _Nothing extends Maybe {
251
- map(_f) {
252
- return new _Nothing();
253
- }
254
- bind(_f) {
255
- return new _Nothing();
256
- }
257
- isJust() {
258
- return false;
259
- }
260
- isNothing() {
261
- return true;
262
- }
263
- assertJust() {
264
- throw new Error("\u65AD\u8A00\u5931\u8D25");
265
- }
266
- assertNothing() {
267
- return this;
268
- }
269
- getJustOrNull() {
270
- return null;
271
- }
272
- match(_onJust, onNothing) {
273
- return onNothing();
274
- }
275
- };
276
-
277
314
  // src/func/seq.ts
278
315
  function seqArrayTask(a) {
279
316
  return new Task(async () => {
@@ -299,10 +336,25 @@ function seqArrayEither(value) {
299
336
  const data = value.map((a) => a.assertRight().getRight());
300
337
  return new Right(data);
301
338
  }
339
+ function seqMaybePromise(a) {
340
+ return a.match(
341
+ async (a2) => new Just(await a2),
342
+ async () => new Nothing()
343
+ );
344
+ }
345
+ function seqEitherPromise(a) {
346
+ return a.match(
347
+ async (a2) => new Left(a2),
348
+ async (a2) => new Right(await a2)
349
+ );
350
+ }
302
351
  // Annotate the CommonJS export names for ESM import in node:
303
352
  0 && (module.exports = {
304
353
  Either,
305
354
  Just,
355
+ Lazy,
356
+ LazyDeferValue,
357
+ LazyForceValue,
306
358
  Left,
307
359
  Maybe,
308
360
  Nothing,
@@ -312,5 +364,7 @@ function seqArrayEither(value) {
312
364
  seqArrayEither,
313
365
  seqArrayTask,
314
366
  seqEitherArray,
315
- seqEitherTask
367
+ seqEitherPromise,
368
+ seqEitherTask,
369
+ seqMaybePromise
316
370
  });
@@ -1,4 +1,5 @@
1
- export { Task, TaskDo, TaskDoType, TaskDoTypeBase, TaskDoTypeGet, TaskDoTypeIf, TaskDoTypeIfReturn, TaskDoTypeNoGet, TaskDoTypeReturn } from './data/task.cjs';
2
- export { Just, Maybe, Nothing } from './data/maybe.cjs';
3
1
  export { Either, Left, Right } from './data/either.cjs';
4
- export { seqArrayEither, seqArrayTask, seqEitherArray, seqEitherTask } from './func/seq.cjs';
2
+ export { Lazy, LazyDeferValue, LazyForceValue } from './data/lazy.cjs';
3
+ export { Just, Maybe, Nothing } from './data/maybe.cjs';
4
+ export { Task, TaskDo, TaskDoType, TaskDoTypeBase, TaskDoTypeGet, TaskDoTypeIf, TaskDoTypeIfReturn, TaskDoTypeNoGet, TaskDoTypeReturn } from './data/task.cjs';
5
+ export { seqArrayEither, seqArrayTask, seqEitherArray, seqEitherPromise, seqEitherTask, seqMaybePromise } from './func/seq.cjs';
@@ -0,0 +1,37 @@
1
+ // src/data/lazy.ts
2
+ var Lazy = class {
3
+ };
4
+ var LazyDeferValue = class _LazyDeferValue extends Lazy {
5
+ constructor(value) {
6
+ super();
7
+ this.value = value;
8
+ }
9
+ cache = null;
10
+ run() {
11
+ if (this.cache)
12
+ return this.cache;
13
+ this.cache = this.value();
14
+ return this.cache;
15
+ }
16
+ map(f) {
17
+ return new _LazyDeferValue(() => f(this.run()));
18
+ }
19
+ };
20
+ var LazyForceValue = class _LazyForceValue extends Lazy {
21
+ constructor(value) {
22
+ super();
23
+ this.value = value;
24
+ }
25
+ run() {
26
+ return this.value;
27
+ }
28
+ map(f) {
29
+ return new _LazyForceValue(f(this.run()));
30
+ }
31
+ };
32
+
33
+ export {
34
+ Lazy,
35
+ LazyDeferValue,
36
+ LazyForceValue
37
+ };
@@ -1,3 +1,7 @@
1
+ import {
2
+ Just,
3
+ Nothing
4
+ } from "./chunk-CQG32QQC.js";
1
5
  import {
2
6
  Task
3
7
  } from "./chunk-OYLE35IQ.js";
@@ -31,10 +35,24 @@ function seqArrayEither(value) {
31
35
  const data = value.map((a) => a.assertRight().getRight());
32
36
  return new Right(data);
33
37
  }
38
+ function seqMaybePromise(a) {
39
+ return a.match(
40
+ async (a2) => new Just(await a2),
41
+ async () => new Nothing()
42
+ );
43
+ }
44
+ function seqEitherPromise(a) {
45
+ return a.match(
46
+ async (a2) => new Left(a2),
47
+ async (a2) => new Right(await a2)
48
+ );
49
+ }
34
50
 
35
51
  export {
36
52
  seqArrayTask,
37
53
  seqEitherTask,
38
54
  seqEitherArray,
39
- seqArrayEither
55
+ seqArrayEither,
56
+ seqMaybePromise,
57
+ seqEitherPromise
40
58
  };
@@ -0,0 +1,19 @@
1
+ declare abstract class Lazy<A> {
2
+ abstract run(): A;
3
+ abstract map<B>(f: (a: A) => B): Lazy<B>;
4
+ }
5
+ declare class LazyDeferValue<A> extends Lazy<A> {
6
+ private value;
7
+ private cache;
8
+ constructor(value: () => A);
9
+ run(): A;
10
+ map<B>(f: (a: A) => B): Lazy<B>;
11
+ }
12
+ declare class LazyForceValue<A> extends Lazy<A> {
13
+ private value;
14
+ constructor(value: A);
15
+ run(): A;
16
+ map<B>(f: (a: A) => B): Lazy<B>;
17
+ }
18
+
19
+ export { Lazy, LazyDeferValue, LazyForceValue };
@@ -0,0 +1,10 @@
1
+ import {
2
+ Lazy,
3
+ LazyDeferValue,
4
+ LazyForceValue
5
+ } from "../chunk-NEBLA4MD.js";
6
+ export {
7
+ Lazy,
8
+ LazyDeferValue,
9
+ LazyForceValue
10
+ };
@@ -1,9 +1,12 @@
1
1
  import { Either } from '../data/either.js';
2
+ import { Maybe } from '../data/maybe.js';
2
3
  import { Task } from '../data/task.js';
3
4
 
4
5
  declare function seqArrayTask<A>(a: Array<Task<A>>): Task<Array<A>>;
5
6
  declare function seqEitherTask<L, R>(value: Either<L, Task<R>>): Task<Either<L, R>>;
6
7
  declare function seqEitherArray<A, B>(value: Either<A, Array<B>>): Array<Either<A, B>>;
7
8
  declare function seqArrayEither<A, B>(value: Array<Either<A, B>>): Either<A, Array<B>>;
9
+ declare function seqMaybePromise<A>(a: Maybe<Promise<A>>): Promise<Maybe<A>>;
10
+ declare function seqEitherPromise<L, R>(a: Either<L, Promise<R>>): Promise<Either<L, R>>;
8
11
 
9
- export { seqArrayEither, seqArrayTask, seqEitherArray, seqEitherTask };
12
+ export { seqArrayEither, seqArrayTask, seqEitherArray, seqEitherPromise, seqEitherTask, seqMaybePromise };
@@ -2,13 +2,18 @@ import {
2
2
  seqArrayEither,
3
3
  seqArrayTask,
4
4
  seqEitherArray,
5
- seqEitherTask
6
- } from "../chunk-IHXXIFRN.js";
5
+ seqEitherPromise,
6
+ seqEitherTask,
7
+ seqMaybePromise
8
+ } from "../chunk-UQKW2A3C.js";
9
+ import "../chunk-CQG32QQC.js";
7
10
  import "../chunk-OYLE35IQ.js";
8
11
  import "../chunk-VTI5CRVQ.js";
9
12
  export {
10
13
  seqArrayEither,
11
14
  seqArrayTask,
12
15
  seqEitherArray,
13
- seqEitherTask
16
+ seqEitherPromise,
17
+ seqEitherTask,
18
+ seqMaybePromise
14
19
  };
@@ -1,4 +1,5 @@
1
- export { Task, TaskDo, TaskDoType, TaskDoTypeBase, TaskDoTypeGet, TaskDoTypeIf, TaskDoTypeIfReturn, TaskDoTypeNoGet, TaskDoTypeReturn } from './data/task.js';
2
- export { Just, Maybe, Nothing } from './data/maybe.js';
3
1
  export { Either, Left, Right } from './data/either.js';
4
- export { seqArrayEither, seqArrayTask, seqEitherArray, seqEitherTask } from './func/seq.js';
2
+ export { Lazy, LazyDeferValue, LazyForceValue } from './data/lazy.js';
3
+ export { Just, Maybe, Nothing } from './data/maybe.js';
4
+ export { Task, TaskDo, TaskDoType, TaskDoTypeBase, TaskDoTypeGet, TaskDoTypeIf, TaskDoTypeIfReturn, TaskDoTypeNoGet, TaskDoTypeReturn } from './data/task.js';
5
+ export { seqArrayEither, seqArrayTask, seqEitherArray, seqEitherPromise, seqEitherTask, seqMaybePromise } from './func/seq.js';
package/dist/esm/index.js CHANGED
@@ -1,14 +1,21 @@
1
1
  import {
2
- Just,
3
- Maybe,
4
- Nothing
5
- } from "./chunk-CQG32QQC.js";
2
+ Lazy,
3
+ LazyDeferValue,
4
+ LazyForceValue
5
+ } from "./chunk-NEBLA4MD.js";
6
6
  import {
7
7
  seqArrayEither,
8
8
  seqArrayTask,
9
9
  seqEitherArray,
10
- seqEitherTask
11
- } from "./chunk-IHXXIFRN.js";
10
+ seqEitherPromise,
11
+ seqEitherTask,
12
+ seqMaybePromise
13
+ } from "./chunk-UQKW2A3C.js";
14
+ import {
15
+ Just,
16
+ Maybe,
17
+ Nothing
18
+ } from "./chunk-CQG32QQC.js";
12
19
  import {
13
20
  Task,
14
21
  TaskDo
@@ -21,6 +28,9 @@ import {
21
28
  export {
22
29
  Either,
23
30
  Just,
31
+ Lazy,
32
+ LazyDeferValue,
33
+ LazyForceValue,
24
34
  Left,
25
35
  Maybe,
26
36
  Nothing,
@@ -30,5 +40,7 @@ export {
30
40
  seqArrayEither,
31
41
  seqArrayTask,
32
42
  seqEitherArray,
33
- seqEitherTask
43
+ seqEitherPromise,
44
+ seqEitherTask,
45
+ seqMaybePromise
34
46
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lsby/ts-fp-data",
3
- "version": "0.1.0",
3
+ "version": "0.1.4",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  "require": "./dist/cjs/index.cjs",