{"version":3,"file":"abstract-batch.mjs","sources":["../../../../src/core/actions/abstract-batch.ts"],"sourcesContent":["import type {\n  BatchCommandsArrayUniversal,\n  BatchCommandsObjectUniversal,\n  BatchNamedCommandsUniversal,\n  ICallBatchResult\n} from '../../types/http'\nimport type { CallBatchResult, IB24BatchOptions } from '../../types/b24'\nimport type { AjaxResult } from '../http/ajax-result'\nimport { AbstractAction } from './abstract-action'\nimport { Result } from '../result'\n\nexport abstract class AbstractBatch extends AbstractAction {\n  protected _addBatchErrorsIfAny(\n    response: Result<ICallBatchResult<any>>,\n    result: Result\n  ): void {\n    if (!response.isSuccess) {\n      for (const [index, error] of response.errors) {\n        result.addError(error, index)\n      }\n    }\n  }\n\n  protected _processBatchResponse<T>(\n    response: Result<ICallBatchResult<T>>,\n    calls: BatchCommandsArrayUniversal | BatchCommandsObjectUniversal | BatchNamedCommandsUniversal,\n    options: IB24BatchOptions\n  ): CallBatchResult<T> {\n    const isArrayCall = Array.isArray(calls)\n\n    if (options.returnAjaxResult) {\n      return this._createBatchResultWithAjax<T>(response, isArrayCall)\n    } else {\n      return this._createBatchResultSimple<T>(response, isArrayCall)\n    }\n  }\n\n  // region BatchResultWithAjax ////\n  protected _createBatchResultWithAjax<T>(\n    response: Result<ICallBatchResult<T>>,\n    isArrayCall: boolean\n  ): CallBatchResult<T> {\n    return isArrayCall\n      ? this._createBatchArrayResult<T>(response)\n      : this._createBatchObjectResult<T>(response)\n  }\n\n  protected _createBatchArrayResult<T>(response: Result<ICallBatchResult<T>>): Result<AjaxResult<T>[]> {\n    const result = new Result<AjaxResult<T>[]>()\n    this._addBatchErrorsIfAny(response, result)\n\n    const dataResult: AjaxResult<T>[] = []\n    for (const [_index, data] of response.getData()!.result!) {\n      dataResult.push(data)\n    }\n\n    return result.setData(dataResult)\n  }\n\n  protected _createBatchObjectResult<T>(response: Result<ICallBatchResult<T>>): Result<Record<string | number, AjaxResult<T>>> {\n    const result = new Result<Record<string | number, AjaxResult<T>>>()\n    this._addBatchErrorsIfAny(response, result)\n\n    const dataResult: Record<string | number, any> = {}\n    for (const [index, data] of response.getData()!.result!) {\n      dataResult[index] = data\n    }\n\n    return result.setData(dataResult)\n  }\n  // endregion ////\n\n  // region BatchResultSimple ////\n  protected _createBatchResultSimple<T>(\n    response: Result<ICallBatchResult<T>>,\n    isArrayCall: boolean\n  ): CallBatchResult<T> {\n    const result = new Result<T>()\n    this._addBatchErrorsIfAny(response, result)\n    return result.setData(\n      this._extractBatchSimpleData<T>(response, isArrayCall)\n    )\n  }\n\n  protected _extractBatchSimpleData<T>(\n    response: Result<ICallBatchResult<T>>,\n    isArrayCall: boolean\n  ): T {\n    if (isArrayCall) {\n      const dataResult: any[] = []\n      for (const [_index, data] of response.getData()!.result!) {\n        // @memo Add only success rows\n        if (data.isSuccess) {\n          dataResult.push(data.getData()!.result)\n        }\n      }\n      return dataResult as T\n    } else {\n      const dataResult: Record<string | number, any> = {}\n      for (const [index, data] of response.getData()!.result!) {\n        // @memo Add only success rows\n        if (data.isSuccess) {\n          dataResult[index] = data.getData()!.result\n        }\n      }\n      return dataResult as T\n    }\n  }\n  // endregion ////\n\n  public chunkArray<T = unknown>(array: Array<T>, chunkSize: number = 50): T[][] {\n    const result: T[][] = []\n    for (let i = 0; i < array.length; i += chunkSize) {\n      const chunk = array.slice(i, i + chunkSize)\n      result.push(chunk)\n    }\n    return result\n  }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;AAWO,MAAe,sBAAsB,cAAA,CAAe;AAAA,EAX3D;AAW2D,IAAA,MAAA,CAAA,IAAA,EAAA,eAAA,CAAA;AAAA;AAAA,EAC/C,oBAAA,CACR,UACA,MAAA,EACM;AACN,IAAA,IAAI,CAAC,SAAS,SAAA,EAAW;AACvB,MAAA,KAAA,MAAW,CAAC,KAAA,EAAO,KAAK,CAAA,IAAK,SAAS,MAAA,EAAQ;AAC5C,QAAA,MAAA,CAAO,QAAA,CAAS,OAAO,KAAK,CAAA;AAAA,MAC9B;AAAA,IACF;AAAA,EACF;AAAA,EAEU,qBAAA,CACR,QAAA,EACA,KAAA,EACA,OAAA,EACoB;AACpB,IAAA,MAAM,WAAA,GAAc,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA;AAEvC,IAAA,IAAI,QAAQ,gBAAA,EAAkB;AAC5B,MAAA,OAAO,IAAA,CAAK,0BAAA,CAA8B,QAAA,EAAU,WAAW,CAAA;AAAA,IACjE,CAAA,MAAO;AACL,MAAA,OAAO,IAAA,CAAK,wBAAA,CAA4B,QAAA,EAAU,WAAW,CAAA;AAAA,IAC/D;AAAA,EACF;AAAA;AAAA,EAGU,0BAAA,CACR,UACA,WAAA,EACoB;AACpB,IAAA,OAAO,cACH,IAAA,CAAK,uBAAA,CAA2B,QAAQ,CAAA,GACxC,IAAA,CAAK,yBAA4B,QAAQ,CAAA;AAAA,EAC/C;AAAA,EAEU,wBAA2B,QAAA,EAAgE;AACnG,IAAA,MAAM,MAAA,GAAS,IAAI,MAAA,EAAwB;AAC3C,IAAA,IAAA,CAAK,oBAAA,CAAqB,UAAU,MAAM,CAAA;AAE1C,IAAA,MAAM,aAA8B,EAAC;AACrC,IAAA,KAAA,MAAW,CAAC,MAAA,EAAQ,IAAI,KAAK,QAAA,CAAS,OAAA,GAAW,MAAA,EAAS;AACxD,MAAA,UAAA,CAAW,KAAK,IAAI,CAAA;AAAA,IACtB;AAEA,IAAA,OAAO,MAAA,CAAO,QAAQ,UAAU,CAAA;AAAA,EAClC;AAAA,EAEU,yBAA4B,QAAA,EAAuF;AAC3H,IAAA,MAAM,MAAA,GAAS,IAAI,MAAA,EAA+C;AAClE,IAAA,IAAA,CAAK,oBAAA,CAAqB,UAAU,MAAM,CAAA;AAE1C,IAAA,MAAM,aAA2C,EAAC;AAClD,IAAA,KAAA,MAAW,CAAC,KAAA,EAAO,IAAI,KAAK,QAAA,CAAS,OAAA,GAAW,MAAA,EAAS;AACvD,MAAA,UAAA,CAAW,KAAK,CAAA,GAAI,IAAA;AAAA,IACtB;AAEA,IAAA,OAAO,MAAA,CAAO,QAAQ,UAAU,CAAA;AAAA,EAClC;AAAA;AAAA;AAAA,EAIU,wBAAA,CACR,UACA,WAAA,EACoB;AACpB,IAAA,MAAM,MAAA,GAAS,IAAI,MAAA,EAAU;AAC7B,IAAA,IAAA,CAAK,oBAAA,CAAqB,UAAU,MAAM,CAAA;AAC1C,IAAA,OAAO,MAAA,CAAO,OAAA;AAAA,MACZ,IAAA,CAAK,uBAAA,CAA2B,QAAA,EAAU,WAAW;AAAA,KACvD;AAAA,EACF;AAAA,EAEU,uBAAA,CACR,UACA,WAAA,EACG;AACH,IAAA,IAAI,WAAA,EAAa;AACf,MAAA,MAAM,aAAoB,EAAC;AAC3B,MAAA,KAAA,MAAW,CAAC,MAAA,EAAQ,IAAI,KAAK,QAAA,CAAS,OAAA,GAAW,MAAA,EAAS;AAExD,QAAA,IAAI,KAAK,SAAA,EAAW;AAClB,UAAA,UAAA,CAAW,IAAA,CAAK,IAAA,CAAK,OAAA,EAAQ,CAAG,MAAM,CAAA;AAAA,QACxC;AAAA,MACF;AACA,MAAA,OAAO,UAAA;AAAA,IACT,CAAA,MAAO;AACL,MAAA,MAAM,aAA2C,EAAC;AAClD,MAAA,KAAA,MAAW,CAAC,KAAA,EAAO,IAAI,KAAK,QAAA,CAAS,OAAA,GAAW,MAAA,EAAS;AAEvD,QAAA,IAAI,KAAK,SAAA,EAAW;AAClB,UAAA,UAAA,CAAW,KAAK,CAAA,GAAI,IAAA,CAAK,OAAA,EAAQ,CAAG,MAAA;AAAA,QACtC;AAAA,MACF;AACA,MAAA,OAAO,UAAA;AAAA,IACT;AAAA,EACF;AAAA;AAAA,EAGO,UAAA,CAAwB,KAAA,EAAiB,SAAA,GAAoB,EAAA,EAAW;AAC7E,IAAA,MAAM,SAAgB,EAAC;AACvB,IAAA,KAAA,IAAS,IAAI,CAAA,EAAG,CAAA,GAAI,KAAA,CAAM,MAAA,EAAQ,KAAK,SAAA,EAAW;AAChD,MAAA,MAAM,KAAA,GAAQ,KAAA,CAAM,KAAA,CAAM,CAAA,EAAG,IAAI,SAAS,CAAA;AAC1C,MAAA,MAAA,CAAO,KAAK,KAAK,CAAA;AAAA,IACnB;AACA,IAAA,OAAO,MAAA;AAAA,EACT;AACF;;;;"}