function parseOriginalErrMsg(str: string) { try { const json = JSON.parse(str) return json.error } catch (_e) { return str } } export default class SeamlyBaseError extends Error { action = '' langKey = '' originalError?: any originalEvent?: any constructor( originalError?: { payload: { error: any; type: any } message: any error: any }, ...params: undefined[] ) { super(...params) if (Error.captureStackTrace) { Error.captureStackTrace(this, Object.getPrototypeOf(this)) } this.originalError = originalError if (originalError?.payload) { this.originalEvent = originalError this.originalError = originalError.payload.error this.message = `Event of type ${originalError.payload.type} encountered` } if (!this.message && originalError?.message) { const parsedOriginalMessage = parseOriginalErrMsg(originalError.message) this.message = parsedOriginalMessage } if (originalError?.error) { this.originalError = originalError.error } } }