@forgehive/task 0.1.6 → 0.1.7

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 CHANGED
@@ -27,7 +27,29 @@ export interface TaskRecord<InputType = unknown, OutputType = unknown> {
27
27
  /** Boundary execution data */
28
28
  boundaries?: Record<string, unknown>;
29
29
  }
30
+ export type BoundaryLog<I extends unknown[] = unknown[], O = unknown> = {
31
+ input: I;
32
+ output: O | null;
33
+ error: string | null;
34
+ };
35
+ export type BoundaryLogsFor<B extends Boundaries> = {
36
+ [K in keyof B]: B[K] extends (...args: infer I) => Promise<infer O> ? BoundaryLog<I, O>[] : BoundaryLog[];
37
+ };
38
+ /**
39
+ * Represents the execution record of a task, including input, output, error, and boundary data
40
+ */
41
+ export interface ExecutionRecord<InputType = unknown, OutputType = unknown, B extends Boundaries = Boundaries> {
42
+ /** The input arguments passed to the task */
43
+ input: InputType;
44
+ /** The output returned by the task (if successful) */
45
+ output?: OutputType | null;
46
+ /** The error message if the task failed */
47
+ error?: string;
48
+ /** Boundary execution data */
49
+ boundaries: BoundaryLogsFor<B>;
50
+ }
30
51
  export interface TaskInstanceType<Func extends BaseFunction = BaseFunction, B extends Boundaries = Boundaries> {
52
+ version: string;
31
53
  getMode: () => Mode;
32
54
  setMode: (mode: Mode) => void;
33
55
  setSchema: (base: Schema<Record<string, SchemaType>>) => void;
@@ -48,7 +70,7 @@ export interface TaskInstanceType<Func extends BaseFunction = BaseFunction, B ex
48
70
  resetMock: <K extends keyof B>(name: K) => void;
49
71
  resetMocks: () => void;
50
72
  run: (argv?: Parameters<Func>[0]) => Promise<ReturnType<Func>>;
51
- safeRun: (argv?: Parameters<Func>[0]) => Promise<[Error | null, ReturnType<Func> | null, Record<string, unknown> | null]>;
73
+ safeRun: (argv?: Parameters<Func>[0]) => Promise<[ReturnType<Func> | null, Error | null, ExecutionRecord<Parameters<Func>[0], ReturnType<Func>, B>]>;
52
74
  }
53
75
  export type InferSchemaType<S> = S extends Schema<any> ? InferSchema<S> : Record<string, unknown>;
54
76
  export type TaskFunction<S, B extends Boundaries> = (argv: InferSchemaType<S>, boundaries: WrappedBoundaries<B>) => Promise<any>;
@@ -58,6 +80,7 @@ type BoundaryData = Array<{
58
80
  }>;
59
81
  export declare const Task: {
60
82
  new <B extends Boundaries = Boundaries, Func extends BaseFunction = BaseFunction>(fn: Func, conf?: TaskConfig<B>): {
83
+ version: string;
61
84
  _fn: Func;
62
85
  _mode: Mode;
63
86
  _coolDown: number;
@@ -104,7 +127,7 @@ export declare const Task: {
104
127
  mode?: Mode;
105
128
  }): WrappedBoundaries<B>;
106
129
  asBoundary(): (args: Parameters<Func>[0]) => Promise<ReturnType<Func>>;
107
- safeRun(argv?: Parameters<Func>[0]): Promise<[Error | null, ReturnType<Func> | null, Record<string, unknown> | null]>;
130
+ safeRun(argv?: Parameters<Func>[0]): Promise<[ReturnType<Func> | null, Error | null, ExecutionRecord<Parameters<Func>[0], ReturnType<Func>, B>]>;
108
131
  run(argv?: Parameters<Func>[0]): Promise<ReturnType<Func>>;
109
132
  };
