diff --git a/packages/workflow/src/AugmentObject.ts b/packages/workflow/src/AugmentObject.ts index 80a80b905a..b05e761a0d 100644 --- a/packages/workflow/src/AugmentObject.ts +++ b/packages/workflow/src/AugmentObject.ts @@ -90,6 +90,11 @@ export function augmentObject(data: T): T { // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment const value = Reflect.get(target, key, receiver); + + if (typeof value !== 'object' || value === null) return value; + if (value instanceof RegExp) return value.toString(); + if ('toJSON' in value && typeof value.toJSON === 'function') return value.toJSON() as T; + const newValue = augment(value); if (newValue !== value) { Object.assign(newData, { [key]: newValue }); diff --git a/packages/workflow/test/AugmentObject.test.ts b/packages/workflow/test/AugmentObject.test.ts index e9fe6ee948..857114a106 100644 --- a/packages/workflow/test/AugmentObject.test.ts +++ b/packages/workflow/test/AugmentObject.test.ts @@ -233,8 +233,8 @@ describe('AugmentObject', () => { a: 9111, b: '9222', c: 3, - d: date, - r: regexp, + d: date.toJSON(), + r: regexp.toString(), }); });