@lsby/ts-fp-data 0.0.9-beta.2 → 0.0.9-beta.3
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 +35 -5
- package/dist/cjs/data/task.d.cts +30 -14
- package/dist/cjs/func/seq.cjs +35 -5
- package/dist/cjs/index.cjs +35 -5
- package/dist/cjs/index.d.cts +1 -1
- package/dist/esm/{chunk-YEO4J4FS.js → chunk-IHXXIFRN.js} +1 -1
- package/dist/esm/{chunk-ZUDRGXSS.js → chunk-OYLE35IQ.js} +35 -5
- package/dist/esm/data/task.d.ts +30 -14
- package/dist/esm/data/task.js +1 -1
- package/dist/esm/func/seq.js +2 -2
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.js +7 -7
- package/package.json +1 -1
package/dist/cjs/data/task.cjs
CHANGED
|
@@ -112,25 +112,52 @@ var TaskDo = class _TaskDo {
|
|
|
112
112
|
let(name, task) {
|
|
113
113
|
return new _TaskDo(
|
|
114
114
|
this.accTask.bind(
|
|
115
|
-
(a) => Task.pure(task(a.env)).bind((v) => Task.pure({ env: { ...a.env, [name]: v }, lastValue:
|
|
115
|
+
(a) => Task.pure(task(a.env)).bind((v) => Task.pure({ env: { ...a.env, [name]: v }, lastValue: a.lastValue }))
|
|
116
116
|
)
|
|
117
117
|
);
|
|
118
118
|
}
|
|
119
119
|
bind(name, task) {
|
|
120
120
|
return new _TaskDo(
|
|
121
|
-
this.accTask.bind(
|
|
121
|
+
this.accTask.bind(
|
|
122
|
+
(a) => task(a.env).bind((v) => Task.pure({ env: { ...a.env, [name]: v }, lastValue: a.lastValue }))
|
|
123
|
+
)
|
|
122
124
|
);
|
|
123
125
|
}
|
|
124
126
|
exec(task) {
|
|
125
|
-
return new _TaskDo(
|
|
127
|
+
return new _TaskDo(
|
|
128
|
+
this.accTask.bind((a) => task(a.env).bind(() => Task.pure({ env: a.env, lastValue: a.lastValue })))
|
|
129
|
+
);
|
|
126
130
|
}
|
|
127
131
|
effect(task) {
|
|
132
|
+
return new _TaskDo(
|
|
133
|
+
this.accTask.bind((a) => Task.pure(task(a.env)).bind(() => Task.pure({ env: a.env, lastValue: a.lastValue })))
|
|
134
|
+
);
|
|
135
|
+
}
|
|
136
|
+
pure(task) {
|
|
128
137
|
return new _TaskDo(
|
|
129
138
|
this.accTask.bind((a) => Task.pure(task(a.env)).bind((v) => Task.pure({ env: a.env, lastValue: v })))
|
|
130
139
|
);
|
|
131
140
|
}
|
|
132
|
-
|
|
133
|
-
return new _TaskDo(
|
|
141
|
+
if(cond, task) {
|
|
142
|
+
return new _TaskDo(
|
|
143
|
+
this.accTask.bind(
|
|
144
|
+
(a) => Task.pure(cond(a.env)).bind(
|
|
145
|
+
(c) => c ? Task.pure(task(a.env)).bind((x) => Task.pure({ env: a.env, lastValue: x, lock: true })) : Task.pure({
|
|
146
|
+
env: a.env,
|
|
147
|
+
/*从类型可以确保if没命中的情况pureIf来补充正确的候选值, 所以这里跳过ts检查*/
|
|
148
|
+
lastValue: a.lastValue,
|
|
149
|
+
lock: false
|
|
150
|
+
})
|
|
151
|
+
)
|
|
152
|
+
)
|
|
153
|
+
);
|
|
154
|
+
}
|
|
155
|
+
pureR(task) {
|
|
156
|
+
return new _TaskDo(
|
|
157
|
+
this.accTask.bind(
|
|
158
|
+
(a) => a.lock ? Task.pure(a) : Task.pure(task(a.env)).bind((v) => Task.pure({ env: a.env, lastValue: v }))
|
|
159
|
+
)
|
|
160
|
+
);
|
|
134
161
|
}
|
|
135
162
|
getTask() {
|
|
136
163
|
return new Task(async () => {
|
|
@@ -157,6 +184,9 @@ var Task = class _Task {
|
|
|
157
184
|
run() {
|
|
158
185
|
return this.f();
|
|
159
186
|
}
|
|
187
|
+
do() {
|
|
188
|
+
return new TaskDo(this.bind((a) => _Task.pure({ env: {}, lastValue: a })));
|
|
189
|
+
}
|
|
160
190
|
async tryRun() {
|
|
161
191
|
try {
|
|
162
192
|
return new Right(await this.run());
|
package/dist/cjs/data/task.d.cts
CHANGED
|
@@ -1,35 +1,51 @@
|
|
|
1
1
|
import { Either } from './either.cjs';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
let<K extends string, X>(name: K, task: (env: Env) => X):
|
|
5
|
-
bind<K extends string, X>(name: K, task: (env: Env) => Task<X>):
|
|
6
|
-
exec<X>(task: (env: Env) => Task<X>):
|
|
7
|
-
effect<X>(task: (env: Env) => X):
|
|
8
|
-
|
|
3
|
+
type TaskDoTypeBase<Env extends Record<string, any>, A> = {
|
|
4
|
+
let<K extends string, X>(name: K, task: (env: Env) => X): TaskDoTypeNoGet<Env & Record<K, X>, A>;
|
|
5
|
+
bind<K extends string, X>(name: K, task: (env: Env) => Task<X>): TaskDoTypeNoGet<Env & Record<K, X>, A>;
|
|
6
|
+
exec<X>(task: (env: Env) => Task<X>): TaskDoTypeNoGet<Env, A>;
|
|
7
|
+
effect<X>(task: (env: Env) => X): TaskDoTypeNoGet<Env, A>;
|
|
8
|
+
};
|
|
9
|
+
type TaskDoTypeReturn<Env extends Record<string, any>, _A> = {
|
|
10
|
+
pure<X>(task: (env: Env) => X): TaskDoTypeGet<Env, X>;
|
|
11
|
+
};
|
|
12
|
+
type TaskDoTypeIf<Env extends Record<string, any>, _A> = {
|
|
13
|
+
if<X>(cond: (env: Env) => boolean, task: (env: Env) => X): TaskDoTypeIfReturn<Env, X>;
|
|
14
|
+
};
|
|
15
|
+
type TaskDoTypeIfReturn<Env extends Record<string, any>, A> = {
|
|
16
|
+
pureR(task: (env: Env) => A): TaskDoTypeGet<Env, A>;
|
|
17
|
+
};
|
|
18
|
+
type TaskDoTypeGet<_Env extends Record<string, any>, A> = {
|
|
9
19
|
getTask(): Task<A>;
|
|
10
|
-
}
|
|
20
|
+
};
|
|
21
|
+
type TaskDoTypeNoGet<Env extends Record<string, any>, A> = TaskDoTypeBase<Env, A> & TaskDoTypeReturn<Env, A> & TaskDoTypeIf<Env, A>;
|
|
22
|
+
type TaskDoType<Env extends Record<string, any>, A> = TaskDoTypeBase<Env, A> & TaskDoTypeReturn<Env, A> & TaskDoTypeGet<Env, A> & TaskDoTypeIf<Env, A> & TaskDoTypeIfReturn<Env, A>;
|
|
11
23
|
declare class TaskDo<Env extends Record<string, any>, A> implements TaskDoType<Env, A> {
|
|
12
24
|
private accTask;
|
|
13
25
|
constructor(accTask: Task<{
|
|
14
26
|
env: Env;
|
|
15
27
|
lastValue: A;
|
|
28
|
+
lock?: boolean;
|
|
16
29
|
}>);
|
|
17
|
-
let<K extends string, X>(name: K, task: (env: Env) => X):
|
|
18
|
-
bind<K extends string, X>(name: K, task: (env: Env) => Task<X>):
|
|
19
|
-
exec<X>(task: (env: Env) => Task<X>):
|
|
20
|
-
effect<X>(task: (env: Env) => X):
|
|
21
|
-
pure<X>(
|
|
30
|
+
let<K extends string, X>(name: K, task: (env: Env) => X): TaskDoTypeNoGet<Env & Record<K, X>, A>;
|
|
31
|
+
bind<K extends string, X>(name: K, task: (env: Env) => Task<X>): TaskDoTypeNoGet<Env & Record<K, X>, A>;
|
|
32
|
+
exec<X>(task: (env: Env) => Task<X>): TaskDoTypeNoGet<Env, A>;
|
|
33
|
+
effect<X>(task: (env: Env) => X): TaskDoTypeNoGet<Env, A>;
|
|
34
|
+
pure<X>(task: (env: Env) => X): TaskDoTypeGet<Env, X>;
|
|
35
|
+
if<X>(cond: (env: Env) => boolean, task: (env: Env) => X): TaskDoTypeIfReturn<Env, X>;
|
|
36
|
+
pureR(task: (env: Env) => A): TaskDoTypeGet<Env, A>;
|
|
22
37
|
getTask(): Task<A>;
|
|
23
38
|
}
|
|
24
39
|
declare class Task<A> {
|
|
25
40
|
private f;
|
|
26
41
|
static pure<A>(a: A): Task<A>;
|
|
27
|
-
static do():
|
|
42
|
+
static do(): TaskDoTypeBase<Record<string, any>, void>;
|
|
28
43
|
constructor(f: () => Promise<A>);
|
|
29
44
|
map<B>(f: (a: A) => B): Task<B>;
|
|
30
45
|
bind<B>(f: (a: A) => Task<B>): Task<B>;
|
|
31
46
|
run(): Promise<A>;
|
|
47
|
+
do(): TaskDoTypeBase<{}, A>;
|
|
32
48
|
tryRun(): Promise<Either<Error, A>>;
|
|
33
49
|
}
|
|
34
50
|
|
|
35
|
-
export { Task, TaskDo, type TaskDoType };
|
|
51
|
+
export { Task, TaskDo, type TaskDoType, type TaskDoTypeBase, type TaskDoTypeGet, type TaskDoTypeIf, type TaskDoTypeIfReturn, type TaskDoTypeNoGet, type TaskDoTypeReturn };
|
package/dist/cjs/func/seq.cjs
CHANGED
|
@@ -114,25 +114,52 @@ var TaskDo = class _TaskDo {
|
|
|
114
114
|
let(name, task) {
|
|
115
115
|
return new _TaskDo(
|
|
116
116
|
this.accTask.bind(
|
|
117
|
-
(a) => Task.pure(task(a.env)).bind((v) => Task.pure({ env: { ...a.env, [name]: v }, lastValue:
|
|
117
|
+
(a) => Task.pure(task(a.env)).bind((v) => Task.pure({ env: { ...a.env, [name]: v }, lastValue: a.lastValue }))
|
|
118
118
|
)
|
|
119
119
|
);
|
|
120
120
|
}
|
|
121
121
|
bind(name, task) {
|
|
122
122
|
return new _TaskDo(
|
|
123
|
-
this.accTask.bind(
|
|
123
|
+
this.accTask.bind(
|
|
124
|
+
(a) => task(a.env).bind((v) => Task.pure({ env: { ...a.env, [name]: v }, lastValue: a.lastValue }))
|
|
125
|
+
)
|
|
124
126
|
);
|
|
125
127
|
}
|
|
126
128
|
exec(task) {
|
|
127
|
-
return new _TaskDo(
|
|
129
|
+
return new _TaskDo(
|
|
130
|
+
this.accTask.bind((a) => task(a.env).bind(() => Task.pure({ env: a.env, lastValue: a.lastValue })))
|
|
131
|
+
);
|
|
128
132
|
}
|
|
129
133
|
effect(task) {
|
|
134
|
+
return new _TaskDo(
|
|
135
|
+
this.accTask.bind((a) => Task.pure(task(a.env)).bind(() => Task.pure({ env: a.env, lastValue: a.lastValue })))
|
|
136
|
+
);
|
|
137
|
+
}
|
|
138
|
+
pure(task) {
|
|
130
139
|
return new _TaskDo(
|
|
131
140
|
this.accTask.bind((a) => Task.pure(task(a.env)).bind((v) => Task.pure({ env: a.env, lastValue: v })))
|
|
132
141
|
);
|
|
133
142
|
}
|
|
134
|
-
|
|
135
|
-
return new _TaskDo(
|
|
143
|
+
if(cond, task) {
|
|
144
|
+
return new _TaskDo(
|
|
145
|
+
this.accTask.bind(
|
|
146
|
+
(a) => Task.pure(cond(a.env)).bind(
|
|
147
|
+
(c) => c ? Task.pure(task(a.env)).bind((x) => Task.pure({ env: a.env, lastValue: x, lock: true })) : Task.pure({
|
|
148
|
+
env: a.env,
|
|
149
|
+
/*从类型可以确保if没命中的情况pureIf来补充正确的候选值, 所以这里跳过ts检查*/
|
|
150
|
+
lastValue: a.lastValue,
|
|
151
|
+
lock: false
|
|
152
|
+
})
|
|
153
|
+
)
|
|
154
|
+
)
|
|
155
|
+
);
|
|
156
|
+
}
|
|
157
|
+
pureR(task) {
|
|
158
|
+
return new _TaskDo(
|
|
159
|
+
this.accTask.bind(
|
|
160
|
+
(a) => a.lock ? Task.pure(a) : Task.pure(task(a.env)).bind((v) => Task.pure({ env: a.env, lastValue: v }))
|
|
161
|
+
)
|
|
162
|
+
);
|
|
136
163
|
}
|
|
137
164
|
getTask() {
|
|
138
165
|
return new Task(async () => {
|
|
@@ -159,6 +186,9 @@ var Task = class _Task {
|
|
|
159
186
|
run() {
|
|
160
187
|
return this.f();
|
|
161
188
|
}
|
|
189
|
+
do() {
|
|
190
|
+
return new TaskDo(this.bind((a) => _Task.pure({ env: {}, lastValue: a })));
|
|
191
|
+
}
|
|
162
192
|
async tryRun() {
|
|
163
193
|
try {
|
|
164
194
|
return new Right(await this.run());
|
package/dist/cjs/index.cjs
CHANGED
|
@@ -122,25 +122,52 @@ var TaskDo = class _TaskDo {
|
|
|
122
122
|
let(name, task) {
|
|
123
123
|
return new _TaskDo(
|
|
124
124
|
this.accTask.bind(
|
|
125
|
-
(a) => Task.pure(task(a.env)).bind((v) => Task.pure({ env: { ...a.env, [name]: v }, lastValue:
|
|
125
|
+
(a) => Task.pure(task(a.env)).bind((v) => Task.pure({ env: { ...a.env, [name]: v }, lastValue: a.lastValue }))
|
|
126
126
|
)
|
|
127
127
|
);
|
|
128
128
|
}
|
|
129
129
|
bind(name, task) {
|
|
130
130
|
return new _TaskDo(
|
|
131
|
-
this.accTask.bind(
|
|
131
|
+
this.accTask.bind(
|
|
132
|
+
(a) => task(a.env).bind((v) => Task.pure({ env: { ...a.env, [name]: v }, lastValue: a.lastValue }))
|
|
133
|
+
)
|
|
132
134
|
);
|
|
133
135
|
}
|
|
134
136
|
exec(task) {
|
|
135
|
-
return new _TaskDo(
|
|
137
|
+
return new _TaskDo(
|
|
138
|
+
this.accTask.bind((a) => task(a.env).bind(() => Task.pure({ env: a.env, lastValue: a.lastValue })))
|
|
139
|
+
);
|
|
136
140
|
}
|
|
137
141
|
effect(task) {
|
|
142
|
+
return new _TaskDo(
|
|
143
|
+
this.accTask.bind((a) => Task.pure(task(a.env)).bind(() => Task.pure({ env: a.env, lastValue: a.lastValue })))
|
|
144
|
+
);
|
|
145
|
+
}
|
|
146
|
+
pure(task) {
|
|
138
147
|
return new _TaskDo(
|
|
139
148
|
this.accTask.bind((a) => Task.pure(task(a.env)).bind((v) => Task.pure({ env: a.env, lastValue: v })))
|
|
140
149
|
);
|
|
141
150
|
}
|
|
142
|
-
|
|
143
|
-
return new _TaskDo(
|
|
151
|
+
if(cond, task) {
|
|
152
|
+
return new _TaskDo(
|
|
153
|
+
this.accTask.bind(
|
|
154
|
+
(a) => Task.pure(cond(a.env)).bind(
|
|
155
|
+
(c) => c ? Task.pure(task(a.env)).bind((x) => Task.pure({ env: a.env, lastValue: x, lock: true })) : Task.pure({
|
|
156
|
+
env: a.env,
|
|
157
|
+
/*从类型可以确保if没命中的情况pureIf来补充正确的候选值, 所以这里跳过ts检查*/
|
|
158
|
+
lastValue: a.lastValue,
|
|
159
|
+
lock: false
|
|
160
|
+
})
|
|
161
|
+
)
|
|
162
|
+
)
|
|
163
|
+
);
|
|
164
|
+
}
|
|
165
|
+
pureR(task) {
|
|
166
|
+
return new _TaskDo(
|
|
167
|
+
this.accTask.bind(
|
|
168
|
+
(a) => a.lock ? Task.pure(a) : Task.pure(task(a.env)).bind((v) => Task.pure({ env: a.env, lastValue: v }))
|
|
169
|
+
)
|
|
170
|
+
);
|
|
144
171
|
}
|
|
145
172
|
getTask() {
|
|
146
173
|
return new Task(async () => {
|
|
@@ -167,6 +194,9 @@ var Task = class _Task {
|
|
|
167
194
|
run() {
|
|
168
195
|
return this.f();
|
|
169
196
|
}
|
|
197
|
+
do() {
|
|
198
|
+
return new TaskDo(this.bind((a) => _Task.pure({ env: {}, lastValue: a })));
|
|
199
|
+
}
|
|
170
200
|
async tryRun() {
|
|
171
201
|
try {
|
|
172
202
|
return new Right(await this.run());
|
package/dist/cjs/index.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { Task, TaskDo, TaskDoType } from './data/task.cjs';
|
|
1
|
+
export { Task, TaskDo, TaskDoType, TaskDoTypeBase, TaskDoTypeGet, TaskDoTypeIf, TaskDoTypeIfReturn, TaskDoTypeNoGet, TaskDoTypeReturn } 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';
|
|
@@ -11,25 +11,52 @@ var TaskDo = class _TaskDo {
|
|
|
11
11
|
let(name, task) {
|
|
12
12
|
return new _TaskDo(
|
|
13
13
|
this.accTask.bind(
|
|
14
|
-
(a) => Task.pure(task(a.env)).bind((v) => Task.pure({ env: { ...a.env, [name]: v }, lastValue:
|
|
14
|
+
(a) => Task.pure(task(a.env)).bind((v) => Task.pure({ env: { ...a.env, [name]: v }, lastValue: a.lastValue }))
|
|
15
15
|
)
|
|
16
16
|
);
|
|
17
17
|
}
|
|
18
18
|
bind(name, task) {
|
|
19
19
|
return new _TaskDo(
|
|
20
|
-
this.accTask.bind(
|
|
20
|
+
this.accTask.bind(
|
|
21
|
+
(a) => task(a.env).bind((v) => Task.pure({ env: { ...a.env, [name]: v }, lastValue: a.lastValue }))
|
|
22
|
+
)
|
|
21
23
|
);
|
|
22
24
|
}
|
|
23
25
|
exec(task) {
|
|
24
|
-
return new _TaskDo(
|
|
26
|
+
return new _TaskDo(
|
|
27
|
+
this.accTask.bind((a) => task(a.env).bind(() => Task.pure({ env: a.env, lastValue: a.lastValue })))
|
|
28
|
+
);
|
|
25
29
|
}
|
|
26
30
|
effect(task) {
|
|
31
|
+
return new _TaskDo(
|
|
32
|
+
this.accTask.bind((a) => Task.pure(task(a.env)).bind(() => Task.pure({ env: a.env, lastValue: a.lastValue })))
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
pure(task) {
|
|
27
36
|
return new _TaskDo(
|
|
28
37
|
this.accTask.bind((a) => Task.pure(task(a.env)).bind((v) => Task.pure({ env: a.env, lastValue: v })))
|
|
29
38
|
);
|
|
30
39
|
}
|
|
31
|
-
|
|
32
|
-
return new _TaskDo(
|
|
40
|
+
if(cond, task) {
|
|
41
|
+
return new _TaskDo(
|
|
42
|
+
this.accTask.bind(
|
|
43
|
+
(a) => Task.pure(cond(a.env)).bind(
|
|
44
|
+
(c) => c ? Task.pure(task(a.env)).bind((x) => Task.pure({ env: a.env, lastValue: x, lock: true })) : Task.pure({
|
|
45
|
+
env: a.env,
|
|
46
|
+
/*从类型可以确保if没命中的情况pureIf来补充正确的候选值, 所以这里跳过ts检查*/
|
|
47
|
+
lastValue: a.lastValue,
|
|
48
|
+
lock: false
|
|
49
|
+
})
|
|
50
|
+
)
|
|
51
|
+
)
|
|
52
|
+
);
|
|
53
|
+
}
|
|
54
|
+
pureR(task) {
|
|
55
|
+
return new _TaskDo(
|
|
56
|
+
this.accTask.bind(
|
|
57
|
+
(a) => a.lock ? Task.pure(a) : Task.pure(task(a.env)).bind((v) => Task.pure({ env: a.env, lastValue: v }))
|
|
58
|
+
)
|
|
59
|
+
);
|
|
33
60
|
}
|
|
34
61
|
getTask() {
|
|
35
62
|
return new Task(async () => {
|
|
@@ -56,6 +83,9 @@ var Task = class _Task {
|
|
|
56
83
|
run() {
|
|
57
84
|
return this.f();
|
|
58
85
|
}
|
|
86
|
+
do() {
|
|
87
|
+
return new TaskDo(this.bind((a) => _Task.pure({ env: {}, lastValue: a })));
|
|
88
|
+
}
|
|
59
89
|
async tryRun() {
|
|
60
90
|
try {
|
|
61
91
|
return new Right(await this.run());
|
package/dist/esm/data/task.d.ts
CHANGED
|
@@ -1,35 +1,51 @@
|
|
|
1
1
|
import { Either } from './either.js';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
let<K extends string, X>(name: K, task: (env: Env) => X):
|
|
5
|
-
bind<K extends string, X>(name: K, task: (env: Env) => Task<X>):
|
|
6
|
-
exec<X>(task: (env: Env) => Task<X>):
|
|
7
|
-
effect<X>(task: (env: Env) => X):
|
|
8
|
-
|
|
3
|
+
type TaskDoTypeBase<Env extends Record<string, any>, A> = {
|
|
4
|
+
let<K extends string, X>(name: K, task: (env: Env) => X): TaskDoTypeNoGet<Env & Record<K, X>, A>;
|
|
5
|
+
bind<K extends string, X>(name: K, task: (env: Env) => Task<X>): TaskDoTypeNoGet<Env & Record<K, X>, A>;
|
|
6
|
+
exec<X>(task: (env: Env) => Task<X>): TaskDoTypeNoGet<Env, A>;
|
|
7
|
+
effect<X>(task: (env: Env) => X): TaskDoTypeNoGet<Env, A>;
|
|
8
|
+
};
|
|
9
|
+
type TaskDoTypeReturn<Env extends Record<string, any>, _A> = {
|
|
10
|
+
pure<X>(task: (env: Env) => X): TaskDoTypeGet<Env, X>;
|
|
11
|
+
};
|
|
12
|
+
type TaskDoTypeIf<Env extends Record<string, any>, _A> = {
|
|
13
|
+
if<X>(cond: (env: Env) => boolean, task: (env: Env) => X): TaskDoTypeIfReturn<Env, X>;
|
|
14
|
+
};
|
|
15
|
+
type TaskDoTypeIfReturn<Env extends Record<string, any>, A> = {
|
|
16
|
+
pureR(task: (env: Env) => A): TaskDoTypeGet<Env, A>;
|
|
17
|
+
};
|
|
18
|
+
type TaskDoTypeGet<_Env extends Record<string, any>, A> = {
|
|
9
19
|
getTask(): Task<A>;
|
|
10
|
-
}
|
|
20
|
+
};
|
|
21
|
+
type TaskDoTypeNoGet<Env extends Record<string, any>, A> = TaskDoTypeBase<Env, A> & TaskDoTypeReturn<Env, A> & TaskDoTypeIf<Env, A>;
|
|
22
|
+
type TaskDoType<Env extends Record<string, any>, A> = TaskDoTypeBase<Env, A> & TaskDoTypeReturn<Env, A> & TaskDoTypeGet<Env, A> & TaskDoTypeIf<Env, A> & TaskDoTypeIfReturn<Env, A>;
|
|
11
23
|
declare class TaskDo<Env extends Record<string, any>, A> implements TaskDoType<Env, A> {
|
|
12
24
|
private accTask;
|
|
13
25
|
constructor(accTask: Task<{
|
|
14
26
|
env: Env;
|
|
15
27
|
lastValue: A;
|
|
28
|
+
lock?: boolean;
|
|
16
29
|
}>);
|
|
17
|
-
let<K extends string, X>(name: K, task: (env: Env) => X):
|
|
18
|
-
bind<K extends string, X>(name: K, task: (env: Env) => Task<X>):
|
|
19
|
-
exec<X>(task: (env: Env) => Task<X>):
|
|
20
|
-
effect<X>(task: (env: Env) => X):
|
|
21
|
-
pure<X>(
|
|
30
|
+
let<K extends string, X>(name: K, task: (env: Env) => X): TaskDoTypeNoGet<Env & Record<K, X>, A>;
|
|
31
|
+
bind<K extends string, X>(name: K, task: (env: Env) => Task<X>): TaskDoTypeNoGet<Env & Record<K, X>, A>;
|
|
32
|
+
exec<X>(task: (env: Env) => Task<X>): TaskDoTypeNoGet<Env, A>;
|
|
33
|
+
effect<X>(task: (env: Env) => X): TaskDoTypeNoGet<Env, A>;
|
|
34
|
+
pure<X>(task: (env: Env) => X): TaskDoTypeGet<Env, X>;
|
|
35
|
+
if<X>(cond: (env: Env) => boolean, task: (env: Env) => X): TaskDoTypeIfReturn<Env, X>;
|
|
36
|
+
pureR(task: (env: Env) => A): TaskDoTypeGet<Env, A>;
|
|
22
37
|
getTask(): Task<A>;
|
|
23
38
|
}
|
|
24
39
|
declare class Task<A> {
|
|
25
40
|
private f;
|
|
26
41
|
static pure<A>(a: A): Task<A>;
|
|
27
|
-
static do():
|
|
42
|
+
static do(): TaskDoTypeBase<Record<string, any>, void>;
|
|
28
43
|
constructor(f: () => Promise<A>);
|
|
29
44
|
map<B>(f: (a: A) => B): Task<B>;
|
|
30
45
|
bind<B>(f: (a: A) => Task<B>): Task<B>;
|
|
31
46
|
run(): Promise<A>;
|
|
47
|
+
do(): TaskDoTypeBase<{}, A>;
|
|
32
48
|
tryRun(): Promise<Either<Error, A>>;
|
|
33
49
|
}
|
|
34
50
|
|
|
35
|
-
export { Task, TaskDo, type TaskDoType };
|
|
51
|
+
export { Task, TaskDo, type TaskDoType, type TaskDoTypeBase, type TaskDoTypeGet, type TaskDoTypeIf, type TaskDoTypeIfReturn, type TaskDoTypeNoGet, type TaskDoTypeReturn };
|
package/dist/esm/data/task.js
CHANGED
package/dist/esm/func/seq.js
CHANGED
package/dist/esm/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { Task, TaskDo, TaskDoType } from './data/task.js';
|
|
1
|
+
export { Task, TaskDo, TaskDoType, TaskDoTypeBase, TaskDoTypeGet, TaskDoTypeIf, TaskDoTypeIfReturn, TaskDoTypeNoGet, TaskDoTypeReturn } 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
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import {
|
|
2
|
-
Just,
|
|
3
|
-
Maybe,
|
|
4
|
-
Nothing
|
|
5
|
-
} from "./chunk-PP7TCBHD.js";
|
|
6
1
|
import {
|
|
7
2
|
seqArrayEither,
|
|
8
3
|
seqArrayTask,
|
|
9
4
|
seqEitherArray,
|
|
10
5
|
seqEitherTask
|
|
11
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-IHXXIFRN.js";
|
|
7
|
+
import {
|
|
8
|
+
Just,
|
|
9
|
+
Maybe,
|
|
10
|
+
Nothing
|
|
11
|
+
} from "./chunk-PP7TCBHD.js";
|
|
12
12
|
import {
|
|
13
13
|
Task,
|
|
14
14
|
TaskDo
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-OYLE35IQ.js";
|
|
16
16
|
import {
|
|
17
17
|
Either,
|
|
18
18
|
Left,
|