Handling error call stack with Cause
Hello guys, I have the following Effect , The . The question: would it be make sense and possible to put call stack inside Cause instead of being tagged class property?
Effect.tryPromise({
try: () => client.send(new CommandCtor(args), options ?? {}),
catch: (e) => {
if (e instanceof Error) {
return new SdkError({
message: e.message,
stack: e.stack,
});
}
throw e;
},
});Effect.tryPromise({
try: () => client.send(new CommandCtor(args), options ?? {}),
catch: (e) => {
if (e instanceof Error) {
return new SdkError({
message: e.message,
stack: e.stack,
});
}
throw e;
},
});SdkErrorSdkError here is a tagged class, the ifered signature is Effect.Effect<never, SdkError, ServiceOutputTypes>Effect.Effect<never, SdkError, ServiceOutputTypes> as expected. and in case of failure I'm getting the following cause: {
"_tag": "Failure",
"cause": Object {
"_tag": "Cause",
"errors": Array [
Object {
"message": "Error: {\"message\":\"AWS SDK error wrapper for Error: getaddrinfo ENOTFOUND execute-api.eu-central-1.amazonaws.com\",\"stack\":\"Error: AWS SDK error wrapper for Error: getaddrinfo ENOTFOUND execute-api.eu-central-1.amazonaws.com\\n at asSdkError (/Users/victor/Projects/_own/effect-aws/node_modules/.pnpm/@smithy+middleware-retry@2.0.12/node_modules/@smithy/middleware-retry/dist-cjs/util.js:11:12)\\n at /Users/victor/Projects/_own/effect-aws/node_modules/.pnpm/@smithy+middleware-retry@2.0.12/node_modules/@smithy/middleware-retry/dist-cjs/retryMiddleware.js:35:51\\n at processTicksAndRejections (node:internal/process/task_queues:95:5)\\n at /Users/victor/Projects/_own/effect-aws/node_modules/.pnpm/@aws-sdk+middleware-logger@3.418.0/node_modules/@aws-sdk/middleware-logger/dist-cjs/loggerMiddleware.js:7:26\",\"_tag\":\"SdkError\"}",
"span": undefined,
"stack": undefined,
},
],
}
}{
"_tag": "Failure",
"cause": Object {
"_tag": "Cause",
"errors": Array [
Object {
"message": "Error: {\"message\":\"AWS SDK error wrapper for Error: getaddrinfo ENOTFOUND execute-api.eu-central-1.amazonaws.com\",\"stack\":\"Error: AWS SDK error wrapper for Error: getaddrinfo ENOTFOUND execute-api.eu-central-1.amazonaws.com\\n at asSdkError (/Users/victor/Projects/_own/effect-aws/node_modules/.pnpm/@smithy+middleware-retry@2.0.12/node_modules/@smithy/middleware-retry/dist-cjs/util.js:11:12)\\n at /Users/victor/Projects/_own/effect-aws/node_modules/.pnpm/@smithy+middleware-retry@2.0.12/node_modules/@smithy/middleware-retry/dist-cjs/retryMiddleware.js:35:51\\n at processTicksAndRejections (node:internal/process/task_queues:95:5)\\n at /Users/victor/Projects/_own/effect-aws/node_modules/.pnpm/@aws-sdk+middleware-logger@3.418.0/node_modules/@aws-sdk/middleware-logger/dist-cjs/loggerMiddleware.js:7:26\",\"_tag\":\"SdkError\"}",
"span": undefined,
"stack": undefined,
},
],
}
}