UNPKG

@bitrix24/b24jssdk

Version:

Bitrix24 REST API JavaScript SDK

1 lines 4.08 kB
{"version":3,"file":"interface-strategy.mjs","sources":["../../../../../../src/core/interaction/batch/processing/interface-strategy.ts"],"sourcesContent":["import type { BatchCommandV3, ICallBatchResult } from '../../../../types/http'\nimport type { BatchPayload } from '../../../../types/payloads'\nimport type { AjaxResult } from '../../../http/ajax-result'\nimport type { RestrictionManager } from '../../../http/limiters/manager'\nimport type { Result } from '../../../result'\nimport { AjaxError } from '../../../http/ajax-error'\n\nexport type GetCommandsOptions = {\n // @memo this regeneration `isHaltOnError` -> !isHaltOnError\n parallelDefaultValue: boolean\n}\n\nexport type ResponseHelper<T> = {\n requestId: string\n parallelDefaultValue: boolean\n response: AjaxResult<BatchPayload<T>>\n // status: number\n // data: BatchPayloadResult<T>\n // time: PayloadTime\n restrictionManager: RestrictionManager\n}\n\nexport type ResultItems<T> = Map<string | number, AjaxResult<T>>\n\nexport interface IProcessingStrategy {\n prepareCommands(calls: unknown, options: GetCommandsOptions): BatchCommandV3[]\n buildCommands(commands: BatchCommandV3[]): unknown\n prepareItems<T>(commands: BatchCommandV3[], responseHelper: ResponseHelper<T>): Promise<ResultItems<T>>\n handleResults<T>(commands: BatchCommandV3[], results: ResultItems<T>, responseHelper: ResponseHelper<T>): Promise<Result<ICallBatchResult<T>>>\n}\n\nexport abstract class AbstractProcessing implements IProcessingStrategy {\n public abstract prepareCommands(calls: unknown, options: GetCommandsOptions): BatchCommandV3[]\n public abstract buildCommands(commands: BatchCommandV3[]): unknown\n\n // region prepareItems ////\n public abstract prepareItems<T>(\n commands: BatchCommandV3[],\n responseHelper: ResponseHelper<T>\n ): Promise<ResultItems<T>>\n\n protected abstract _processResponseItem<T>(\n command: BatchCommandV3,\n index: string | number,\n responseHelper: ResponseHelper<T>,\n results: Map<string | number, AjaxResult<T>>\n ): Promise<void>\n // endregion ////\n\n // region handleResults ////\n public abstract handleResults<T>(commands: BatchCommandV3[], results: ResultItems<T>, responseHelper: ResponseHelper<T>): Promise<Result<ICallBatchResult<T>>>\n\n protected abstract _processResponseError<T>(result: Result<ICallBatchResult<T>>, ajaxError: AjaxError, index: string): void\n // endregion ////\n\n // region Tools ////\n protected _getBatchResultByIndex<T>(\n data: T[] | Record<string | number, T> | undefined,\n index: string | number\n ): T | undefined {\n if (!data) return undefined\n\n if (Array.isArray(data)) {\n return data[index as number]\n }\n\n return (data as Record<string | number, T>)[index]\n }\n\n protected _createErrorFromAjaxResult(ajaxResult: AjaxResult): AjaxError {\n if (ajaxResult.hasError('base-error')) {\n return ajaxResult.errors.get('base-error') as AjaxError\n }\n\n return new AjaxError({\n code: 'JSSDK_BATCH_SUB_ERROR',\n description: ajaxResult.getErrorMessages().join('; '),\n status: ajaxResult.getStatus(),\n requestInfo: { ...ajaxResult.getQuery() },\n originalError: ajaxResult.getErrors().next().value\n })\n }\n // endregion ////\n}\n"],"names":[],"mappings":";;;;;;;;;;;;AA+BO,MAAe,kBAAA,CAAkD;AAAA,EA/BxE;AA+BwE,IAAA,MAAA,CAAA,IAAA,EAAA,oBAAA,CAAA;AAAA;AAAA;AAAA;AAAA,EAyB5D,sBAAA,CACR,MACA,KAAA,EACe;AACf,IAAA,IAAI,CAAC,MAAM,OAAO,MAAA;AAElB,IAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,EAAG;AACvB,MAAA,OAAO,KAAK,KAAe,CAAA;AAAA,IAC7B;AAEA,IAAA,OAAQ,KAAoC,KAAK,CAAA;AAAA,EACnD;AAAA,EAEU,2BAA2B,UAAA,EAAmC;AACtE,IAAA,IAAI,UAAA,CAAW,QAAA,CAAS,YAAY,CAAA,EAAG;AACrC,MAAA,OAAO,UAAA,CAAW,MAAA,CAAO,GAAA,CAAI,YAAY,CAAA;AAAA,IAC3C;AAEA,IAAA,OAAO,IAAI,SAAA,CAAU;AAAA,MACnB,IAAA,EAAM,uBAAA;AAAA,MACN,WAAA,EAAa,UAAA,CAAW,gBAAA,EAAiB,CAAE,KAAK,IAAI,CAAA;AAAA,MACpD,MAAA,EAAQ,WAAW,SAAA,EAAU;AAAA,MAC7B,WAAA,EAAa,EAAE,GAAG,UAAA,CAAW,UAAS,EAAE;AAAA,MACxC,aAAA,EAAe,UAAA,CAAW,SAAA,EAAU,CAAE,MAAK,CAAE;AAAA,KAC9C,CAAA;AAAA,EACH;AAAA;AAEF;;;;"}