export class ZapEHRSdkError extends Error { code: number; constructor({ message, code }: { message: string; code: number }) { super(message); Object.setPrototypeOf(this, ZapEHRSdkError.prototype); this.code = code; this.name = 'ZapEHRSdkError'; } toString(): string { return `${this.name}: ${this.message} (code: ${this.code})`; } } export class ZapEHRFHIRError extends ZapEHRSdkError { // TODO: replace with combined OperationOutcome type when we support R5 cause: Record; constructor({ error, code }: { error: Record; code: number }) { super({ message: 'See cause for details', code }); Object.setPrototypeOf(this, ZapEHRFHIRError.prototype); this.cause = error; this.name = 'ZapEHRFHIRError'; } }