@bitrix24/b24jssdk
Version:
Bitrix24 REST API JavaScript SDK
1 lines • 6.06 kB
Source Map (JSON)
{"version":3,"file":"v2.mjs","sources":["../../../../src/core/http/v2.ts"],"sourcesContent":["import type {\n BatchCommandsArrayUniversal,\n BatchCommandsObjectUniversal,\n BatchNamedCommandsUniversal, BatchRequestEnvelopeV2, ICallBatchOptions, ICallBatchResult,\n TypeHttp\n} from '../../types/http'\nimport type { AuthActions } from '../../types/auth'\nimport type { RestrictionParams } from '../../types/limiters'\nimport type { Result } from '../result'\nimport type { BatchResponsePayload } from '../interaction/batch/abstract-interaction-batch'\nimport { AbstractHttp } from './abstract-http'\nimport { ApiVersion } from '../../types/b24'\nimport { InteractionBatchV2 } from '../interaction/batch/v2'\nimport { ProcessingAsArrayV2 } from '../interaction/batch/processing/v2/as-array'\nimport { ProcessingAsObjectV2 } from '../interaction/batch/processing/v2/as-object'\nimport { AjaxError } from './ajax-error'\n\n/**\n * HTTP transport for Bitrix24 REST API v2.\n *\n * Extends {@link AbstractHttp} with v2-specific batch execution: dispatches\n * `batch` calls through {@link InteractionBatchV2} and selects either\n * {@link ProcessingAsArrayV2} or {@link ProcessingAsObjectV2} depending on\n * the shape of the commands argument.\n *\n * @link https://bitrix24.github.io/b24jssdk/\n */\nexport class HttpV2 extends AbstractHttp implements TypeHttp {\n constructor(\n authActions: AuthActions,\n options?: null | object,\n restrictionParams?: Partial<RestrictionParams>\n ) {\n super(authActions, options, restrictionParams)\n this._version = ApiVersion.v2\n }\n\n // region batch ////\n public async batch<T = unknown>(\n calls: BatchCommandsArrayUniversal | BatchCommandsObjectUniversal | BatchNamedCommandsUniversal,\n options?: ICallBatchOptions\n ): Promise<Result<ICallBatchResult<T>>> {\n const opts = {\n isHaltOnError: true,\n ...options\n }\n\n const requestId = opts.requestId ?? this._requestIdGenerator.getRequestId()\n\n this._logBatchStart(requestId, calls, opts)\n\n const interactionBatch = new InteractionBatchV2({\n requestId,\n parallelDefaultValue: !(opts.isHaltOnError),\n restrictionManager: this._restrictionManager\n })\n\n if (Array.isArray(calls)) {\n interactionBatch.setProcessingStrategy(new ProcessingAsArrayV2())\n } else {\n interactionBatch.setProcessingStrategy(new ProcessingAsObjectV2())\n }\n\n interactionBatch.addCommands(calls)\n\n if (interactionBatch.size > interactionBatch.maxSize) {\n throw new AjaxError({\n code: 'JSSDK_BATCH_TOO_LARGE',\n description: `Batch too large: ${interactionBatch.size} commands (max: ${interactionBatch.maxSize})`,\n status: 400,\n requestInfo: { method: 'batch', params: { cmd: calls }, requestId },\n originalError: null\n })\n }\n\n if (interactionBatch.size === 0) {\n throw new AjaxError({\n code: 'JSSDK_BATCH_EMPTY',\n description: 'Batch must contain at least one command',\n status: 400,\n requestInfo: { method: 'batch', params: { cmd: calls }, requestId },\n originalError: null\n })\n }\n\n // Named rather than inline: this is the batch envelope, not call params —\n // see BatchRequestEnvelopeV2. It reaches `call` through a parameter typed\n // `TypeCallParams`, which accepts it only because of the index signature.\n const envelope: BatchRequestEnvelopeV2 = {\n halt: opts.isHaltOnError ? 1 : 0,\n cmd: interactionBatch.getCommandsForCall()\n }\n\n const responseBatch = await this.call<BatchResponsePayload<T>>(\n 'batch',\n envelope,\n requestId\n )\n\n const response = await interactionBatch.prepareResponse<T>(responseBatch)\n\n // Log the results\n this._logBatchCompletion(\n requestId,\n response.getData()?.result?.size ?? 0,\n response.getErrorMessages().length\n )\n\n return response\n }\n // endregion ////\n}\n"],"names":[],"mappings":"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"}