@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.
@@ -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)(schema, boundaries, async (argv, boundaries) => {
17
- const externalData = await boundaries.fetchExternalData();
18
- return Object.assign(Object.assign({}, externalData), argv);
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)(schema, boundaries, async (argv, boundaries) => {
37
- const externalData = await boundaries.fetchExternalData();
38
- return Object.assign(Object.assign({}, externalData), argv);
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)(schema, boundaries, async function (argv, boundaries) {
65
- const externalData = await boundaries.fetchExternalData(1);
66
- return argv.value + externalData;
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)(schema, boundaries, async function (argv, boundaries) {
86
- const externalData = await boundaries.fetchExternalData(argv.value);
87
- return argv.value + externalData;
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)(schema, boundaries, async function ({ value }, { fetchExternalData }) {
116
- const externalData = await fetchExternalData(value);
117
- return value * externalData;
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)(schema, boundaries, async function ({ value }, { fetchExternalData }) {
173
- const externalData = await fetchExternalData(value);
174
- return value * externalData;
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)(schema, boundaries, async function ({ value }, { fetchExternalData }) {
221
- const externalData = await fetchExternalData(value);
222
- return value * externalData;
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forgehive/task",
3
- "version": "0.1.13",
3
+ "version": "0.2.0",
4
4
  "license": "MIT",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",
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
- // Initialize log item
382
- const logItem: ExecutionRecord<Parameters<Func>[0], ReturnType<Func>, B> = {
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 logItem: ExecutionRecord<Parameters<Func>[0], ReturnType<Func>, B> = {
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 schema The schema to validate input against
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
- schema: S,
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
- return new Task(
779
- fn,
855
+ const task = new Task(
856
+ config.fn,
780
857
  {
781
- schema,
782
- boundaries,
783
- ...config
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
  }