@lsby/ts-fp-data 0.0.8 → 0.0.9-beta.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.
- package/dist/cjs/data/task.cjs +28 -7
- package/dist/cjs/data/task.d.cts +11 -8
- package/dist/cjs/func/seq.cjs +28 -7
- package/dist/cjs/index.cjs +28 -7
- package/dist/esm/{chunk-3DBX3JLQ.js → chunk-KGTFYSGN.js} +1 -1
- package/dist/esm/chunk-XMHK7KBY.js +87 -0
- package/dist/esm/data/task.d.ts +11 -8
- package/dist/esm/data/task.js +1 -1
- package/dist/esm/func/seq.js +2 -2
- package/dist/esm/index.js +2 -2
- package/package.json +1 -1
- package/dist/esm/chunk-XP6AXTYL.js +0 -66
package/dist/cjs/data/task.cjs
CHANGED
|
@@ -109,21 +109,42 @@ var TaskDo = class _TaskDo {
|
|
|
109
109
|
constructor(accTask) {
|
|
110
110
|
this.accTask = accTask;
|
|
111
111
|
}
|
|
112
|
+
let(name, task) {
|
|
113
|
+
return new _TaskDo(
|
|
114
|
+
this.accTask.bind(
|
|
115
|
+
(a) => a.lock ? Task.pure(a) : Task.pure(task(a.env)).bind(
|
|
116
|
+
(v) => Task.pure({ env: { ...a.env, [name]: v }, lastValue: a.lastValue, lock: false })
|
|
117
|
+
)
|
|
118
|
+
)
|
|
119
|
+
);
|
|
120
|
+
}
|
|
112
121
|
bind(name, task) {
|
|
113
122
|
return new _TaskDo(
|
|
114
|
-
this.accTask.bind(
|
|
123
|
+
this.accTask.bind(
|
|
124
|
+
(a) => a.lock ? Task.pure(a) : task(a.env).bind((v) => Task.pure({ env: { ...a.env, [name]: v }, lastValue: a.lastValue, lock: false }))
|
|
125
|
+
)
|
|
115
126
|
);
|
|
116
127
|
}
|
|
117
128
|
exec(task) {
|
|
118
|
-
return new _TaskDo(this.accTask.bind((a) => task(a.env).bind((v) => Task.pure({ env: a.env, lastValue: v }))));
|
|
119
|
-
}
|
|
120
|
-
effect(task) {
|
|
121
129
|
return new _TaskDo(
|
|
122
|
-
this.accTask.bind((a) => Task.pure(task(a.env)).bind((
|
|
130
|
+
this.accTask.bind((a) => a.lock ? Task.pure(a) : Task.pure(task(a.env)).bind(() => Task.pure(a)))
|
|
123
131
|
);
|
|
124
132
|
}
|
|
125
133
|
pure(value) {
|
|
126
|
-
return new _TaskDo(
|
|
134
|
+
return new _TaskDo(
|
|
135
|
+
this.accTask.bind(
|
|
136
|
+
(a) => a.lock ? Task.pure(a) : Task.pure(value).bind((v) => Task.pure({ env: a.env, lastValue: v, lock: false }))
|
|
137
|
+
)
|
|
138
|
+
);
|
|
139
|
+
}
|
|
140
|
+
if(cond, value) {
|
|
141
|
+
return new _TaskDo(
|
|
142
|
+
this.accTask.bind(
|
|
143
|
+
(a) => a.lock ? Task.pure(a) : Task.pure(cond(a.env)).bind(
|
|
144
|
+
(c) => c ? value(a.env).bind((x) => Task.pure({ env: a.env, lastValue: x, lock: true })) : Task.pure({ env: a.env, lastValue: a.lastValue, lock: false })
|
|
145
|
+
)
|
|
146
|
+
)
|
|
147
|
+
);
|
|
127
148
|
}
|
|
128
149
|
getTask() {
|
|
129
150
|
return new Task(async () => {
|
|
@@ -139,7 +160,7 @@ var Task = class _Task {
|
|
|
139
160
|
return new _Task(async () => a);
|
|
140
161
|
}
|
|
141
162
|
static do() {
|
|
142
|
-
return new TaskDo(new _Task(async () => ({ env: {}, lastValue: void 0 })));
|
|
163
|
+
return new TaskDo(new _Task(async () => ({ env: {}, lastValue: void 0, lock: false })));
|
|
143
164
|
}
|
|
144
165
|
map(f) {
|
|
145
166
|
return new _Task(async () => f(await this.f()));
|
package/dist/cjs/data/task.d.cts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { Either } from './either.cjs';
|
|
2
2
|
|
|
3
3
|
interface TaskDoType<Env extends Record<string, any>, A> {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
pure
|
|
4
|
+
let<K extends string, X>(name: K, task: (env: Env) => X): TaskDoType<Env & Record<K, X>, A>;
|
|
5
|
+
bind<K extends string, X>(name: K, task: (env: Env) => Task<X>): TaskDoType<Env & Record<K, X>, A>;
|
|
6
|
+
exec(task: (env: Env) => void): TaskDoType<Env, A>;
|
|
7
|
+
pure(value: A): TaskDoType<Env, A>;
|
|
8
|
+
if(cond: (env: Env) => boolean, value: (env: Env) => Task<A>): TaskDoType<Env, A>;
|
|
8
9
|
getTask(): Task<A>;
|
|
9
10
|
}
|
|
10
11
|
declare class TaskDo<Env extends Record<string, any>, A> implements TaskDoType<Env, A> {
|
|
@@ -12,11 +13,13 @@ declare class TaskDo<Env extends Record<string, any>, A> implements TaskDoType<E
|
|
|
12
13
|
constructor(accTask: Task<{
|
|
13
14
|
env: Env;
|
|
14
15
|
lastValue: A;
|
|
16
|
+
lock: boolean;
|
|
15
17
|
}>);
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
pure
|
|
18
|
+
let<K extends string, X>(name: K, task: (env: Env) => X): TaskDoType<Env & Record<K, X>, A>;
|
|
19
|
+
bind<K extends string, X>(name: K, task: (env: Env) => Task<X>): TaskDoType<Env & Record<K, X>, A>;
|
|
20
|
+
exec(task: (env: Env) => void): TaskDoType<Env, A>;
|
|
21
|
+
pure(value: A): TaskDoType<Env, A>;
|
|
22
|
+
if(cond: (env: Env) => boolean, value: (env: Env) => Task<A>): TaskDoType<Env, A>;
|
|
20
23
|
getTask(): Task<A>;
|
|
21
24
|
}
|
|
22
25
|
declare class Task<A> {
|
package/dist/cjs/func/seq.cjs
CHANGED
|
@@ -111,21 +111,42 @@ var TaskDo = class _TaskDo {
|
|
|
111
111
|
constructor(accTask) {
|
|
112
112
|
this.accTask = accTask;
|
|
113
113
|
}
|
|
114
|
+
let(name, task) {
|
|
115
|
+
return new _TaskDo(
|
|
116
|
+
this.accTask.bind(
|
|
117
|
+
(a) => a.lock ? Task.pure(a) : Task.pure(task(a.env)).bind(
|
|
118
|
+
(v) => Task.pure({ env: { ...a.env, [name]: v }, lastValue: a.lastValue, lock: false })
|
|
119
|
+
)
|
|
120
|
+
)
|
|
121
|
+
);
|
|
122
|
+
}
|
|
114
123
|
bind(name, task) {
|
|
115
124
|
return new _TaskDo(
|
|
116
|
-
this.accTask.bind(
|
|
125
|
+
this.accTask.bind(
|
|
126
|
+
(a) => a.lock ? Task.pure(a) : task(a.env).bind((v) => Task.pure({ env: { ...a.env, [name]: v }, lastValue: a.lastValue, lock: false }))
|
|
127
|
+
)
|
|
117
128
|
);
|
|
118
129
|
}
|
|
119
130
|
exec(task) {
|
|
120
|
-
return new _TaskDo(this.accTask.bind((a) => task(a.env).bind((v) => Task.pure({ env: a.env, lastValue: v }))));
|
|
121
|
-
}
|
|
122
|
-
effect(task) {
|
|
123
131
|
return new _TaskDo(
|
|
124
|
-
this.accTask.bind((a) => Task.pure(task(a.env)).bind((
|
|
132
|
+
this.accTask.bind((a) => a.lock ? Task.pure(a) : Task.pure(task(a.env)).bind(() => Task.pure(a)))
|
|
125
133
|
);
|
|
126
134
|
}
|
|
127
135
|
pure(value) {
|
|
128
|
-
return new _TaskDo(
|
|
136
|
+
return new _TaskDo(
|
|
137
|
+
this.accTask.bind(
|
|
138
|
+
(a) => a.lock ? Task.pure(a) : Task.pure(value).bind((v) => Task.pure({ env: a.env, lastValue: v, lock: false }))
|
|
139
|
+
)
|
|
140
|
+
);
|
|
141
|
+
}
|
|
142
|
+
if(cond, value) {
|
|
143
|
+
return new _TaskDo(
|
|
144
|
+
this.accTask.bind(
|
|
145
|
+
(a) => a.lock ? Task.pure(a) : Task.pure(cond(a.env)).bind(
|
|
146
|
+
(c) => c ? value(a.env).bind((x) => Task.pure({ env: a.env, lastValue: x, lock: true })) : Task.pure({ env: a.env, lastValue: a.lastValue, lock: false })
|
|
147
|
+
)
|
|
148
|
+
)
|
|
149
|
+
);
|
|
129
150
|
}
|
|
130
151
|
getTask() {
|
|
131
152
|
return new Task(async () => {
|
|
@@ -141,7 +162,7 @@ var Task = class _Task {
|
|
|
141
162
|
return new _Task(async () => a);
|
|
142
163
|
}
|
|
143
164
|
static do() {
|
|
144
|
-
return new TaskDo(new _Task(async () => ({ env: {}, lastValue: void 0 })));
|
|
165
|
+
return new TaskDo(new _Task(async () => ({ env: {}, lastValue: void 0, lock: false })));
|
|
145
166
|
}
|
|
146
167
|
map(f) {
|
|
147
168
|
return new _Task(async () => f(await this.f()));
|
package/dist/cjs/index.cjs
CHANGED
|
@@ -119,21 +119,42 @@ var TaskDo = class _TaskDo {
|
|
|
119
119
|
constructor(accTask) {
|
|
120
120
|
this.accTask = accTask;
|
|
121
121
|
}
|
|
122
|
+
let(name, task) {
|
|
123
|
+
return new _TaskDo(
|
|
124
|
+
this.accTask.bind(
|
|
125
|
+
(a) => a.lock ? Task.pure(a) : Task.pure(task(a.env)).bind(
|
|
126
|
+
(v) => Task.pure({ env: { ...a.env, [name]: v }, lastValue: a.lastValue, lock: false })
|
|
127
|
+
)
|
|
128
|
+
)
|
|
129
|
+
);
|
|
130
|
+
}
|
|
122
131
|
bind(name, task) {
|
|
123
132
|
return new _TaskDo(
|
|
124
|
-
this.accTask.bind(
|
|
133
|
+
this.accTask.bind(
|
|
134
|
+
(a) => a.lock ? Task.pure(a) : task(a.env).bind((v) => Task.pure({ env: { ...a.env, [name]: v }, lastValue: a.lastValue, lock: false }))
|
|
135
|
+
)
|
|
125
136
|
);
|
|
126
137
|
}
|
|
127
138
|
exec(task) {
|
|
128
|
-
return new _TaskDo(this.accTask.bind((a) => task(a.env).bind((v) => Task.pure({ env: a.env, lastValue: v }))));
|
|
129
|
-
}
|
|
130
|
-
effect(task) {
|
|
131
139
|
return new _TaskDo(
|
|
132
|
-
this.accTask.bind((a) => Task.pure(task(a.env)).bind((
|
|
140
|
+
this.accTask.bind((a) => a.lock ? Task.pure(a) : Task.pure(task(a.env)).bind(() => Task.pure(a)))
|
|
133
141
|
);
|
|
134
142
|
}
|
|
135
143
|
pure(value) {
|
|
136
|
-
return new _TaskDo(
|
|
144
|
+
return new _TaskDo(
|
|
145
|
+
this.accTask.bind(
|
|
146
|
+
(a) => a.lock ? Task.pure(a) : Task.pure(value).bind((v) => Task.pure({ env: a.env, lastValue: v, lock: false }))
|
|
147
|
+
)
|
|
148
|
+
);
|
|
149
|
+
}
|
|
150
|
+
if(cond, value) {
|
|
151
|
+
return new _TaskDo(
|
|
152
|
+
this.accTask.bind(
|
|
153
|
+
(a) => a.lock ? Task.pure(a) : Task.pure(cond(a.env)).bind(
|
|
154
|
+
(c) => c ? value(a.env).bind((x) => Task.pure({ env: a.env, lastValue: x, lock: true })) : Task.pure({ env: a.env, lastValue: a.lastValue, lock: false })
|
|
155
|
+
)
|
|
156
|
+
)
|
|
157
|
+
);
|
|
137
158
|
}
|
|
138
159
|
getTask() {
|
|
139
160
|
return new Task(async () => {
|
|
@@ -149,7 +170,7 @@ var Task = class _Task {
|
|
|
149
170
|
return new _Task(async () => a);
|
|
150
171
|
}
|
|
151
172
|
static do() {
|
|
152
|
-
return new TaskDo(new _Task(async () => ({ env: {}, lastValue: void 0 })));
|
|
173
|
+
return new TaskDo(new _Task(async () => ({ env: {}, lastValue: void 0, lock: false })));
|
|
153
174
|
}
|
|
154
175
|
map(f) {
|
|
155
176
|
return new _Task(async () => f(await this.f()));
|
|
@@ -0,0 +1,87 @@
|
|
|
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
|
+
let(name, task) {
|
|
12
|
+
return new _TaskDo(
|
|
13
|
+
this.accTask.bind(
|
|
14
|
+
(a) => a.lock ? Task.pure(a) : Task.pure(task(a.env)).bind(
|
|
15
|
+
(v) => Task.pure({ env: { ...a.env, [name]: v }, lastValue: a.lastValue, lock: false })
|
|
16
|
+
)
|
|
17
|
+
)
|
|
18
|
+
);
|
|
19
|
+
}
|
|
20
|
+
bind(name, task) {
|
|
21
|
+
return new _TaskDo(
|
|
22
|
+
this.accTask.bind(
|
|
23
|
+
(a) => a.lock ? Task.pure(a) : task(a.env).bind((v) => Task.pure({ env: { ...a.env, [name]: v }, lastValue: a.lastValue, lock: false }))
|
|
24
|
+
)
|
|
25
|
+
);
|
|
26
|
+
}
|
|
27
|
+
exec(task) {
|
|
28
|
+
return new _TaskDo(
|
|
29
|
+
this.accTask.bind((a) => a.lock ? Task.pure(a) : Task.pure(task(a.env)).bind(() => Task.pure(a)))
|
|
30
|
+
);
|
|
31
|
+
}
|
|
32
|
+
pure(value) {
|
|
33
|
+
return new _TaskDo(
|
|
34
|
+
this.accTask.bind(
|
|
35
|
+
(a) => a.lock ? Task.pure(a) : Task.pure(value).bind((v) => Task.pure({ env: a.env, lastValue: v, lock: false }))
|
|
36
|
+
)
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
if(cond, value) {
|
|
40
|
+
return new _TaskDo(
|
|
41
|
+
this.accTask.bind(
|
|
42
|
+
(a) => a.lock ? Task.pure(a) : Task.pure(cond(a.env)).bind(
|
|
43
|
+
(c) => c ? value(a.env).bind((x) => Task.pure({ env: a.env, lastValue: x, lock: true })) : Task.pure({ env: a.env, lastValue: a.lastValue, lock: false })
|
|
44
|
+
)
|
|
45
|
+
)
|
|
46
|
+
);
|
|
47
|
+
}
|
|
48
|
+
getTask() {
|
|
49
|
+
return new Task(async () => {
|
|
50
|
+
return (await this.accTask.run()).lastValue;
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
var Task = class _Task {
|
|
55
|
+
constructor(f) {
|
|
56
|
+
this.f = f;
|
|
57
|
+
}
|
|
58
|
+
static pure(a) {
|
|
59
|
+
return new _Task(async () => a);
|
|
60
|
+
}
|
|
61
|
+
static do() {
|
|
62
|
+
return new TaskDo(new _Task(async () => ({ env: {}, lastValue: void 0, lock: false })));
|
|
63
|
+
}
|
|
64
|
+
map(f) {
|
|
65
|
+
return new _Task(async () => f(await this.f()));
|
|
66
|
+
}
|
|
67
|
+
bind(f) {
|
|
68
|
+
return new _Task(async () => f(await this.f()).run());
|
|
69
|
+
}
|
|
70
|
+
run() {
|
|
71
|
+
return this.f();
|
|
72
|
+
}
|
|
73
|
+
async tryRun() {
|
|
74
|
+
try {
|
|
75
|
+
return new Right(await this.run());
|
|
76
|
+
} catch (e) {
|
|
77
|
+
if (e instanceof Error)
|
|
78
|
+
return new Left(e);
|
|
79
|
+
return new Left(new Error(String(e)));
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
export {
|
|
85
|
+
TaskDo,
|
|
86
|
+
Task
|
|
87
|
+
};
|
package/dist/esm/data/task.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { Either } from './either.js';
|
|
2
2
|
|
|
3
3
|
interface TaskDoType<Env extends Record<string, any>, A> {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
pure
|
|
4
|
+
let<K extends string, X>(name: K, task: (env: Env) => X): TaskDoType<Env & Record<K, X>, A>;
|
|
5
|
+
bind<K extends string, X>(name: K, task: (env: Env) => Task<X>): TaskDoType<Env & Record<K, X>, A>;
|
|
6
|
+
exec(task: (env: Env) => void): TaskDoType<Env, A>;
|
|
7
|
+
pure(value: A): TaskDoType<Env, A>;
|
|
8
|
+
if(cond: (env: Env) => boolean, value: (env: Env) => Task<A>): TaskDoType<Env, A>;
|
|
8
9
|
getTask(): Task<A>;
|
|
9
10
|
}
|
|
10
11
|
declare class TaskDo<Env extends Record<string, any>, A> implements TaskDoType<Env, A> {
|
|
@@ -12,11 +13,13 @@ declare class TaskDo<Env extends Record<string, any>, A> implements TaskDoType<E
|
|
|
12
13
|
constructor(accTask: Task<{
|
|
13
14
|
env: Env;
|
|
14
15
|
lastValue: A;
|
|
16
|
+
lock: boolean;
|
|
15
17
|
}>);
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
pure
|
|
18
|
+
let<K extends string, X>(name: K, task: (env: Env) => X): TaskDoType<Env & Record<K, X>, A>;
|
|
19
|
+
bind<K extends string, X>(name: K, task: (env: Env) => Task<X>): TaskDoType<Env & Record<K, X>, A>;
|
|
20
|
+
exec(task: (env: Env) => void): TaskDoType<Env, A>;
|
|
21
|
+
pure(value: A): TaskDoType<Env, A>;
|
|
22
|
+
if(cond: (env: Env) => boolean, value: (env: Env) => Task<A>): TaskDoType<Env, A>;
|
|
20
23
|
getTask(): Task<A>;
|
|
21
24
|
}
|
|
22
25
|
declare class Task<A> {
|
package/dist/esm/data/task.js
CHANGED
package/dist/esm/func/seq.js
CHANGED
package/dist/esm/index.js
CHANGED
|
@@ -8,11 +8,11 @@ import {
|
|
|
8
8
|
seqArrayTask,
|
|
9
9
|
seqEitherArray,
|
|
10
10
|
seqEitherTask
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-KGTFYSGN.js";
|
|
12
12
|
import {
|
|
13
13
|
Task,
|
|
14
14
|
TaskDo
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-XMHK7KBY.js";
|
|
16
16
|
import {
|
|
17
17
|
Either,
|
|
18
18
|
Left,
|
package/package.json
CHANGED
|
@@ -1,66 +0,0 @@
|
|
|
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
|
-
effect(task) {
|
|
20
|
-
return new _TaskDo(
|
|
21
|
-
this.accTask.bind((a) => Task.pure(task(a.env)).bind((v) => Task.pure({ env: a.env, lastValue: v })))
|
|
22
|
-
);
|
|
23
|
-
}
|
|
24
|
-
pure(value) {
|
|
25
|
-
return new _TaskDo(this.accTask.bind((a) => Task.pure(value).bind((v) => Task.pure({ env: a.env, lastValue: v }))));
|
|
26
|
-
}
|
|
27
|
-
getTask() {
|
|
28
|
-
return new Task(async () => {
|
|
29
|
-
return (await this.accTask.run()).lastValue;
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
};
|
|
33
|
-
var Task = class _Task {
|
|
34
|
-
constructor(f) {
|
|
35
|
-
this.f = f;
|
|
36
|
-
}
|
|
37
|
-
static pure(a) {
|
|
38
|
-
return new _Task(async () => a);
|
|
39
|
-
}
|
|
40
|
-
static do() {
|
|
41
|
-
return new TaskDo(new _Task(async () => ({ env: {}, lastValue: void 0 })));
|
|
42
|
-
}
|
|
43
|
-
map(f) {
|
|
44
|
-
return new _Task(async () => f(await this.f()));
|
|
45
|
-
}
|
|
46
|
-
bind(f) {
|
|
47
|
-
return new _Task(async () => f(await this.f()).run());
|
|
48
|
-
}
|
|
49
|
-
run() {
|
|
50
|
-
return this.f();
|
|
51
|
-
}
|
|
52
|
-
async tryRun() {
|
|
53
|
-
try {
|
|
54
|
-
return new Right(await this.run());
|
|
55
|
-
} catch (e) {
|
|
56
|
-
if (e instanceof Error)
|
|
57
|
-
return new Left(e);
|
|
58
|
-
return new Left(new Error(String(e)));
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
};
|
|
62
|
-
|
|
63
|
-
export {
|
|
64
|
-
TaskDo,
|
|
65
|
-
Task
|
|
66
|
-
};
|