@forgehive/task 0.1.13 → 0.2.0
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/index.d.ts +32 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +58 -13
- package/dist/index.js.map +1 -1
- package/dist/test/add-listener-with-boundaries.test.js +56 -26
- package/dist/test/add-listener-with-boundaries.test.js.map +1 -1
- package/dist/test/safe-replay-complex-boundary.test.js +36 -27
- package/dist/test/safe-replay-complex-boundary.test.js.map +1 -1
- package/dist/test/safe-replay.test.js +23 -14
- package/dist/test/safe-replay.test.js.map +1 -1
- package/dist/test/safe-run.test.js +41 -16
- package/dist/test/safe-run.test.js.map +1 -1
- package/dist/test/task-boundary-mocking.test.js +17 -7
- package/dist/test/task-boundary-mocking.test.js.map +1 -1
- package/dist/test/task-execution-log.test.d.ts +2 -0
- package/dist/test/task-execution-log.test.d.ts.map +1 -0
- package/dist/test/task-execution-log.test.js +207 -0
- package/dist/test/task-execution-log.test.js.map +1 -0
- package/dist/test/task-with-boundaries.test.js +56 -24
- package/dist/test/task-with-boundaries.test.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +101 -20
- package/src/test/add-listener-with-boundaries.test.ts +24 -18
- package/src/test/safe-replay-complex-boundary.test.ts +18 -10
- package/src/test/safe-replay.test.ts +21 -12
- package/src/test/safe-run.test.ts +20 -15
- package/src/test/task-boundary-mocking.test.ts +8 -6
- package/src/test/task-execution-log.test.ts +246 -0
- package/src/test/task-with-boundaries.test.ts +42 -41
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const index_1 = require("../index");
|
|
4
|
+
describe('Task execution log record', () => {
|
|
5
|
+
describe('Task name in execution record', () => {
|
|
6
|
+
it('should include task name in safeRun execution record when task has a name', async () => {
|
|
7
|
+
// Create a schema
|
|
8
|
+
const schema = new index_1.Schema({
|
|
9
|
+
value: index_1.Schema.number()
|
|
10
|
+
});
|
|
11
|
+
// Create a task with a name
|
|
12
|
+
const task = (0, index_1.createTask)({
|
|
13
|
+
name: 'test-multiplication-task',
|
|
14
|
+
description: 'A task that multiplies input by 2',
|
|
15
|
+
schema,
|
|
16
|
+
boundaries: {
|
|
17
|
+
multiply: async (value) => value * 2
|
|
18
|
+
},
|
|
19
|
+
fn: async ({ value }, { multiply }) => {
|
|
20
|
+
const result = await multiply(value);
|
|
21
|
+
return { result };
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
// Run the task with safeRun
|
|
25
|
+
const [result, error, record] = await task.safeRun({ value: 5 });
|
|
26
|
+
// Verify the execution was successful
|
|
27
|
+
expect(error).toBeNull();
|
|
28
|
+
expect(result).toEqual({ result: 10 });
|
|
29
|
+
// Verify the task name is included in the record
|
|
30
|
+
expect(record.taskName).toBe('test-multiplication-task');
|
|
31
|
+
expect(record.input).toEqual({ value: 5 });
|
|
32
|
+
expect(record.output).toEqual({ result: 10 });
|
|
33
|
+
});
|
|
34
|
+
it('should include undefined task name when task has no name', async () => {
|
|
35
|
+
// Create a schema
|
|
36
|
+
const schema = new index_1.Schema({
|
|
37
|
+
value: index_1.Schema.number()
|
|
38
|
+
});
|
|
39
|
+
// Create a task without a name
|
|
40
|
+
const task = (0, index_1.createTask)({
|
|
41
|
+
schema,
|
|
42
|
+
boundaries: {},
|
|
43
|
+
fn: async ({ value }) => {
|
|
44
|
+
return { result: value * 3 };
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
// Run the task with safeRun
|
|
48
|
+
const [result, error, record] = await task.safeRun({ value: 4 });
|
|
49
|
+
// Verify the execution was successful
|
|
50
|
+
expect(error).toBeNull();
|
|
51
|
+
expect(result).toEqual({ result: 12 });
|
|
52
|
+
// Verify the task name is undefined in the record
|
|
53
|
+
expect(record.taskName).toBeUndefined();
|
|
54
|
+
expect(record.input).toEqual({ value: 4 });
|
|
55
|
+
expect(record.output).toEqual({ result: 12 });
|
|
56
|
+
});
|
|
57
|
+
it('should include task name in error execution records', async () => {
|
|
58
|
+
// Create a schema
|
|
59
|
+
const schema = new index_1.Schema({
|
|
60
|
+
value: index_1.Schema.number()
|
|
61
|
+
});
|
|
62
|
+
// Create a task that will throw an error
|
|
63
|
+
const task = (0, index_1.createTask)({
|
|
64
|
+
name: 'error-task',
|
|
65
|
+
schema,
|
|
66
|
+
boundaries: {},
|
|
67
|
+
fn: async ({ value }) => {
|
|
68
|
+
if (value < 0) {
|
|
69
|
+
throw new Error('Value cannot be negative');
|
|
70
|
+
}
|
|
71
|
+
return { result: value };
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
// Run the task with a value that will cause an error
|
|
75
|
+
const [result, error, record] = await task.safeRun({ value: -1 });
|
|
76
|
+
// Verify the execution failed as expected
|
|
77
|
+
expect(result).toBeNull();
|
|
78
|
+
expect(error).not.toBeNull();
|
|
79
|
+
expect(error === null || error === void 0 ? void 0 : error.message).toBe('Value cannot be negative');
|
|
80
|
+
// Verify the task name is included in the error record
|
|
81
|
+
expect(record.taskName).toBe('error-task');
|
|
82
|
+
expect(record.input).toEqual({ value: -1 });
|
|
83
|
+
expect(record.error).toBe('Value cannot be negative');
|
|
84
|
+
expect(record.output).toBeUndefined();
|
|
85
|
+
});
|
|
86
|
+
it('should include task name in safeReplay execution record', async () => {
|
|
87
|
+
// Create a schema
|
|
88
|
+
const schema = new index_1.Schema({
|
|
89
|
+
value: index_1.Schema.number()
|
|
90
|
+
});
|
|
91
|
+
// Create a task with boundaries
|
|
92
|
+
const task = (0, index_1.createTask)({
|
|
93
|
+
name: 'replay-test-task',
|
|
94
|
+
schema,
|
|
95
|
+
boundaries: {
|
|
96
|
+
fetchData: async (value) => value * 2
|
|
97
|
+
},
|
|
98
|
+
fn: async ({ value }, { fetchData }) => {
|
|
99
|
+
const result = await fetchData(value);
|
|
100
|
+
return { result };
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
// First, run the task normally to get an execution record
|
|
104
|
+
const [, , originalRecord] = await task.safeRun({ value: 3 });
|
|
105
|
+
// Now replay the task
|
|
106
|
+
const [replayResult, replayError, replayRecord] = await task.safeReplay(originalRecord, { boundaries: { fetchData: 'replay' } });
|
|
107
|
+
// Verify the replay was successful
|
|
108
|
+
expect(replayError).toBeNull();
|
|
109
|
+
expect(replayResult).toEqual({ result: 6 });
|
|
110
|
+
// Verify the task name is included in the replay record
|
|
111
|
+
expect(replayRecord.taskName).toBe('replay-test-task');
|
|
112
|
+
expect(replayRecord.input).toEqual({ value: 3 });
|
|
113
|
+
expect(replayRecord.output).toEqual({ result: 6 });
|
|
114
|
+
});
|
|
115
|
+
});
|
|
116
|
+
describe('Type computation in execution record', () => {
|
|
117
|
+
it('should have type "success" when task completes successfully', async () => {
|
|
118
|
+
const schema = new index_1.Schema({
|
|
119
|
+
value: index_1.Schema.number()
|
|
120
|
+
});
|
|
121
|
+
const task = (0, index_1.createTask)({
|
|
122
|
+
name: 'success-task',
|
|
123
|
+
schema,
|
|
124
|
+
boundaries: {},
|
|
125
|
+
fn: async ({ value }) => {
|
|
126
|
+
return { result: value * 2 };
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
const [result, error, record] = await task.safeRun({ value: 5 });
|
|
130
|
+
expect(error).toBeNull();
|
|
131
|
+
expect(result).toEqual({ result: 10 });
|
|
132
|
+
expect(record.type).toBe('success');
|
|
133
|
+
expect(record.output).toEqual({ result: 10 });
|
|
134
|
+
expect(record.error).toBeUndefined();
|
|
135
|
+
});
|
|
136
|
+
it('should have type "error" when task throws an error', async () => {
|
|
137
|
+
const schema = new index_1.Schema({
|
|
138
|
+
value: index_1.Schema.number()
|
|
139
|
+
});
|
|
140
|
+
const task = (0, index_1.createTask)({
|
|
141
|
+
name: 'error-task',
|
|
142
|
+
schema,
|
|
143
|
+
boundaries: {},
|
|
144
|
+
fn: async ({ value }) => {
|
|
145
|
+
if (value < 0) {
|
|
146
|
+
throw new Error('Value cannot be negative');
|
|
147
|
+
}
|
|
148
|
+
return { result: value };
|
|
149
|
+
}
|
|
150
|
+
});
|
|
151
|
+
const [result, error, record] = await task.safeRun({ value: -1 });
|
|
152
|
+
expect(result).toBeNull();
|
|
153
|
+
expect(error).not.toBeNull();
|
|
154
|
+
expect(record.type).toBe('error');
|
|
155
|
+
expect(record.error).toBe('Value cannot be negative');
|
|
156
|
+
expect(record.output).toBeUndefined();
|
|
157
|
+
});
|
|
158
|
+
it('should have type "pending" when neither output nor error is set', async () => {
|
|
159
|
+
// This tests the getExecutionRecordType utility function directly
|
|
160
|
+
const partialRecord = {
|
|
161
|
+
input: { value: 1 },
|
|
162
|
+
boundaries: {},
|
|
163
|
+
taskName: 'test'
|
|
164
|
+
};
|
|
165
|
+
const type = (0, index_1.getExecutionRecordType)(partialRecord);
|
|
166
|
+
expect(type).toBe('pending');
|
|
167
|
+
});
|
|
168
|
+
});
|
|
169
|
+
describe('Context in execution record', () => {
|
|
170
|
+
it('should include context when provided to safeRun', async () => {
|
|
171
|
+
const schema = new index_1.Schema({
|
|
172
|
+
value: index_1.Schema.number()
|
|
173
|
+
});
|
|
174
|
+
const task = (0, index_1.createTask)({
|
|
175
|
+
name: 'context-task',
|
|
176
|
+
schema,
|
|
177
|
+
boundaries: {},
|
|
178
|
+
fn: async ({ value }) => {
|
|
179
|
+
return { result: value * 2 };
|
|
180
|
+
}
|
|
181
|
+
});
|
|
182
|
+
const [result, error, record] = await task.safeRun({ value: 5 });
|
|
183
|
+
expect(error).toBeNull();
|
|
184
|
+
expect(result).toEqual({ result: 10 });
|
|
185
|
+
expect(record.metadata).toEqual({});
|
|
186
|
+
expect(record.taskName).toBe('context-task');
|
|
187
|
+
});
|
|
188
|
+
it('should handle undefined context gracefully', async () => {
|
|
189
|
+
const schema = new index_1.Schema({
|
|
190
|
+
value: index_1.Schema.number()
|
|
191
|
+
});
|
|
192
|
+
const task = (0, index_1.createTask)({
|
|
193
|
+
name: 'no-context-task',
|
|
194
|
+
schema,
|
|
195
|
+
boundaries: {},
|
|
196
|
+
fn: async ({ value }) => {
|
|
197
|
+
return { result: value * 2 };
|
|
198
|
+
}
|
|
199
|
+
});
|
|
200
|
+
const [result, error, record] = await task.safeRun({ value: 5 });
|
|
201
|
+
expect(error).toBeNull();
|
|
202
|
+
expect(result).toEqual({ result: 10 });
|
|
203
|
+
expect(record.metadata).toEqual({});
|
|
204
|
+
});
|
|
205
|
+
});
|
|
206
|
+
});
|
|
207
|
+
//# sourceMappingURL=task-execution-log.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-execution-log.test.js","sourceRoot":"","sources":["../../src/test/task-execution-log.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,9 +13,14 @@ describe('Boundaries tasks tests', () => {
|
|
|
13
13
|
}
|
|
14
14
|
};
|
|
15
15
|
// Create the task using createTask
|
|
16
|
-
const indentity = (0, index_1.createTask)(
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
const indentity = (0, index_1.createTask)({
|
|
17
|
+
name: 'indentity',
|
|
18
|
+
schema,
|
|
19
|
+
boundaries,
|
|
20
|
+
fn: async (argv, boundaries) => {
|
|
21
|
+
const externalData = await boundaries.fetchExternalData();
|
|
22
|
+
return Object.assign(Object.assign({}, externalData), argv);
|
|
23
|
+
}
|
|
19
24
|
});
|
|
20
25
|
const object = await indentity.run({ bar: true });
|
|
21
26
|
const { foo } = await indentity.run({ foo: true });
|
|
@@ -33,10 +38,14 @@ describe('Boundaries tasks tests', () => {
|
|
|
33
38
|
}
|
|
34
39
|
};
|
|
35
40
|
// Create the task using createTask with boundariesData
|
|
36
|
-
const indentity = (0, index_1.createTask)(
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
41
|
+
const indentity = (0, index_1.createTask)({
|
|
42
|
+
name: 'indentity',
|
|
43
|
+
schema,
|
|
44
|
+
boundaries,
|
|
45
|
+
fn: async (argv, boundaries) => {
|
|
46
|
+
const externalData = await boundaries.fetchExternalData();
|
|
47
|
+
return Object.assign(Object.assign({}, externalData), argv);
|
|
48
|
+
},
|
|
40
49
|
boundariesData: {
|
|
41
50
|
fetchExternalData: [
|
|
42
51
|
{ input: [], output: { foo: false } }
|
|
@@ -61,9 +70,14 @@ describe('Boundaries tasks tests', () => {
|
|
|
61
70
|
}
|
|
62
71
|
};
|
|
63
72
|
// Create the task using createTask
|
|
64
|
-
const add = (0, index_1.createTask)(
|
|
65
|
-
|
|
66
|
-
|
|
73
|
+
const add = (0, index_1.createTask)({
|
|
74
|
+
name: 'add',
|
|
75
|
+
schema,
|
|
76
|
+
boundaries,
|
|
77
|
+
fn: async function (argv, boundaries) {
|
|
78
|
+
const externalData = await boundaries.fetchExternalData(1);
|
|
79
|
+
return argv.value + externalData;
|
|
80
|
+
}
|
|
67
81
|
});
|
|
68
82
|
const six = await add.run({ value: 4 });
|
|
69
83
|
const seven = await add.run({ value: 5 });
|
|
@@ -82,10 +96,14 @@ describe('Boundaries tasks tests', () => {
|
|
|
82
96
|
}
|
|
83
97
|
};
|
|
84
98
|
// Create the task using createTask with boundariesData
|
|
85
|
-
const add = (0, index_1.createTask)(
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
99
|
+
const add = (0, index_1.createTask)({
|
|
100
|
+
name: 'add',
|
|
101
|
+
schema,
|
|
102
|
+
boundaries,
|
|
103
|
+
fn: async function (argv, boundaries) {
|
|
104
|
+
const externalData = await boundaries.fetchExternalData(argv.value);
|
|
105
|
+
return argv.value + externalData;
|
|
106
|
+
},
|
|
89
107
|
boundariesData: {
|
|
90
108
|
fetchExternalData: [
|
|
91
109
|
{ input: [4], output: 2 }
|
|
@@ -112,9 +130,14 @@ describe('Boundaries tasks tests', () => {
|
|
|
112
130
|
}
|
|
113
131
|
};
|
|
114
132
|
// Create the task using createTask
|
|
115
|
-
const multiplyTask = (0, index_1.createTask)(
|
|
116
|
-
|
|
117
|
-
|
|
133
|
+
const multiplyTask = (0, index_1.createTask)({
|
|
134
|
+
name: 'multiplyTask',
|
|
135
|
+
schema,
|
|
136
|
+
boundaries,
|
|
137
|
+
fn: async function ({ value }, { fetchExternalData }) {
|
|
138
|
+
const externalData = await fetchExternalData(value);
|
|
139
|
+
return value * externalData;
|
|
140
|
+
}
|
|
118
141
|
});
|
|
119
142
|
multiplyTask.addListener((record) => {
|
|
120
143
|
records.push(record);
|
|
@@ -169,9 +192,14 @@ describe('Boundaries tasks tests', () => {
|
|
|
169
192
|
}
|
|
170
193
|
};
|
|
171
194
|
// Create the task using createTask
|
|
172
|
-
const multiplyTask = (0, index_1.createTask)(
|
|
173
|
-
|
|
174
|
-
|
|
195
|
+
const multiplyTask = (0, index_1.createTask)({
|
|
196
|
+
name: 'multiplyTask',
|
|
197
|
+
schema,
|
|
198
|
+
boundaries,
|
|
199
|
+
fn: async function ({ value }, { fetchExternalData }) {
|
|
200
|
+
const externalData = await fetchExternalData(value);
|
|
201
|
+
return value * externalData;
|
|
202
|
+
}
|
|
175
203
|
});
|
|
176
204
|
// Run task with value 2
|
|
177
205
|
await multiplyTask.run({ value: 2 });
|
|
@@ -217,10 +245,14 @@ describe('Boundaries tasks tests', () => {
|
|
|
217
245
|
expect(finalSortedTape[2].input).toEqual([4]);
|
|
218
246
|
expect(finalSortedTape[2].output).toBe(8);
|
|
219
247
|
// Verify tape can be used for replay in proxy-pass mode
|
|
220
|
-
const replayTask = (0, index_1.createTask)(
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
248
|
+
const replayTask = (0, index_1.createTask)({
|
|
249
|
+
name: 'replayTask',
|
|
250
|
+
schema,
|
|
251
|
+
boundaries,
|
|
252
|
+
fn: async function ({ value }, { fetchExternalData }) {
|
|
253
|
+
const externalData = await fetchExternalData(value);
|
|
254
|
+
return value * externalData;
|
|
255
|
+
},
|
|
224
256
|
boundariesData: boundariesData3,
|
|
225
257
|
mode: 'proxy-pass'
|
|
226
258
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-with-boundaries.test.js","sourceRoot":"","sources":["../../src/test/task-with-boundaries.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"task-with-boundaries.test.js","sourceRoot":"","sources":["../../src/test/task-with-boundaries.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -35,6 +35,8 @@ export type {
|
|
|
35
35
|
export { Schema }
|
|
36
36
|
|
|
37
37
|
export interface TaskConfig<B extends Boundaries = Boundaries> {
|
|
38
|
+
name?: string
|
|
39
|
+
description?: string
|
|
38
40
|
schema?: Schema<Record<string, SchemaType>>
|
|
39
41
|
mode?: Mode
|
|
40
42
|
boundaries?: B
|
|
@@ -85,11 +87,19 @@ export interface ExecutionRecord<InputType = unknown, OutputType = unknown, B ex
|
|
|
85
87
|
error?: string
|
|
86
88
|
/** Boundary execution data */
|
|
87
89
|
boundaries: BoundaryLogsFor<B>
|
|
90
|
+
/** The name of the task (if set) */
|
|
91
|
+
taskName?: string
|
|
92
|
+
/** Additional context metadata */
|
|
93
|
+
metadata?: Record<string, string>
|
|
94
|
+
/** The type of execution record - computed from output/error state */
|
|
95
|
+
type: 'success' | 'error' | 'pending'
|
|
88
96
|
}
|
|
89
97
|
|
|
90
98
|
export interface TaskInstanceType<Func extends BaseFunction = BaseFunction, B extends Boundaries = Boundaries> {
|
|
91
99
|
version: string
|
|
92
100
|
|
|
101
|
+
getName: () => string | undefined
|
|
102
|
+
setName: (name: string) => void
|
|
93
103
|
getMode: () => Mode
|
|
94
104
|
setMode: (mode: Mode) => void
|
|
95
105
|
setSchema: (base: Schema<Record<string, SchemaType>>) => void
|
|
@@ -119,7 +129,7 @@ export interface TaskInstanceType<Func extends BaseFunction = BaseFunction, B ex
|
|
|
119
129
|
resetMocks: () => void
|
|
120
130
|
|
|
121
131
|
run: (argv?: Parameters<Func>[0]) => Promise<ReturnType<Func>>
|
|
122
|
-
safeRun: (argv?: Parameters<Func>[0]) => Promise<[Awaited<ReturnType<Func>> | null, Error | null, ExecutionRecord<Parameters<Func>[0], ReturnType<Func>, B>]>
|
|
132
|
+
safeRun: (argv?: Parameters<Func>[0], context?: Record<string, string>) => Promise<[Awaited<ReturnType<Func>> | null, Error | null, ExecutionRecord<Parameters<Func>[0], ReturnType<Func>, B>]>
|
|
123
133
|
|
|
124
134
|
// Method for replaying task execution
|
|
125
135
|
safeReplay: (
|
|
@@ -146,6 +156,21 @@ export type TaskFunction<S, B extends Boundaries> =
|
|
|
146
156
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
147
157
|
(argv: InferSchemaType<S>, boundaries: WrappedBoundaries<B>) => Promise<any>;
|
|
148
158
|
|
|
159
|
+
/**
|
|
160
|
+
* Utility function to compute the execution record type based on output and error state
|
|
161
|
+
*/
|
|
162
|
+
export function getExecutionRecordType<InputType = unknown, OutputType = unknown, B extends Boundaries = Boundaries>(
|
|
163
|
+
record: Omit<ExecutionRecord<InputType, OutputType, B>, 'type'>
|
|
164
|
+
): 'success' | 'error' | 'pending' {
|
|
165
|
+
if (record.error !== undefined && record.error !== null) {
|
|
166
|
+
return 'error'
|
|
167
|
+
}
|
|
168
|
+
if (record.output !== undefined && record.output !== null) {
|
|
169
|
+
return 'success'
|
|
170
|
+
}
|
|
171
|
+
return 'pending'
|
|
172
|
+
}
|
|
173
|
+
|
|
149
174
|
export const Task = class Task<
|
|
150
175
|
B extends Boundaries = Boundaries,
|
|
151
176
|
Func extends BaseFunction = BaseFunction
|
|
@@ -155,6 +180,7 @@ export const Task = class Task<
|
|
|
155
180
|
_fn: Func
|
|
156
181
|
_mode: Mode
|
|
157
182
|
_coolDown: number
|
|
183
|
+
_name?: string
|
|
158
184
|
_description?: string
|
|
159
185
|
|
|
160
186
|
_boundariesDefinition: B
|
|
@@ -168,6 +194,8 @@ export const Task = class Task<
|
|
|
168
194
|
_listener?: ((record: TaskRecord<Parameters<Func>[0], ReturnType<Func>>) => void) | undefined
|
|
169
195
|
|
|
170
196
|
constructor (fn: Func, conf: TaskConfig<B> = {
|
|
197
|
+
name: undefined,
|
|
198
|
+
description: undefined,
|
|
171
199
|
schema: undefined,
|
|
172
200
|
mode: 'proxy',
|
|
173
201
|
boundaries: undefined,
|
|
@@ -182,6 +210,10 @@ export const Task = class Task<
|
|
|
182
210
|
this._mode = conf.mode ?? 'proxy'
|
|
183
211
|
this._boundariesDefinition = conf.boundaries ?? {} as B
|
|
184
212
|
|
|
213
|
+
// Set name and description from config
|
|
214
|
+
this._name = conf.name
|
|
215
|
+
this._description = conf.description
|
|
216
|
+
|
|
185
217
|
this._listener = undefined
|
|
186
218
|
|
|
187
219
|
// Cool down time before killing the process on cli runner
|
|
@@ -208,6 +240,14 @@ export const Task = class Task<
|
|
|
208
240
|
}
|
|
209
241
|
}
|
|
210
242
|
|
|
243
|
+
getName(): string | undefined {
|
|
244
|
+
return this._name
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
setName(name: string): void {
|
|
248
|
+
this._name = name
|
|
249
|
+
}
|
|
250
|
+
|
|
211
251
|
getMode (): Mode {
|
|
212
252
|
return this._mode
|
|
213
253
|
}
|
|
@@ -378,10 +418,22 @@ export const Task = class Task<
|
|
|
378
418
|
Error | null,
|
|
379
419
|
ExecutionRecord<Parameters<Func>[0], ReturnType<Func>, B>
|
|
380
420
|
]> {
|
|
381
|
-
//
|
|
382
|
-
|
|
421
|
+
// Metadata is empty at start. Then will be populated on the task execution
|
|
422
|
+
// Need to implement that task have a ctx and setMetadata({key, value}) boundary
|
|
423
|
+
const metadata = {} as Record<string, string>
|
|
424
|
+
|
|
425
|
+
// Initialize log item (without type initially)
|
|
426
|
+
const logItemBase = {
|
|
383
427
|
input: argv as Parameters<Func>[0],
|
|
384
|
-
boundaries: {} as BoundaryLogsFor<B
|
|
428
|
+
boundaries: {} as BoundaryLogsFor<B>,
|
|
429
|
+
taskName: this._name,
|
|
430
|
+
metadata: metadata || {}
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
// Create the log item with computed type
|
|
434
|
+
const logItem: ExecutionRecord<Parameters<Func>[0], ReturnType<Func>, B> = {
|
|
435
|
+
...logItemBase,
|
|
436
|
+
type: getExecutionRecordType(logItemBase)
|
|
385
437
|
}
|
|
386
438
|
|
|
387
439
|
// Create fresh boundaries for this execution
|
|
@@ -410,6 +462,7 @@ export const Task = class Task<
|
|
|
410
462
|
: 'Invalid input'
|
|
411
463
|
|
|
412
464
|
logItem.error = errorMessage
|
|
465
|
+
logItem.type = 'error'
|
|
413
466
|
logItem.boundaries = {} as BoundaryLogsFor<B>
|
|
414
467
|
|
|
415
468
|
// Add boundary elements empty
|
|
@@ -433,9 +486,11 @@ export const Task = class Task<
|
|
|
433
486
|
)
|
|
434
487
|
|
|
435
488
|
logItem.output = output
|
|
489
|
+
logItem.type = 'success'
|
|
436
490
|
} catch (caughtError) {
|
|
437
491
|
const errorMessage = caughtError instanceof Error ? caughtError.message : String(caughtError)
|
|
438
492
|
logItem.error = errorMessage
|
|
493
|
+
logItem.type = 'error'
|
|
439
494
|
error = new Error(errorMessage)
|
|
440
495
|
}
|
|
441
496
|
|
|
@@ -487,10 +542,18 @@ export const Task = class Task<
|
|
|
487
542
|
// Extract the input from the execution log
|
|
488
543
|
const argv = executionLog.input
|
|
489
544
|
|
|
490
|
-
// Initialize log item for this replay
|
|
491
|
-
const
|
|
545
|
+
// Initialize log item for this replay (without type initially)
|
|
546
|
+
const logItemBase = {
|
|
492
547
|
input: argv,
|
|
493
|
-
boundaries: {} as BoundaryLogsFor<B
|
|
548
|
+
boundaries: {} as BoundaryLogsFor<B>,
|
|
549
|
+
taskName: this._name,
|
|
550
|
+
metadata: executionLog.metadata || {}
|
|
551
|
+
}
|
|
552
|
+
|
|
553
|
+
// Create the log item with computed type
|
|
554
|
+
const logItem: ExecutionRecord<Parameters<Func>[0], ReturnType<Func>, B> = {
|
|
555
|
+
...logItemBase,
|
|
556
|
+
type: getExecutionRecordType(logItemBase)
|
|
494
557
|
}
|
|
495
558
|
|
|
496
559
|
// Create boundaries for this replay execution with custom modes based on config
|
|
@@ -534,6 +597,7 @@ export const Task = class Task<
|
|
|
534
597
|
: 'Invalid input'
|
|
535
598
|
|
|
536
599
|
logItem.error = errorMessage
|
|
600
|
+
logItem.type = 'error'
|
|
537
601
|
logItem.output = executionLog.output // Keep the original output
|
|
538
602
|
|
|
539
603
|
// Copy the boundary data from the execution log
|
|
@@ -555,9 +619,11 @@ export const Task = class Task<
|
|
|
555
619
|
)
|
|
556
620
|
|
|
557
621
|
logItem.output = output
|
|
622
|
+
logItem.type = 'success'
|
|
558
623
|
} catch (caughtError) {
|
|
559
624
|
const errorMessage = caughtError instanceof Error ? caughtError.message : String(caughtError)
|
|
560
625
|
logItem.error = errorMessage
|
|
626
|
+
logItem.type = 'error'
|
|
561
627
|
error = new Error(errorMessage)
|
|
562
628
|
}
|
|
563
629
|
|
|
@@ -757,12 +823,26 @@ export const Task = class Task<
|
|
|
757
823
|
}
|
|
758
824
|
}
|
|
759
825
|
|
|
826
|
+
/**
|
|
827
|
+
* Configuration object for creating a task
|
|
828
|
+
*/
|
|
829
|
+
export interface CreateTaskConfig<
|
|
830
|
+
S extends Schema<Record<string, SchemaType>>,
|
|
831
|
+
B extends Boundaries,
|
|
832
|
+
R
|
|
833
|
+
> {
|
|
834
|
+
name?: string
|
|
835
|
+
description?: string
|
|
836
|
+
schema: S
|
|
837
|
+
boundaries: B
|
|
838
|
+
fn: (argv: InferSchemaType<S>, boundaries: WrappedBoundaries<B>) => Promise<R>
|
|
839
|
+
mode?: Mode
|
|
840
|
+
boundariesData?: BoundaryTapeData
|
|
841
|
+
}
|
|
842
|
+
|
|
760
843
|
/**
|
|
761
844
|
* Helper function to create a task with proper type inference
|
|
762
|
-
* @param
|
|
763
|
-
* @param boundaries The boundaries to use
|
|
764
|
-
* @param fn The task function
|
|
765
|
-
* @param config Additional task configuration
|
|
845
|
+
* @param config Configuration object containing schema, boundaries, and function
|
|
766
846
|
* @returns A new Task instance with proper type inference
|
|
767
847
|
*/
|
|
768
848
|
export function createTask<
|
|
@@ -770,17 +850,18 @@ export function createTask<
|
|
|
770
850
|
B extends Boundaries,
|
|
771
851
|
R
|
|
772
852
|
>(
|
|
773
|
-
|
|
774
|
-
boundaries: B,
|
|
775
|
-
fn: (argv: InferSchemaType<S>, boundaries: WrappedBoundaries<B>) => Promise<R>,
|
|
776
|
-
config?: Omit<TaskConfig<B>, 'schema' | 'boundaries'>
|
|
853
|
+
config: CreateTaskConfig<S, B, R>
|
|
777
854
|
): TaskInstanceType<(argv: InferSchemaType<S>, boundaries: WrappedBoundaries<B>) => Promise<R>, B> {
|
|
778
|
-
|
|
779
|
-
fn,
|
|
855
|
+
const task = new Task(
|
|
856
|
+
config.fn,
|
|
780
857
|
{
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
858
|
+
name: config.name,
|
|
859
|
+
description: config.description,
|
|
860
|
+
schema: config.schema,
|
|
861
|
+
boundaries: config.boundaries,
|
|
862
|
+
mode: config.mode,
|
|
863
|
+
boundariesData: config.boundariesData
|
|
784
864
|
}
|
|
785
865
|
)
|
|
866
|
+
return task
|
|
786
867
|
}
|