UNPKG

@bitrix24/b24jssdk

Version:

Bitrix24 REST API JavaScript SDK

1 lines 4.25 kB
{"version":3,"file":"sdk-error.mjs","sources":["../../../src/core/sdk-error.ts"],"sourcesContent":["export type SdkErrorDetails = {\n code: string\n description?: string\n status: number\n originalError?: unknown\n}\n\n/**\n * Error in Sdk\n */\nexport class SdkError extends Error {\n public readonly code: string\n protected _status: number\n public readonly timestamp: Date\n public readonly originalError?: unknown\n\n constructor(params: SdkErrorDetails) {\n const message = SdkError.formatErrorMessage(params)\n super(message)\n\n this.name = 'SdkError' as const\n this.code = params.code\n\n this._status = params.status\n this.originalError = params.originalError\n this.timestamp = new Date()\n\n this.cleanErrorStack()\n }\n\n get status(): number {\n return this._status\n }\n\n /**\n * Creates SdkError from exception\n */\n static fromException(error: unknown, context?: {\n code?: string\n status?: number\n }): SdkError {\n if (error instanceof SdkError) return error\n\n return new SdkError({\n code: context?.code || 'JSSDK_INTERNAL_ERROR',\n status: context?.status || 500,\n description: error instanceof Error ? error.message : `${error}`,\n originalError: error\n })\n }\n\n /**\n * Serializes error for logging and debugging\n */\n toJSON() {\n return {\n name: this.name,\n code: this.code,\n message: this.message,\n status: this._status,\n timestamp: this.timestamp.toISOString(),\n stack: this.stack\n }\n }\n\n /**\n * Formats error information for human-readable output\n */\n override toString(): string {\n let output = `[${this.name}] ${this.code} (${this._status}): ${this.message}`\n\n if (this.stack) {\n output += `\\nStack trace:\\n${this.stack}`\n }\n\n return output\n }\n\n protected static formatErrorMessage(params: SdkErrorDetails): string {\n if (!params?.description) {\n return `Internal error`\n }\n\n return `${params.description}`\n }\n\n protected cleanErrorStack() {\n if (typeof this.stack === 'string') {\n this.stack = this.stack\n .split('\\n')\n .filter(line => !line.includes('SdkError.constructor'))\n .join('\\n')\n }\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;AAUO,MAAM,iBAAiB,KAAA,CAAM;AAAA,EAVpC;AAUoC,IAAA,MAAA,CAAA,IAAA,EAAA,UAAA,CAAA;AAAA;AAAA,EAClB,IAAA;AAAA,EACN,OAAA;AAAA,EACM,SAAA;AAAA,EACA,aAAA;AAAA,EAEhB,YAAY,MAAA,EAAyB;AACnC,IAAA,MAAM,OAAA,GAAU,QAAA,CAAS,kBAAA,CAAmB,MAAM,CAAA;AAClD,IAAA,KAAA,CAAM,OAAO,CAAA;AAEb,IAAA,IAAA,CAAK,IAAA,GAAO,UAAA;AACZ,IAAA,IAAA,CAAK,OAAO,MAAA,CAAO,IAAA;AAEnB,IAAA,IAAA,CAAK,UAAU,MAAA,CAAO,MAAA;AACtB,IAAA,IAAA,CAAK,gBAAgB,MAAA,CAAO,aAAA;AAC5B,IAAA,IAAA,CAAK,SAAA,uBAAgB,IAAA,EAAK;AAE1B,IAAA,IAAA,CAAK,eAAA,EAAgB;AAAA,EACvB;AAAA,EAEA,IAAI,MAAA,GAAiB;AACnB,IAAA,OAAO,IAAA,CAAK,OAAA;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,aAAA,CAAc,KAAA,EAAgB,OAAA,EAGxB;AACX,IAAA,IAAI,KAAA,YAAiB,UAAU,OAAO,KAAA;AAEtC,IAAA,OAAO,IAAI,QAAA,CAAS;AAAA,MAClB,IAAA,EAAM,SAAS,IAAA,IAAQ,sBAAA;AAAA,MACvB,MAAA,EAAQ,SAAS,MAAA,IAAU,GAAA;AAAA,MAC3B,aAAa,KAAA,YAAiB,KAAA,GAAQ,KAAA,CAAM,OAAA,GAAU,GAAG,KAAK,CAAA,CAAA;AAAA,MAC9D,aAAA,EAAe;AAAA,KAChB,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKA,MAAA,GAAS;AACP,IAAA,OAAO;AAAA,MACL,MAAM,IAAA,CAAK,IAAA;AAAA,MACX,MAAM,IAAA,CAAK,IAAA;AAAA,MACX,SAAS,IAAA,CAAK,OAAA;AAAA,MACd,QAAQ,IAAA,CAAK,OAAA;AAAA,MACb,SAAA,EAAW,IAAA,CAAK,SAAA,CAAU,WAAA,EAAY;AAAA,MACtC,OAAO,IAAA,CAAK;AAAA,KACd;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKS,QAAA,GAAmB;AAC1B,IAAA,IAAI,MAAA,GAAS,CAAA,CAAA,EAAI,IAAA,CAAK,IAAI,CAAA,EAAA,EAAK,IAAA,CAAK,IAAI,CAAA,EAAA,EAAK,IAAA,CAAK,OAAO,CAAA,GAAA,EAAM,IAAA,CAAK,OAAO,CAAA,CAAA;AAE3E,IAAA,IAAI,KAAK,KAAA,EAAO;AACd,MAAA,MAAA,IAAU;AAAA;AAAA,EAAmB,KAAK,KAAK,CAAA,CAAA;AAAA,IACzC;AAEA,IAAA,OAAO,MAAA;AAAA,EACT;AAAA,EAEA,OAAiB,mBAAmB,MAAA,EAAiC;AACnE,IAAA,IAAI,CAAC,QAAQ,WAAA,EAAa;AACxB,MAAA,OAAO,CAAA,cAAA,CAAA;AAAA,IACT;AAEA,IAAA,OAAO,CAAA,EAAG,OAAO,WAAW,CAAA,CAAA;AAAA,EAC9B;AAAA,EAEU,eAAA,GAAkB;AAC1B,IAAA,IAAI,OAAO,IAAA,CAAK,KAAA,KAAU,QAAA,EAAU;AAClC,MAAA,IAAA,CAAK,KAAA,GAAQ,IAAA,CAAK,KAAA,CACf,KAAA,CAAM,IAAI,CAAA,CACV,MAAA,CAAO,CAAA,IAAA,KAAQ,CAAC,KAAK,QAAA,CAAS,sBAAsB,CAAC,CAAA,CACrD,KAAK,IAAI,CAAA;AAAA,IACd;AAAA,EACF;AACF;;;;"}