@lsby/ts-fp-data 0.0.7 → 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 +32 -3
- package/dist/cjs/data/task.d.cts +12 -5
- package/dist/cjs/func/seq.cjs +32 -3
- package/dist/cjs/index.cjs +32 -3
- package/dist/esm/{chunk-LVW727CO.js → chunk-KGTFYSGN.js} +1 -1
- package/dist/esm/chunk-XMHK7KBY.js +87 -0
- package/dist/esm/data/task.d.ts +12 -5
- 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-F7Q4HROJ.js +0 -58
package/dist/cjs/data/task.cjs
CHANGED
|
@@ -109,13 +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(
|
|
129
|
+
return new _TaskDo(
|
|
130
|
+
this.accTask.bind((a) => a.lock ? Task.pure(a) : Task.pure(task(a.env)).bind(() => Task.pure(a)))
|
|
131
|
+
);
|
|
132
|
+
}
|
|
133
|
+
pure(value) {
|
|
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
|
+
);
|
|
119
148
|
}
|
|
120
149
|
getTask() {
|
|
121
150
|
return new Task(async () => {
|
|
@@ -131,7 +160,7 @@ var Task = class _Task {
|
|
|
131
160
|
return new _Task(async () => a);
|
|
132
161
|
}
|
|
133
162
|
static do() {
|
|
134
|
-
return new TaskDo(new _Task(async () => ({ env: {}, lastValue: void 0 })));
|
|
163
|
+
return new TaskDo(new _Task(async () => ({ env: {}, lastValue: void 0, lock: false })));
|
|
135
164
|
}
|
|
136
165
|
map(f) {
|
|
137
166
|
return new _Task(async () => f(await this.f()));
|
package/dist/cjs/data/task.d.cts
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { Either } from './either.cjs';
|
|
2
2
|
|
|
3
3
|
interface TaskDoType<Env extends Record<string, any>, A> {
|
|
4
|
-
|
|
5
|
-
|
|
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>;
|
|
6
9
|
getTask(): Task<A>;
|
|
7
10
|
}
|
|
8
11
|
declare class TaskDo<Env extends Record<string, any>, A> implements TaskDoType<Env, A> {
|
|
@@ -10,15 +13,19 @@ declare class TaskDo<Env extends Record<string, any>, A> implements TaskDoType<E
|
|
|
10
13
|
constructor(accTask: Task<{
|
|
11
14
|
env: Env;
|
|
12
15
|
lastValue: A;
|
|
16
|
+
lock: boolean;
|
|
13
17
|
}>);
|
|
14
|
-
|
|
15
|
-
|
|
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>;
|
|
16
23
|
getTask(): Task<A>;
|
|
17
24
|
}
|
|
18
25
|
declare class Task<A> {
|
|
19
26
|
private f;
|
|
20
27
|
static pure<A>(a: A): Task<A>;
|
|
21
|
-
static do(): TaskDo<Record<string, any>,
|
|
28
|
+
static do(): TaskDo<Record<string, any>, void>;
|
|
22
29
|
constructor(f: () => Promise<A>);
|
|
23
30
|
map<B>(f: (a: A) => B): Task<B>;
|
|
24
31
|
bind<B>(f: (a: A) => Task<B>): Task<B>;
|
package/dist/cjs/func/seq.cjs
CHANGED
|
@@ -111,13 +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(
|
|
131
|
+
return new _TaskDo(
|
|
132
|
+
this.accTask.bind((a) => a.lock ? Task.pure(a) : Task.pure(task(a.env)).bind(() => Task.pure(a)))
|
|
133
|
+
);
|
|
134
|
+
}
|
|
135
|
+
pure(value) {
|
|
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
|
+
);
|
|
121
150
|
}
|
|
122
151
|
getTask() {
|
|
123
152
|
return new Task(async () => {
|
|
@@ -133,7 +162,7 @@ var Task = class _Task {
|
|
|
133
162
|
return new _Task(async () => a);
|
|
134
163
|
}
|
|
135
164
|
static do() {
|
|
136
|
-
return new TaskDo(new _Task(async () => ({ env: {}, lastValue: void 0 })));
|
|
165
|
+
return new TaskDo(new _Task(async () => ({ env: {}, lastValue: void 0, lock: false })));
|
|
137
166
|
}
|
|
138
167
|
map(f) {
|
|
139
168
|
return new _Task(async () => f(await this.f()));
|
package/dist/cjs/index.cjs
CHANGED
|
@@ -119,13 +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(
|
|
139
|
+
return new _TaskDo(
|
|
140
|
+
this.accTask.bind((a) => a.lock ? Task.pure(a) : Task.pure(task(a.env)).bind(() => Task.pure(a)))
|
|
141
|
+
);
|
|
142
|
+
}
|
|
143
|
+
pure(value) {
|
|
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
|
+
);
|
|
129
158
|
}
|
|
130
159
|
getTask() {
|
|
131
160
|
return new Task(async () => {
|
|
@@ -141,7 +170,7 @@ var Task = class _Task {
|
|
|
141
170
|
return new _Task(async () => a);
|
|
142
171
|
}
|
|
143
172
|
static do() {
|
|
144
|
-
return new TaskDo(new _Task(async () => ({ env: {}, lastValue: void 0 })));
|
|
173
|
+
return new TaskDo(new _Task(async () => ({ env: {}, lastValue: void 0, lock: false })));
|
|
145
174
|
}
|
|
146
175
|
map(f) {
|
|
147
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,8 +1,11 @@
|
|
|
1
1
|
import { Either } from './either.js';
|
|
2
2
|
|
|
3
3
|
interface TaskDoType<Env extends Record<string, any>, A> {
|
|
4
|
-
|
|
5
|
-
|
|
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>;
|
|
6
9
|
getTask(): Task<A>;
|
|
7
10
|
}
|
|
8
11
|
declare class TaskDo<Env extends Record<string, any>, A> implements TaskDoType<Env, A> {
|
|
@@ -10,15 +13,19 @@ declare class TaskDo<Env extends Record<string, any>, A> implements TaskDoType<E
|
|
|
10
13
|
constructor(accTask: Task<{
|
|
11
14
|
env: Env;
|
|
12
15
|
lastValue: A;
|
|
16
|
+
lock: boolean;
|
|
13
17
|
}>);
|
|
14
|
-
|
|
15
|
-
|
|
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>;
|
|
16
23
|
getTask(): Task<A>;
|
|
17
24
|
}
|
|
18
25
|
declare class Task<A> {
|
|
19
26
|
private f;
|
|
20
27
|
static pure<A>(a: A): Task<A>;
|
|
21
|
-
static do(): TaskDo<Record<string, any>,
|
|
28
|
+
static do(): TaskDo<Record<string, any>, void>;
|
|
22
29
|
constructor(f: () => Promise<A>);
|
|
23
30
|
map<B>(f: (a: A) => B): Task<B>;
|
|
24
31
|
bind<B>(f: (a: A) => Task<B>): Task<B>;
|
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,58 +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
|
-
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
|
-
};
|