@lsby/ts-fp-data 0.0.6 → 0.0.7

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.
@@ -20,7 +20,8 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
20
20
  // src/data/task.ts
21
21
  var task_exports = {};
22
22
  __export(task_exports, {
23
- Task: () => Task
23
+ Task: () => Task,
24
+ TaskDo: () => TaskDo
24
25
  });
25
26
  module.exports = __toCommonJS(task_exports);
26
27
 
@@ -104,6 +105,24 @@ var Right = class _Right extends Either {
104
105
  };
105
106
 
106
107
  // src/data/task.ts
108
+ var TaskDo = class _TaskDo {
109
+ constructor(accTask) {
110
+ this.accTask = accTask;
111
+ }
112
+ bind(name, task) {
113
+ return new _TaskDo(
114
+ this.accTask.bind((a) => task(a.env).bind((v) => Task.pure({ env: { ...a.env, [name]: v }, lastValue: v })))
115
+ );
116
+ }
117
+ exec(task) {
118
+ return new _TaskDo(this.accTask.bind((a) => task(a.env).bind((v) => Task.pure({ env: a.env, lastValue: v }))));
119
+ }
120
+ getTask() {
121
+ return new Task(async () => {
122
+ return (await this.accTask.run()).lastValue;
123
+ });
124
+ }
125
+ };
107
126
  var Task = class _Task {
108
127
  constructor(f) {
109
128
  this.f = f;
@@ -111,6 +130,9 @@ var Task = class _Task {
111
130
  static pure(a) {
112
131
  return new _Task(async () => a);
113
132
  }
133
+ static do() {
134
+ return new TaskDo(new _Task(async () => ({ env: {}, lastValue: void 0 })));
135
+ }
114
136
  map(f) {
115
137
  return new _Task(async () => f(await this.f()));
116
138
  }
@@ -132,5 +154,6 @@ var Task = class _Task {
132
154
  };
133
155
  // Annotate the CommonJS export names for ESM import in node:
134
156
  0 && (module.exports = {
135
- Task
157
+ Task,
158
+ TaskDo
136
159
  });
@@ -1,8 +1,24 @@
1
1
  import { Either } from './either.cjs';
2
2
 
3
+ interface TaskDoType<Env extends Record<string, any>, A> {
4
+ bind<K extends string, A>(name: K, task: (env: Env) => Task<A>): TaskDoType<Env & Record<K, A>, A>;
5
+ exec<A>(task: (env: Env) => Task<A>): TaskDoType<Env, A>;
6
+ getTask(): Task<A>;
7
+ }
8
+ declare class TaskDo<Env extends Record<string, any>, A> implements TaskDoType<Env, A> {
9
+ private accTask;
10
+ constructor(accTask: Task<{
11
+ env: Env;
12
+ lastValue: A;
13
+ }>);
14
+ bind<K extends string, A>(name: K, task: (env: Env) => Task<A>): TaskDoType<Env & Record<K, A>, A>;
15
+ exec<A>(task: (env: Env) => Task<A>): TaskDoType<Env, A>;
16
+ getTask(): Task<A>;
17
+ }
3
18
  declare class Task<A> {
4
19
  private f;
5
20
  static pure<A>(a: A): Task<A>;
21
+ static do(): TaskDo<Record<string, any>, unknown>;
6
22
  constructor(f: () => Promise<A>);
7
23
  map<B>(f: (a: A) => B): Task<B>;
8
24
  bind<B>(f: (a: A) => Task<B>): Task<B>;
@@ -10,4 +26,4 @@ declare class Task<A> {
10
26
  tryRun(): Promise<Either<Error, A>>;
11
27
  }
12
28
 
13
- export { Task };
29
+ export { Task, TaskDo, type TaskDoType };
@@ -107,6 +107,24 @@ var Right = class _Right extends Either {
107
107
  };
108
108
 
109
109
  // src/data/task.ts
110
+ var TaskDo = class _TaskDo {
111
+ constructor(accTask) {
112
+ this.accTask = accTask;
113
+ }
114
+ bind(name, task) {
115
+ return new _TaskDo(
116
+ this.accTask.bind((a) => task(a.env).bind((v) => Task.pure({ env: { ...a.env, [name]: v }, lastValue: v })))
117
+ );
118
+ }
119
+ exec(task) {
120
+ return new _TaskDo(this.accTask.bind((a) => task(a.env).bind((v) => Task.pure({ env: a.env, lastValue: v }))));
121
+ }
122
+ getTask() {
123
+ return new Task(async () => {
124
+ return (await this.accTask.run()).lastValue;
125
+ });
126
+ }
127
+ };
110
128
  var Task = class _Task {
111
129
  constructor(f) {
112
130
  this.f = f;
@@ -114,6 +132,9 @@ var Task = class _Task {
114
132
  static pure(a) {
115
133
  return new _Task(async () => a);
116
134
  }
135
+ static do() {
136
+ return new TaskDo(new _Task(async () => ({ env: {}, lastValue: void 0 })));
137
+ }
117
138
  map(f) {
118
139
  return new _Task(async () => f(await this.f()));
119
140
  }
@@ -27,6 +27,7 @@ __export(src_exports, {
27
27
  Nothing: () => Nothing,
28
28
  Right: () => Right,
29
29
  Task: () => Task,
30
+ TaskDo: () => TaskDo,
30
31
  seqArrayEither: () => seqArrayEither,
31
32
  seqArrayTask: () => seqArrayTask,
32
33
  seqEitherArray: () => seqEitherArray,
@@ -114,6 +115,24 @@ var Right = class _Right extends Either {
114
115
  };
115
116
 
116
117
  // src/data/task.ts
118
+ var TaskDo = class _TaskDo {
119
+ constructor(accTask) {
120
+ this.accTask = accTask;
121
+ }
122
+ bind(name, task) {
123
+ return new _TaskDo(
124
+ this.accTask.bind((a) => task(a.env).bind((v) => Task.pure({ env: { ...a.env, [name]: v }, lastValue: v })))
125
+ );
126
+ }
127
+ exec(task) {
128
+ return new _TaskDo(this.accTask.bind((a) => task(a.env).bind((v) => Task.pure({ env: a.env, lastValue: v }))));
129
+ }
130
+ getTask() {
131
+ return new Task(async () => {
132
+ return (await this.accTask.run()).lastValue;
133
+ });
134
+ }
135
+ };
117
136
  var Task = class _Task {
118
137
  constructor(f) {
119
138
  this.f = f;
@@ -121,6 +140,9 @@ var Task = class _Task {
121
140
  static pure(a) {
122
141
  return new _Task(async () => a);
123
142
  }
143
+ static do() {
144
+ return new TaskDo(new _Task(async () => ({ env: {}, lastValue: void 0 })));
145
+ }
124
146
  map(f) {
125
147
  return new _Task(async () => f(await this.f()));
126
148
  }
@@ -229,6 +251,7 @@ function seqArrayEither(value) {
229
251
  Nothing,
230
252
  Right,
231
253
  Task,
254
+ TaskDo,
232
255
  seqArrayEither,
233
256
  seqArrayTask,
234
257
  seqEitherArray,
@@ -1,4 +1,4 @@
1
- export { Task } from './data/task.cjs';
1
+ export { Task, TaskDo, TaskDoType } from './data/task.cjs';
2
2
  export { Just, Maybe, Nothing } from './data/maybe.cjs';
3
3
  export { Either, Left, Right } from './data/either.cjs';
4
4
  export { seqArrayEither, seqArrayTask, seqEitherArray, seqEitherTask } from './func/seq.cjs';
@@ -0,0 +1,58 @@
1
+ import {
2
+ Left,
3
+ Right
4
+ } from "./chunk-VTI5CRVQ.js";
5
+
6
+ // src/data/task.ts
7
+ var TaskDo = class _TaskDo {
8
+ constructor(accTask) {
9
+ this.accTask = accTask;
10
+ }
11
+ bind(name, task) {
12
+ return new _TaskDo(
13
+ this.accTask.bind((a) => task(a.env).bind((v) => Task.pure({ env: { ...a.env, [name]: v }, lastValue: v })))
14
+ );
15
+ }
16
+ exec(task) {
17
+ return new _TaskDo(this.accTask.bind((a) => task(a.env).bind((v) => Task.pure({ env: a.env, lastValue: v }))));
18
+ }
19
+ getTask() {
20
+ return new Task(async () => {
21
+ return (await this.accTask.run()).lastValue;
22
+ });
23
+ }
24
+ };
25
+ var Task = class _Task {
26
+ constructor(f) {
27
+ this.f = f;
28
+ }
29
+ static pure(a) {
30
+ return new _Task(async () => a);
31
+ }
32
+ static do() {
33
+ return new TaskDo(new _Task(async () => ({ env: {}, lastValue: void 0 })));
34
+ }
35
+ map(f) {
36
+ return new _Task(async () => f(await this.f()));
37
+ }
38
+ bind(f) {
39
+ return new _Task(async () => f(await this.f()).run());
40
+ }
41
+ run() {
42
+ return this.f();
43
+ }
44
+ async tryRun() {
45
+ try {
46
+ return new Right(await this.run());
47
+ } catch (e) {
48
+ if (e instanceof Error)
49
+ return new Left(e);
50
+ return new Left(new Error(String(e)));
51
+ }
52
+ }
53
+ };
54
+
55
+ export {
56
+ TaskDo,
57
+ Task
58
+ };
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Task
3
- } from "./chunk-2AQUF5MK.js";
3
+ } from "./chunk-F7Q4HROJ.js";
4
4
  import {
5
5
  Left,
6
6
  Right
@@ -1,8 +1,24 @@
1
1
  import { Either } from './either.js';
2
2
 
3
+ interface TaskDoType<Env extends Record<string, any>, A> {
4
+ bind<K extends string, A>(name: K, task: (env: Env) => Task<A>): TaskDoType<Env & Record<K, A>, A>;
5
+ exec<A>(task: (env: Env) => Task<A>): TaskDoType<Env, A>;
6
+ getTask(): Task<A>;
7
+ }
8
+ declare class TaskDo<Env extends Record<string, any>, A> implements TaskDoType<Env, A> {
9
+ private accTask;
10
+ constructor(accTask: Task<{
11
+ env: Env;
12
+ lastValue: A;
13
+ }>);
14
+ bind<K extends string, A>(name: K, task: (env: Env) => Task<A>): TaskDoType<Env & Record<K, A>, A>;
15
+ exec<A>(task: (env: Env) => Task<A>): TaskDoType<Env, A>;
16
+ getTask(): Task<A>;
17
+ }
3
18
  declare class Task<A> {
4
19
  private f;
5
20
  static pure<A>(a: A): Task<A>;
21
+ static do(): TaskDo<Record<string, any>, unknown>;
6
22
  constructor(f: () => Promise<A>);
7
23
  map<B>(f: (a: A) => B): Task<B>;
8
24
  bind<B>(f: (a: A) => Task<B>): Task<B>;
@@ -10,4 +26,4 @@ declare class Task<A> {
10
26
  tryRun(): Promise<Either<Error, A>>;
11
27
  }
12
28
 
13
- export { Task };
29
+ export { Task, TaskDo, type TaskDoType };
@@ -1,7 +1,9 @@
1
1
  import {
2
- Task
3
- } from "../chunk-2AQUF5MK.js";
2
+ Task,
3
+ TaskDo
4
+ } from "../chunk-F7Q4HROJ.js";
4
5
  import "../chunk-VTI5CRVQ.js";
5
6
  export {
6
- Task
7
+ Task,
8
+ TaskDo
7
9
  };
@@ -3,8 +3,8 @@ import {
3
3
  seqArrayTask,
4
4
  seqEitherArray,
5
5
  seqEitherTask
6
- } from "../chunk-M4F5SG35.js";
7
- import "../chunk-2AQUF5MK.js";
6
+ } from "../chunk-LVW727CO.js";
7
+ import "../chunk-F7Q4HROJ.js";
8
8
  import "../chunk-VTI5CRVQ.js";
9
9
  export {
10
10
  seqArrayEither,
@@ -1,4 +1,4 @@
1
- export { Task } from './data/task.js';
1
+ export { Task, TaskDo, TaskDoType } from './data/task.js';
2
2
  export { Just, Maybe, Nothing } from './data/maybe.js';
3
3
  export { Either, Left, Right } from './data/either.js';
4
4
  export { seqArrayEither, seqArrayTask, seqEitherArray, seqEitherTask } from './func/seq.js';
package/dist/esm/index.js CHANGED
@@ -8,10 +8,11 @@ import {
8
8
  seqArrayTask,
9
9
  seqEitherArray,
10
10
  seqEitherTask
11
- } from "./chunk-M4F5SG35.js";
11
+ } from "./chunk-LVW727CO.js";
12
12
  import {
13
- Task
14
- } from "./chunk-2AQUF5MK.js";
13
+ Task,
14
+ TaskDo
15
+ } from "./chunk-F7Q4HROJ.js";
15
16
  import {
16
17
  Either,
17
18
  Left,
@@ -25,6 +26,7 @@ export {
25
26
  Nothing,
26
27
  Right,
27
28
  Task,
29
+ TaskDo,
28
30
  seqArrayEither,
29
31
  seqArrayTask,
30
32
  seqEitherArray,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lsby/ts-fp-data",
3
- "version": "0.0.6",
3
+ "version": "0.0.7",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  "require": "./dist/cjs/index.cjs",
@@ -36,6 +36,7 @@
36
36
  "other:pub": "npm run other:typecheck && npm run build:all && bumpp && pnpm -r publish --access public",
37
37
  "other:typecheck": "tsc --noEmit",
38
38
  "other:typecheck:watch": "tsc --noEmit -w",
39
- "run:start": "tsx src/index.ts"
39
+ "run:start": "tsx src/index.ts",
40
+ "run:test": "tsx test/index.ts"
40
41
  }
41
42
  }
@@ -1,36 +0,0 @@
1
- import {
2
- Left,
3
- Right
4
- } from "./chunk-VTI5CRVQ.js";
5
-
6
- // src/data/task.ts
7
- var Task = class _Task {
8
- constructor(f) {
9
- this.f = f;
10
- }
11
- static pure(a) {
12
- return new _Task(async () => a);
13
- }
14
- map(f) {
15
- return new _Task(async () => f(await this.f()));
16
- }
17
- bind(f) {
18
- return new _Task(async () => f(await this.f()).run());
19
- }
20
- run() {
21
- return this.f();
22
- }
23
- async tryRun() {
24
- try {
25
- return new Right(await this.run());
26
- } catch (e) {
27
- if (e instanceof Error)
28
- return new Left(e);
29
- return new Left(new Error(String(e)));
30
- }
31
- }
32
- };
33
-
34
- export {
35
- Task
36
- };