@bitrix24/b24jssdk
Version:
Bitrix24 REST API JavaScript SDK
1 lines • 6.38 kB
Source Map (JSON)
{"version":3,"file":"ajax-error.mjs","sources":["../../../../src/core/http/ajax-error.ts"],"sourcesContent":["import type { AjaxQuery } from './ajax-result'\nimport type { SdkErrorDetails } from '../sdk-error'\nimport { SdkError } from '../sdk-error'\n\nexport type AnswerError = {\n error: string\n errorDescription: string\n}\n\nexport type AjaxErrorParams = {\n status: number\n answerError: AnswerError\n cause?: Error\n}\n\ntype AjaxErrorDetails = SdkErrorDetails & {\n requestInfo?: Partial<AjaxQuery> & { url?: string }\n}\n\n/**\n * Error requesting RestApi\n */\nexport class AjaxError extends SdkError {\n public readonly requestInfo?: AjaxErrorDetails['requestInfo']\n\n constructor(params: AjaxErrorDetails) {\n // @todo test this\n // @memo get from PullClient.loadConfig\n if (params.code === 'AUTHORIZE_ERROR' || params.code === 'WRONG_AUTH_TYPE') {\n params.status = 403\n }\n\n params.description = AjaxError.formatErrorMessage(params)\n super(params)\n\n this.name = 'AjaxError' as const\n this.requestInfo = params.requestInfo\n\n this.cleanErrorStack()\n }\n\n /**\n * Creates AjaxError from HTTP response\n * @todo add support v3\n */\n static fromResponse(response: {\n status: number\n data?: { error?: string, error_description?: string }\n config?: AjaxErrorDetails['requestInfo']\n }): AjaxError {\n return new AjaxError({\n code: response.data?.error || 'JSSDK_INTERNAL_AJAX_ERROR',\n description: response.data?.error_description,\n status: response.status,\n requestInfo: response.config\n })\n }\n\n /**\n * @inheritDoc\n */\n static override fromException(error: unknown, context?: {\n code?: string\n status?: number\n requestInfo?: AjaxErrorDetails['requestInfo']\n }): AjaxError {\n if (error instanceof AjaxError) return error\n\n return new AjaxError({\n code: context?.code || 'JSSDK_INTERNAL_AJAX_ERROR',\n status: context?.status || 500,\n description: error instanceof Error ? error.message : String(error),\n requestInfo: context?.requestInfo,\n originalError: error\n })\n }\n\n /**\n * @inheritDoc\n */\n override 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 requestInfo: this.requestInfo,\n stack: this.stack\n }\n }\n\n /**\n * @inheritDoc\n */\n override toString(): string {\n let output = `[${this.name}] ${this.code} (${this._status}): ${this.message}`\n\n if (this.requestInfo) {\n output += `\\nRequest: ${this.requestInfo?.requestId ? `[${this.requestInfo.requestId}] ` : ''}${this.requestInfo.method} ${this.requestInfo.url}`\n }\n\n if (this.stack) {\n output += `\\nStack trace:\\n${this.stack}`\n }\n\n return output\n }\n\n /**\n * @inheritDoc\n */\n protected static override formatErrorMessage(params: AjaxErrorDetails): string {\n if (!params?.description) {\n if (\n params.requestInfo?.method\n && params.requestInfo.url\n ) {\n return `${params.code} (on ${params.requestInfo.method}${params.requestInfo?.url ? ' ' + params.requestInfo.url : ''})`\n } else {\n return `Internal ajax error`\n }\n }\n\n return `${params.description}`\n }\n\n /**\n * @inheritDoc\n */\n protected override cleanErrorStack() {\n if (typeof this.stack === 'string') {\n this.stack = this.stack\n .split('\\n')\n .filter(line => !line.includes('AjaxError.constructor'))\n .join('\\n')\n }\n }\n}\n"],"names":[],"mappings":"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"}