110
133
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -13,6 +13,7 @@ const Task = class Task {
13
13
  boundariesData: undefined
14
14
  }) {
15
15
  var _a, _b, _c;
16
+ this.version = '0.1.7';
16
17
  this._accumulatedBoundariesData = {};
17
18
  // For storing mocks
18
19
  this._boundaryMocks = {};
@@ -173,27 +174,11 @@ const Task = class Task {
173
174
  }
174
175
  async safeRun(argv) {
175
176
  var _a;
176
- // Handle schema validation
177
- if (this._schema) {
178
- try {
179
- const validation = this._schema.safeParse(argv);
180
- if (!validation.success) {
181
- const errorDetails = (_a = validation.error) === null || _a === void 0 ? void 0 : _a.errors.map(err => `${err.path.join('.')}: ${err.message}`).join(', ');
182
- const errorMessage = errorDetails
183
- ? `Invalid input on: ${errorDetails}`
184
- : 'Invalid input';
185
- // Emit the validation error
186
- this.emit({
187
- input: argv,
188
- error: errorMessage
189
- });
190
- return [new Error(errorMessage), null, null];
191
- }
192
- }
193
- catch (error) {
194
- return [error instanceof Error ? error : new Error(String(error)), null, null];
195
- }
196
- }
177
+ // Initialize log item
178
+ const logItem = {
179
+ input: argv,
180
+ boundaries: {}
181
+ };
197
182
  // Create fresh boundaries for this execution
198
183
  const executionBoundaries = this._createBounderies({
199
184
  definition: this._boundariesDefinition,
@@ -205,67 +190,64 @@ const Task = class Task {
205
190
  const boundary = executionBoundaries[name];
206
191
  boundary.startRun();
207
192
  }
208
- try {
209
- // Execute the task function
210
- const output = await this._fn(argv, executionBoundaries);
211
- // Process boundary data after successful execution
212
- const boundariesRunLog = {};
213
- for (const name in executionBoundaries) {
214
- const boundary = executionBoundaries[name];
215
- const runData = boundary.getRunData();
216
- // Add to the run log
217
- boundariesRunLog[name] = runData;
218
- // Accumulate in the task's total boundaries data
219
- if (!this._accumulatedBoundariesData[name]) {
220
- this._accumulatedBoundariesData[name] = [];
221
- }
222
- // Get the current accumulated data for this boundary
223
- const currentData = this._accumulatedBoundariesData[name];
224
- // Add the new run data
225
- if (Array.isArray(runData) && runData.length > 0) {
226
- // Cast the run data to the correct type
227
- this._accumulatedBoundariesData[name] = [...currentData, ...runData];
193
+ // Handle schema validation
194
+ if (this._schema) {
195
+ const validation = this._schema.safeParse(argv);
196
+ if (!validation.success) {
197
+ const errorDetails = (_a = validation.error) === null || _a === void 0 ? void 0 : _a.errors.map(err => `${err.path.join('.')}: ${err.message}`).join(', ');
198
+ const errorMessage = errorDetails
199
+ ? `Invalid input on: ${errorDetails}`
200
+ : 'Invalid input';
201
+ logItem.error = errorMessage;
202
+ logItem.boundaries = {};
203
+ // Add boundary elements empty
204
+ for (const name in executionBoundaries) {
205
+ logItem.boundaries[name] = [];
228
206
  }
207
+ this.emit(logItem);
208
+ return [null, new Error(errorMessage), logItem];
229
209
  }
230
- // Emit the success event with boundary data
231
- this.emit({
232
- input: argv,
233
- output,
234
- boundaries: boundariesRunLog
235
- });
236
- return [null, output, boundariesRunLog];
237
210
  }
238
- catch (error) {
239
- // Process boundary data after error
240
- const boundariesRunLog = {};
241
- for (const name in executionBoundaries) {
242
- const boundary = executionBoundaries[name];
243
- const runData = boundary.getRunData();
244
- // Add to the run log
245
- boundariesRunLog[name] = runData;
246
- // Accumulate in the task's total boundaries data
247
- if (!this._accumulatedBoundariesData[name]) {
248
- this._accumulatedBoundariesData[name] = [];
249
- }
250
- // Get the current accumulated data for this boundary
251
- const currentData = this._accumulatedBoundariesData[name];
252
- // Add the new run data
253
- if (Array.isArray(runData) && runData.length > 0) {
254
- // Cast the run data to the correct type
255
- this._accumulatedBoundariesData[name] = [...currentData, ...runData];
256
- }
211
+ let output = null;
212
+ let error = null;
213
+ try {
214
+ // Execute the task function
215
+ output = await this._fn(argv, executionBoundaries);
216
+ logItem.output = output;
217
+ }
218
+ catch (caughtError) {
219
+ const errorMessage = caughtError instanceof Error ? caughtError.message : String(caughtError);
220
+ logItem.error = errorMessage;
221
+ error = new Error(errorMessage);
222
+ }
223
+ // Process boundary data after execution (both success and error cases)
224
+ const boundariesRunLog = {};
225
+ for (const name in executionBoundaries) {
226
+ const boundary = executionBoundaries[name];
227
+ const runData = boundary.getRunData();
228
+ // Add to the run log
229
+ boundariesRunLog[name] = runData;
230
+ // Accumulate in the task's total boundaries data
231
+ if (!this._accumulatedBoundariesData[name]) {
232
+ this._accumulatedBoundariesData[name] = [];
233
+ }
234
+ // Get the current accumulated data for this boundary
235
+ const currentData = this._accumulatedBoundariesData[name];
236
+ // Add the new run data
237
+ if (Array.isArray(runData) && runData.length > 0) {
238
+ // Cast the run data to the correct type
239
+ this._accumulatedBoundariesData[name] = [...currentData, ...runData];
257
240
  }
258
- // Emit the error event with boundary data
259
- this.emit({
260
- input: argv,
261
- error: error instanceof Error ? error.message : String(error),
262
- boundaries: boundariesRunLog
263
- });
264
- return [error instanceof Error ? error : new Error(String(error)), null, boundariesRunLog];
265
241
  }
242
+ // Set boundaries in log item before emitting
243
+ logItem.boundaries = boundariesRunLog;
244
+ // Emit the log item
245
+ this.emit(logItem);
246
+ // Return the error, output and log item
247
+ return [output, error, logItem];
266
248
  }
267
249
  async run(argv) {
268
- const [error, result] = await this.safeRun(argv);
250
+ const [result, error] = await this.safeRun(argv);
269
251
  if (error) {
270
252
  throw error;
271
253
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const index_1 = require("../index");
4
4
  describe('Task safeRun tests', () => {
5
- it('returns [null, result, boundaryLogs] on successful execution', async () => {
5
+ it('returns [result, null, record] on successful execution', async () => {
6
6
  // Create a simple schema
7
7
  const schema = new index_1.Schema({
8
8
  value: index_1.Schema.number()
@@ -19,14 +19,20 @@ describe('Task safeRun tests', () => {
19
19
  return { result, success: true };
20
20
  });
21
21
  // Call safeRun with valid input
22
- const [error, result, boundaryLogs] = await successTask.safeRun({ value: 5 });
22
+ const [result, error, record] = await successTask.safeRun({ value: 5 });
23
23
  // Verify success case
24
24
  expect(error).toBeNull();
25
25
  expect(result).toEqual({ result: 10, success: true });
26
- expect(boundaryLogs).not.toBeNull();
27
- expect(boundaryLogs).toHaveProperty('fetchData');
26
+ expect(record).not.toBeNull();
27
+ expect(record).toHaveProperty('boundaries.fetchData');
28
+ expect(record.boundaries.fetchData).toHaveLength(1);
29
+ // useful to check types on record
30
+ const data = record.boundaries.fetchData[0];
31
+ expect(data.input).toEqual([5]);
32
+ expect(data.output).toEqual(10);
33
+ expect(data.error).toBeUndefined();
28
34
  });
29
- it('returns [error, null, boundaryLogs] on failed execution', async () => {
35
+ it('returns [null, error, record] on failed execution', async () => {
30
36
  // Create a simple schema
31
37
  const schema = new index_1.Schema({
32
38
  value: index_1.Schema.number()
@@ -46,15 +52,23 @@ describe('Task safeRun tests', () => {
46
52
  return { result, success: true };
47
53
  });
48
54
  // Call safeRun with problematic input that will cause an error
49
- const [error, result, boundaryLogs] = await errorTask.safeRun({ value: -5 });
55
+ const [result, error, record] = await errorTask.safeRun({ value: -5 });
50
56
  // Verify error case
51
- expect(error).toBeInstanceOf(Error);
52
- expect(error === null || error === void 0 ? void 0 : error.message).toContain('Value cannot be negative');
57
+ expect(error).not.toBeNull();
58
+ expect(error instanceof Error).toBe(true);
59
+ if (error instanceof Error) {
60
+ expect(error.message).toContain('Value cannot be negative');
61
+ }
53
62
  expect(result).toBeNull();
54
- expect(boundaryLogs).not.toBeNull();
55
- expect(boundaryLogs).toHaveProperty('fetchData');
63
+ expect(record).not.toBeNull();
64
+ expect(record).toHaveProperty('boundaries.fetchData');
65
+ expect(record.boundaries.fetchData).toHaveLength(1);
66
+ const data = record.boundaries.fetchData[0];
67
+ expect(data.input).toEqual([-5]);
68
+ expect(data.error).toContain('Value cannot be negative');
69
+ expect(data.output).toBeUndefined();
56
70
  });
57
- it('returns [error, null, null] on schema validation failure', async () => {
71
+ it('returns [null, error, record] on schema validation failure', async () => {
58
72
  // Create a schema that requires a positive number
59
73
  const schema = new index_1.Schema({
60
74
  value: index_1.Schema.number().min(1, 'Value must be positive')
@@ -71,12 +85,20 @@ describe('Task safeRun tests', () => {
71
85
  return { result, success: true };
72
86
  });
73
87
  // Call safeRun with invalid input that will fail schema validation
74
- const [error, result, boundaryLogs] = await validationTask.safeRun({ value: 0 });
88
+ const [result, error, record] = await validationTask.safeRun({ value: 0 });
75
89
  // Verify validation error case
76
90
  expect(error).toBeInstanceOf(Error);
77
- expect(error === null || error === void 0 ? void 0 : error.message).toContain('Value must be positive');
91
+ expect(error instanceof Error).toBe(true);
92
+ if (error instanceof Error) {
93
+ expect(error.message).toContain('Value must be positive');
94
+ }
78
95
  expect(result).toBeNull();
79
- expect(boundaryLogs).toBeNull(); // No boundary calls were made due to validation failure
96
+ expect(record).not.toBeNull();
97
+ expect(record.input).toEqual({ value: 0 });
98
+ expect(record.error).toContain('Value must be positive');
99
+ expect(record.boundaries).toEqual({
100
+ fetchData: []
101
+ });
80
102
  });
81
103
  it('properly calls the listener with safeRun and run', async () => {
82
104
  // Create a schema
@@ -106,12 +128,18 @@ describe('Task safeRun tests', () => {
106
128
  // First call should be for safeRun with value 10
107
129
  expect(originalListener).toHaveBeenNthCalledWith(1, expect.objectContaining({
108
130
  input: { value: 10 },
109
- output: 20
131
+ output: 20,
132
+ boundaries: {
133
+ fetchData: expect.any(Array)
134
+ }
110
135
  }));
111
136
  // Second call should be for run with value 20
112
137
  expect(originalListener).toHaveBeenNthCalledWith(2, expect.objectContaining({
113
138
  input: { value: 20 },
114
- output: 40
139
+ output: 40,
140
+ boundaries: {
141
+ fetchData: expect.any(Array)
142
+ }
115
143
  }));
116
144
  });
117
145
  it('handles multiple boundary calls correctly', async () => {
@@ -135,25 +163,23 @@ describe('Task safeRun tests', () => {
135
163
  return { doubled, total };
136
164
  });
137
165
  // Call safeRun
138
- const [error, result, boundaryLogs] = await multiBoundaryTask.safeRun({ values: [1, 2, 3] });
166
+ const [result, error, record] = await multiBoundaryTask.safeRun({ values: [1, 2, 3] });
139
167
  // Verify success
140
168
  expect(error).toBeNull();
141
169
  expect(result).toEqual({
142
170
  doubled: [2, 4, 6],
143
171
  total: 12
144
172
  });
145
- // Verify boundary logs for both boundaries
146
- expect(boundaryLogs).not.toBeNull();
147
- expect(boundaryLogs).toHaveProperty('doubleValue');
148
- expect(boundaryLogs).toHaveProperty('sumValues');
149
- // Check that doubleValue was called 3 times (once for each input value)
150
- // @ts-expect-error - we know the boundaryLogs is not null here
151
- expect(boundaryLogs.doubleValue).toHaveLength(3);
152
- // Check that sumValues was called once with the doubled values
153
- // @ts-expect-error - we know the boundaryLogs is not null here
154
- expect(boundaryLogs.sumValues).toHaveLength(1);
155
- // @ts-expect-error - we know the boundaryLogs is not null here
156
- expect(boundaryLogs.sumValues[0].input).toEqual([[2, 4, 6]]);
173
+ // Verify record structure
174
+ expect(record).not.toBeNull();
175
+ expect(record).toHaveProperty('boundaries.doubleValue');
176
+ expect(record).toHaveProperty('boundaries.sumValues');
177
+ expect(record.boundaries.doubleValue).toHaveLength(3);
178
+ expect(record.boundaries.sumValues).toHaveLength(1);
179
+ expect(record.boundaries.doubleValue[0]).toEqual({ input: [1], output: 2 });
180
+ expect(record.boundaries.doubleValue[1]).toEqual({ input: [2], output: 4 });
181
+ expect(record.boundaries.doubleValue[2]).toEqual({ input: [3], output: 6 });
182
+ expect(record.boundaries.sumValues[0]).toEqual({ input: [[2, 4, 6]], output: 12 });
157
183
  });
158
184
  });
159
185
  //# sourceMappingURL=safe-run.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"safe-run.test.js","sourceRoot":"","sources":["../../src/test/safe-run.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"safe-run.test.js","sourceRoot":"","sources":["../../src/test/safe-run.test.ts"],"names":[],"mappings":";;AAAA,oCAA6C;AAE7C,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;QACtE,yBAAyB;QACzB,MAAM,MAAM,GAAG,IAAI,cAAM,CAAC;YACxB,KAAK,EAAE,cAAM,CAAC,MAAM,EAAE;SACvB,CAAC,CAAA;QAEF,wBAAwB;QACxB,MAAM,UAAU,GAAG;YACjB,SAAS,EAAE,KAAK,EAAE,KAAa,EAAmB,EAAE;gBAClD,OAAO,KAAK,GAAG,CAAC,CAAA;YAClB,CAAC;SACF,CAAA;QAED,kBAAkB;QAClB,MAAM,WAAW,GAAG,IAAA,kBAAU,EAC5B,MAAM,EACN,UAAU,EACV,KAAK,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE;YACtC,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,CAAA;YACrC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;QAClC,CAAC,CACF,CAAA;QAED,gCAAgC;QAChC,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAA;QAEvE,sBAAsB;QACtB,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAA;QACxB,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;QACrD,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAA;QAC7B,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAA;QACrD,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QAEnD,kCAAkC;QAClC,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;QAC3C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC/B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QAC/B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,aAAa,EAAE,CAAA;IACpC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QACjE,yBAAyB;QACzB,MAAM,MAAM,GAAG,IAAI,cAAM,CAAC;YACxB,KAAK,EAAE,cAAM,CAAC,MAAM,EAAE;SACvB,CAAC,CAAA;QAEF,iEAAiE;QACjE,MAAM,UAAU,GAAG;YACjB,SAAS,EAAE,KAAK,EAAE,KAAa,EAAmB,EAAE;gBAClD,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;oBACd,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;gBAC7C,CAAC;gBACD,OAAO,KAAK,GAAG,CAAC,CAAA;YAClB,CAAC;SACF,CAAA;QAED,kBAAkB;QAClB,MAAM,SAAS,GAAG,IAAA,kBAAU,EAC1B,MAAM,EACN,UAAU,EACV,KAAK,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE;YACtC,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,CAAA;YACrC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;QAClC,CAAC,CACF,CAAA;QAED,+DAA+D;QAC/D,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAA;QAEtE,oBAAoB;QACpB,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAA;QAC5B,MAAM,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACzC,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAA;QAC7D,CAAC;QACD,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAA;QACzB,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAA;QAC7B,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAA;QACrD,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QAEnD,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;QAC3C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAChC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAA;QACxD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CAAA;IACrC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;QAC1E,kDAAkD;QAClD,MAAM,MAAM,GAAG,IAAI,cAAM,CAAC;YACxB,KAAK,EAAE,cAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,wBAAwB,CAAC;SACxD,CAAC,CAAA;QAEF,wBAAwB;QACxB,MAAM,UAAU,GAAG;YACjB,SAAS,EAAE,KAAK,EAAE,KAAa,EAAmB,EAAE;gBAClD,OAAO,KAAK,GAAG,CAAC,CAAA;YAClB,CAAC;SACF,CAAA;QAED,kBAAkB;QAClB,MAAM,cAAc,GAAG,IAAA,kBAAU,EAC/B,MAAM,EACN,UAAU,EACV,KAAK,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE;YACtC,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,CAAA;YACrC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;QAClC,CAAC,CACF,CAAA;QAED,mEAAmE;QACnE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAA;QAE1E,+BAA+B;QAC/B,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;QACnC,MAAM,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACzC,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAA;QAC3D,CAAC;QACD,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAA;QACzB,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAA;QAC7B,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAA;QAC1C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAA;QACxD,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC;YAChC,SAAS,EAAE,EAAE;SACd,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAChE,kBAAkB;QAClB,MAAM,MAAM,GAAG,IAAI,cAAM,CAAC;YACxB,KAAK,EAAE,cAAM,CAAC,MAAM,EAAE;SACvB,CAAC,CAAA;QAEF,wBAAwB;QACxB,MAAM,UAAU,GAAG;YACjB,SAAS,EAAE,KAAK,EAAE,KAAa,EAAmB,EAAE;gBAClD,OAAO,KAAK,GAAG,CAAC,CAAA;YAClB,CAAC;SACF,CAAA;QAED,kBAAkB;QAClB,MAAM,YAAY,GAAG,IAAA,kBAAU,EAC7B,MAAM,EACN,UAAU,EACV,KAAK,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE;YACtC,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,CAAA;YACrC,OAAO,MAAM,CAAA;QACf,CAAC,CACF,CAAA;QAED,yBAAyB;QACzB,MAAM,gBAAgB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;QAClC,YAAY,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAA;QAE1C,oDAAoD;QACpD,MAAM,YAAY,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAA;QAEzC,8EAA8E;QAC9E,MAAM,YAAY,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAA;QAErC,8DAA8D;QAC9D,MAAM,CAAC,gBAAgB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;QAEjD,iDAAiD;QACjD,MAAM,CAAC,gBAAgB,CAAC,CAAC,uBAAuB,CAC9C,CAAC,EACD,MAAM,CAAC,gBAAgB,CAAC;YACtB,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;YACpB,MAAM,EAAE,EAAE;YACV,UAAU,EAAE;gBACV,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;aAC7B;SACF,CAAC,CACH,CAAA;QAED,8CAA8C;QAC9C,MAAM,CAAC,gBAAgB,CAAC,CAAC,uBAAuB,CAC9C,CAAC,EACD,MAAM,CAAC,gBAAgB,CAAC;YACtB,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;YACpB,MAAM,EAAE,EAAE;YACV,UAAU,EAAE;gBACV,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;aAC7B;SACF,CAAC,CACH,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,kBAAkB;QAClB,MAAM,MAAM,GAAG,IAAI,cAAM,CAAC;YACxB,MAAM,EAAE,cAAM,CAAC,KAAK,CAAC,cAAM,CAAC,MAAM,EAAE,CAAC;SACtC,CAAC,CAAA;QAEF,6BAA6B;QAC7B,MAAM,UAAU,GAAG;YACjB,WAAW,EAAE,KAAK,EAAE,KAAa,EAAmB,EAAE;gBACpD,OAAO,KAAK,GAAG,CAAC,CAAA;YAClB,CAAC;YACD,SAAS,EAAE,KAAK,EAAE,MAAgB,EAAmB,EAAE;gBACrD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,CAAA;YAClD,CAAC;SACF,CAAA;QAED,8CAA8C;QAC9C,MAAM,iBAAiB,GAAG,IAAA,kBAAU,EAClC,MAAM,EACN,UAAU,EACV,KAAK,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE;YACpD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAC1E,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,CAAA;YACtC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;QAC3B,CAAC,CACF,CAAA;QAED,eAAe;QACf,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAA;QAEtF,iBAAiB;QACjB,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAA;QACxB,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAClB,KAAK,EAAE,EAAE;SACV,CAAC,CAAA;QAEF,0BAA0B;QAC1B,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAA;QAC7B,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,wBAAwB,CAAC,CAAA;QACvD,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAA;QAErD,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QACrD,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QACnD,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAA;QAC3E,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAA;QAC3E,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAA;QAC3E,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAA;IACpF,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forgehive/task",
3
- "version": "0.1.6",
3
+ "version": "0.1.7",
4
4
  "license": "MIT",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",
package/src/index.ts CHANGED
@@ -38,7 +38,37 @@ export interface TaskRecord<InputType = unknown, OutputType = unknown> {
38
38
  boundaries?: Record<string, unknown>;
39
39
  }
40
40
 
41
+ // Make BoundaryLog generic
42
+ export type BoundaryLog<I extends unknown[] = unknown[], O = unknown> = {
43
+ input: I
44
+ output: O | null
45
+ error: string | null
46
+ }
47
+
48
+ // Mapped type for boundaries
49
+ export type BoundaryLogsFor<B extends Boundaries> = {
50
+ [K in keyof B]: B[K] extends (...args: infer I) => Promise<infer O>
51
+ ? BoundaryLog<I, O>[]
52
+ : BoundaryLog[]
53
+ }
54
+
55
+ /**
56
+ * Represents the execution record of a task, including input, output, error, and boundary data
57
+ */
58
+ export interface ExecutionRecord<InputType = unknown, OutputType = unknown, B extends Boundaries = Boundaries> {
59
+ /** The input arguments passed to the task */
60
+ input: InputType
61
+ /** The output returned by the task (if successful) */
62
+ output?: OutputType | null
63
+ /** The error message if the task failed */
64
+ error?: string
65
+ /** Boundary execution data */
66
+ boundaries: BoundaryLogsFor<B>
67
+ }
68
+
41
69
  export interface TaskInstanceType<Func extends BaseFunction = BaseFunction, B extends Boundaries = Boundaries> {
70
+ version: string
71
+
42
72
  getMode: () => Mode
43
73
  setMode: (mode: Mode) => void
44
74
  setSchema: (base: Schema<Record<string, SchemaType>>) => void
@@ -68,7 +98,7 @@ export interface TaskInstanceType<Func extends BaseFunction = BaseFunction, B ex
68
98
  resetMocks: () => void
69
99
 
70
100
  run: (argv?: Parameters<Func>[0]) => Promise<ReturnType<Func>>
71
- safeRun: (argv?: Parameters<Func>[0]) => Promise<[Error | null, ReturnType<Func> | null, Record<string, unknown> | null]>
101
+ safeRun: (argv?: Parameters<Func>[0]) => Promise<[ReturnType<Func> | null, Error | null, ExecutionRecord<Parameters<Func>[0], ReturnType<Func>, B>]>
72
102
  }
73
103
 
74
104
  // Helper type to infer schema type
@@ -87,6 +117,8 @@ export const Task = class Task<
87
117
  B extends Boundaries = Boundaries,
88
118
  Func extends BaseFunction = BaseFunction
89
119
  > implements TaskInstanceType<Func, B> {
120
+ public version: string = '0.1.7'
121
+
90
122
  _fn: Func
91
123
  _mode: Mode
92
124
  _coolDown: number
@@ -303,31 +335,15 @@ export const Task = class Task<
303
335
  }
304
336
  }
305
337
 
306
- async safeRun (argv?: Parameters<Func>[0]): Promise<[Error | null, ReturnType<Func> | null, Record<string, unknown> | null]> {
307
- // Handle schema validation
308
- if (this._schema) {
309
- try {
310
- const validation = this._schema.safeParse(argv)
311
- if (!validation.success) {
312
- const errorDetails = validation.error?.errors.map(err =>
313
- `${err.path.join('.')}: ${err.message}`
314
- ).join(', ')
315
-
316
- const errorMessage = errorDetails
317
- ? `Invalid input on: ${errorDetails}`
318
- : 'Invalid input'
319
-
320
- // Emit the validation error
321
- this.emit({
322
- input: argv,
323
- error: errorMessage
324
- })
325
-
326
- return [new Error(errorMessage), null, null]
327
- }
328
- } catch (error) {
329
- return [error instanceof Error ? error : new Error(String(error)), null, null]
330
- }
338
+ async safeRun (argv?: Parameters<Func>[0]): Promise<[
339
+ ReturnType<Func> | null,
340
+ Error | null,
341
+ ExecutionRecord<Parameters<Func>[0], ReturnType<Func>, B>
342
+ ]> {
343
+ // Initialize log item
344
+ const logItem: ExecutionRecord<Parameters<Func>[0], ReturnType<Func>, B> = {
345
+ input: argv as Parameters<Func>[0],
346
+ boundaries: {} as BoundaryLogsFor<B>
331
347
  }
332
348
 
333
349
  // Create fresh boundaries for this execution
@@ -343,85 +359,85 @@ export const Task = class Task<
343
359
  boundary.startRun()
344
360
  }
345
361
 
362
+ // Handle schema validation
363
+ if (this._schema) {
364
+ const validation = this._schema.safeParse(argv)
365
+ if (!validation.success) {
366
+ const errorDetails = validation.error?.errors.map(err =>
367
+ `${err.path.join('.')}: ${err.message}`
368
+ ).join(', ')
369
+
370
+ const errorMessage = errorDetails
371
+ ? `Invalid input on: ${errorDetails}`
372
+ : 'Invalid input'
373
+
374
+ logItem.error = errorMessage
375
+ logItem.boundaries = {} as BoundaryLogsFor<B>
376
+
377
+ // Add boundary elements empty
378
+ for (const name in executionBoundaries) {
379
+ logItem.boundaries[name as keyof B] = [] as unknown as BoundaryLogsFor<B>[typeof name]
380
+ }
381
+
382
+ this.emit(logItem)
383
+ return [null, new Error(errorMessage), logItem]
384
+ }
385
+ }
386
+
387
+ let output: ReturnType<Func> | null = null
388
+ let error: Error | null = null
389
+
346
390
  try {
347
391
  // Execute the task function
348
- const output = await this._fn(
392
+ output = await this._fn(
349
393
  argv as Parameters<Func>[0],
350
394
  executionBoundaries as unknown as Parameters<Func>[1]
351
395
  )
352
396
 
353
- // Process boundary data after successful execution
354
- const boundariesRunLog: Record<string, unknown> = {}
355
-
356
- for (const name in executionBoundaries) {
357
- const boundary = executionBoundaries[name]
358
- const runData = boundary.getRunData()
397
+ logItem.output = output
398
+ } catch (caughtError) {
399
+ const errorMessage = caughtError instanceof Error ? caughtError.message : String(caughtError)
400
+ logItem.error = errorMessage
401
+ error = new Error(errorMessage)
402
+ }
359
403
 
360
- // Add to the run log
361
- boundariesRunLog[name] = runData
404
+ // Process boundary data after execution (both success and error cases)
405
+ const boundariesRunLog: BoundaryLogsFor<B> = {} as BoundaryLogsFor<B>
362
406
 
363
- // Accumulate in the task's total boundaries data
364
- if (!this._accumulatedBoundariesData[name]) {
365
- this._accumulatedBoundariesData[name] = []
366
- }
407
+ for (const name in executionBoundaries) {
408
+ const boundary = executionBoundaries[name]
409
+ const runData = boundary.getRunData()
367
410
 
368
- // Get the current accumulated data for this boundary
369
- const currentData = this._accumulatedBoundariesData[name]
411
+ // Add to the run log
412
+ boundariesRunLog[name as keyof B] = runData as unknown as BoundaryLogsFor<B>[typeof name]
370
413
 
371
- // Add the new run data
372
- if (Array.isArray(runData) && runData.length > 0) {
373
- // Cast the run data to the correct type
374
- this._accumulatedBoundariesData[name] = [...currentData, ...(runData as BoundaryData)]
375
- }
414
+ // Accumulate in the task's total boundaries data
415
+ if (!this._accumulatedBoundariesData[name]) {
416
+ this._accumulatedBoundariesData[name] = []
376
417
  }
377
418
 
378
- // Emit the success event with boundary data
379
- this.emit({
380
- input: argv,
381
- output,
382
- boundaries: boundariesRunLog
383
- })
419
+ // Get the current accumulated data for this boundary
420
+ const currentData = this._accumulatedBoundariesData[name]
384
421
 
385
- return [null, output, boundariesRunLog]
386
- } catch (error) {
387
- // Process boundary data after error
388
- const boundariesRunLog: Record<string, unknown> = {}
389
-
390
- for (const name in executionBoundaries) {
391
- const boundary = executionBoundaries[name]
392
- const runData = boundary.getRunData()
393
-
394
- // Add to the run log
395
- boundariesRunLog[name] = runData
396
-
397
- // Accumulate in the task's total boundaries data
398
- if (!this._accumulatedBoundariesData[name]) {
399
- this._accumulatedBoundariesData[name] = []
400
- }
401
-
402
- // Get the current accumulated data for this boundary
403
- const currentData = this._accumulatedBoundariesData[name]
404
-
405
- // Add the new run data
406
- if (Array.isArray(runData) && runData.length > 0) {
407
- // Cast the run data to the correct type
408
- this._accumulatedBoundariesData[name] = [...currentData, ...(runData as BoundaryData)]
409
- }
422
+ // Add the new run data
423
+ if (Array.isArray(runData) && runData.length > 0) {
424
+ // Cast the run data to the correct type
425
+ this._accumulatedBoundariesData[name] = [...currentData, ...(runData as BoundaryData)]
410
426
  }
427
+ }
411
428
 
412
- // Emit the error event with boundary data
413
- this.emit({
414
- input: argv,
415
- error: error instanceof Error ? error.message : String(error),
416
- boundaries: boundariesRunLog
417
- })
429
+ // Set boundaries in log item before emitting
430
+ logItem.boundaries = boundariesRunLog
418
431
 
419
- return [error instanceof Error ? error : new Error(String(error)), null, boundariesRunLog]
420
- }
432
+ // Emit the log item
433
+ this.emit(logItem)
434
+
435
+ // Return the error, output and log item
436
+ return [output, error, logItem]
421
437
  }
422
438
 
423
439
  async run (argv?: Parameters<Func>[0]): Promise<ReturnType<Func>> {
424
- const [error, result] = await this.safeRun(argv)
440
+ const [result, error] = await this.safeRun(argv)
425
441
 
426
442
  if (error) {
427
443
  throw error
@@ -1,7 +1,7 @@
1
1
  import { createTask, Schema } from '../index'
2
2
 
3
3
  describe('Task safeRun tests', () => {
4
- it('returns [null, result, boundaryLogs] on successful execution', async () => {
4
+ it('returns [result, null, record] on successful execution', async () => {
5
5
  // Create a simple schema
6
6
  const schema = new Schema({
7
7
  value: Schema.number()
@@ -25,16 +25,23 @@ describe('Task safeRun tests', () => {
25
25
  )
26
26
 
27
27
  // Call safeRun with valid input
28
- const [error, result, boundaryLogs] = await successTask.safeRun({ value: 5 })
28
+ const [result, error, record] = await successTask.safeRun({ value: 5 })
29
29
 
30
30
  // Verify success case
31
31
  expect(error).toBeNull()
32
32
  expect(result).toEqual({ result: 10, success: true })
33
- expect(boundaryLogs).not.toBeNull()
34
- expect(boundaryLogs).toHaveProperty('fetchData')
33
+ expect(record).not.toBeNull()
34
+ expect(record).toHaveProperty('boundaries.fetchData')
35
+ expect(record.boundaries.fetchData).toHaveLength(1)
36
+
37
+ // useful to check types on record
38
+ const data = record.boundaries.fetchData[0]
39
+ expect(data.input).toEqual([5])
40
+ expect(data.output).toEqual(10)
41
+ expect(data.error).toBeUndefined()
35
42
  })
36
43
 
37
- it('returns [error, null, boundaryLogs] on failed execution', async () => {
44
+ it('returns [null, error, record] on failed execution', async () => {
38
45
  // Create a simple schema
39
46
  const schema = new Schema({
40
47
  value: Schema.number()
@@ -61,17 +68,26 @@ describe('Task safeRun tests', () => {
61
68
  )
62
69
 
63
70
  // Call safeRun with problematic input that will cause an error
64
- const [error, result, boundaryLogs] = await errorTask.safeRun({ value: -5 })
71
+ const [result, error, record] = await errorTask.safeRun({ value: -5 })
65
72
 
66
73
  // Verify error case
67
- expect(error).toBeInstanceOf(Error)
68
- expect(error?.message).toContain('Value cannot be negative')
74
+ expect(error).not.toBeNull()
75
+ expect(error instanceof Error).toBe(true)
76
+ if (error instanceof Error) {
77
+ expect(error.message).toContain('Value cannot be negative')
78
+ }
69
79
  expect(result).toBeNull()
70
- expect(boundaryLogs).not.toBeNull()
71
- expect(boundaryLogs).toHaveProperty('fetchData')
80
+ expect(record).not.toBeNull()
81
+ expect(record).toHaveProperty('boundaries.fetchData')
82
+ expect(record.boundaries.fetchData).toHaveLength(1)
83
+
84
+ const data = record.boundaries.fetchData[0]
85
+ expect(data.input).toEqual([-5])
86
+ expect(data.error).toContain('Value cannot be negative')
87
+ expect(data.output).toBeUndefined()
72
88
  })
73
89
 
74
- it('returns [error, null, null] on schema validation failure', async () => {
90
+ it('returns [null, error, record] on schema validation failure', async () => {
75
91
  // Create a schema that requires a positive number
76
92
  const schema = new Schema({
77
93
  value: Schema.number().min(1, 'Value must be positive')
@@ -95,13 +111,21 @@ describe('Task safeRun tests', () => {
95
111
  )
96
112
 
97
113
  // Call safeRun with invalid input that will fail schema validation
98
- const [error, result, boundaryLogs] = await validationTask.safeRun({ value: 0 })
114
+ const [result, error, record] = await validationTask.safeRun({ value: 0 })
99
115
 
100
116
  // Verify validation error case
101
117
  expect(error).toBeInstanceOf(Error)
102
- expect(error?.message).toContain('Value must be positive')
118
+ expect(error instanceof Error).toBe(true)
119
+ if (error instanceof Error) {
120
+ expect(error.message).toContain('Value must be positive')
121
+ }
103
122
  expect(result).toBeNull()
104
- expect(boundaryLogs).toBeNull() // No boundary calls were made due to validation failure
123
+ expect(record).not.toBeNull()
124
+ expect(record.input).toEqual({ value: 0 })
125
+ expect(record.error).toContain('Value must be positive')
126
+ expect(record.boundaries).toEqual({
127
+ fetchData: []
128
+ })
105
129
  })
106
130
 
107
131
  it('properly calls the listener with safeRun and run', async () => {
@@ -145,7 +169,10 @@ describe('Task safeRun tests', () => {
145
169
  1,
146
170
  expect.objectContaining({
147
171
  input: { value: 10 },
148
- output: 20
172
+ output: 20,
173
+ boundaries: {
174
+ fetchData: expect.any(Array)
175
+ }
149
176
  })
150
177
  )
151
178
 
@@ -154,7 +181,10 @@ describe('Task safeRun tests', () => {
154
181
  2,
155
182
  expect.objectContaining({
156
183
  input: { value: 20 },
157
- output: 40
184
+ output: 40,
185
+ boundaries: {
186
+ fetchData: expect.any(Array)
187
+ }
158
188
  })
159
189
  )
160
190
  })
@@ -187,7 +217,7 @@ describe('Task safeRun tests', () => {
187
217
  )
188
218
 
189
219
  // Call safeRun
190
- const [error, result, boundaryLogs] = await multiBoundaryTask.safeRun({ values: [1, 2, 3] })
220
+ const [result, error, record] = await multiBoundaryTask.safeRun({ values: [1, 2, 3] })
191
221
 
192
222
  // Verify success
193
223
  expect(error).toBeNull()
@@ -196,19 +226,16 @@ describe('Task safeRun tests', () => {
196
226
  total: 12
197
227
  })
198
228
 
199
- // Verify boundary logs for both boundaries
200
- expect(boundaryLogs).not.toBeNull()
201
- expect(boundaryLogs).toHaveProperty('doubleValue')
202
- expect(boundaryLogs).toHaveProperty('sumValues')
203
-
204
- // Check that doubleValue was called 3 times (once for each input value)
205
- // @ts-expect-error - we know the boundaryLogs is not null here
206
- expect(boundaryLogs.doubleValue).toHaveLength(3)
207
-
208
- // Check that sumValues was called once with the doubled values
209
- // @ts-expect-error - we know the boundaryLogs is not null here
210
- expect(boundaryLogs.sumValues).toHaveLength(1)
211
- // @ts-expect-error - we know the boundaryLogs is not null here
212
- expect(boundaryLogs.sumValues[0].input).toEqual([[2, 4, 6]])
229
+ // Verify record structure
230
+ expect(record).not.toBeNull()
231
+ expect(record).toHaveProperty('boundaries.doubleValue')
232
+ expect(record).toHaveProperty('boundaries.sumValues')
233
+
234
+ expect(record.boundaries.doubleValue).toHaveLength(3)
235
+ expect(record.boundaries.sumValues).toHaveLength(1)
236
+ expect(record.boundaries.doubleValue[0]).toEqual({ input: [1], output: 2 })
237
+ expect(record.boundaries.doubleValue[1]).toEqual({ input: [2], output: 4 })
238
+ expect(record.boundaries.doubleValue[2]).toEqual({ input: [3], output: 6 })
239
+ expect(record.boundaries.sumValues[0]).toEqual({ input: [[2, 4, 6]], output: 12 })
213
240
  })
214
241
  })