{"version":3,"file":"use-b24-helper.mjs","sources":["../../../src/helper/use-b24-helper.ts"],"sourcesContent":["import { B24HelperManager } from './helper-manager'\nimport { LoadDataType } from '../types/b24-helper'\nimport type { TypeB24 } from '../types/b24'\nimport type { TypePullMessage } from '../types/pull'\n\nexport const useB24Helper = () => {\n  let $isInitB24Helper = false\n  let $isInitPullClient = false\n\n  let $b24Helper: null | B24HelperManager = null\n\n  const initB24Helper = async (\n    $b24: TypeB24,\n    dataTypes: LoadDataType[] = [LoadDataType.App, LoadDataType.Profile],\n    requestId: string = `helper-load-data`\n  ): Promise<B24HelperManager> => {\n    if (null === $b24Helper) {\n      $b24Helper = new B24HelperManager($b24)\n    }\n\n    if ($isInitB24Helper) {\n      return $b24Helper\n    }\n\n    await $b24Helper.loadData(dataTypes, requestId)\n\n    $isInitB24Helper = true\n    return $b24Helper\n  }\n\n  const destroyB24Helper = () => {\n    $b24Helper?.destroy()\n    $b24Helper = null\n    $isInitB24Helper = false\n    $isInitPullClient = false\n  }\n\n  const isInitB24Helper = () => {\n    return $isInitB24Helper\n  }\n\n  const getB24Helper = (): B24HelperManager => {\n    if (null === $b24Helper) {\n      throw new Error(\n        'B24HelperManager is not initialized. You need to call initB24Helper first.'\n      )\n    }\n\n    return $b24Helper\n  }\n\n  const usePullClient = () => {\n    if (null === $b24Helper) {\n      throw new Error(\n        'B24HelperManager is not initialized. You need to call initB24Helper first.'\n      )\n    }\n\n    $b24Helper.usePullClient()\n    $isInitPullClient = true\n  }\n\n  const useSubscribePullClient = (\n    callback: (message: TypePullMessage) => void,\n    moduleId: string = 'application'\n  ) => {\n    if (!$isInitPullClient) {\n      throw new Error(\n        'PullClient is not initialized. You need to call usePullClient first.'\n      )\n    }\n\n    $b24Helper?.subscribePullClient(callback, moduleId)\n  }\n\n  const startPullClient = () => {\n    if (!$isInitPullClient) {\n      throw new Error(\n        'PullClient is not initialized. You need to call usePullClient first.'\n      )\n    }\n\n    $b24Helper?.startPullClient()\n  }\n\n  return {\n    initB24Helper,\n    isInitB24Helper,\n    destroyB24Helper,\n    getB24Helper,\n    usePullClient,\n    useSubscribePullClient,\n    startPullClient\n  }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;AAKO,MAAM,+BAAe,MAAA,CAAA,MAAM;AAChC,EAAA,IAAI,gBAAA,GAAmB,KAAA;AACvB,EAAA,IAAI,iBAAA,GAAoB,KAAA;AAExB,EAAA,IAAI,UAAA,GAAsC,IAAA;AAE1C,EAAA,MAAM,aAAA,mBAAgB,MAAA,CAAA,OACpB,IAAA,EACA,SAAA,GAA4B,CAAC,YAAA,CAAa,GAAA,EAAK,YAAA,CAAa,OAAO,CAAA,EACnE,SAAA,GAAoB,CAAA,gBAAA,CAAA,KACU;AAC9B,IAAA,IAAI,SAAS,UAAA,EAAY;AACvB,MAAA,UAAA,GAAa,IAAI,iBAAiB,IAAI,CAAA;AAAA,IACxC;AAEA,IAAA,IAAI,gBAAA,EAAkB;AACpB,MAAA,OAAO,UAAA;AAAA,IACT;AAEA,IAAA,MAAM,UAAA,CAAW,QAAA,CAAS,SAAA,EAAW,SAAS,CAAA;AAE9C,IAAA,gBAAA,GAAmB,IAAA;AACnB,IAAA,OAAO,UAAA;AAAA,EACT,CAAA,EAjBsB,eAAA,CAAA;AAmBtB,EAAA,MAAM,mCAAmB,MAAA,CAAA,MAAM;AAC7B,IAAA,UAAA,EAAY,OAAA,EAAQ;AACpB,IAAA,UAAA,GAAa,IAAA;AACb,IAAA,gBAAA,GAAmB,KAAA;AACnB,IAAA,iBAAA,GAAoB,KAAA;AAAA,EACtB,CAAA,EALyB,kBAAA,CAAA;AAOzB,EAAA,MAAM,kCAAkB,MAAA,CAAA,MAAM;AAC5B,IAAA,OAAO,gBAAA;AAAA,EACT,CAAA,EAFwB,iBAAA,CAAA;AAIxB,EAAA,MAAM,+BAAe,MAAA,CAAA,MAAwB;AAC3C,IAAA,IAAI,SAAS,UAAA,EAAY;AACvB,MAAA,MAAM,IAAI,KAAA;AAAA,QACR;AAAA,OACF;AAAA,IACF;AAEA,IAAA,OAAO,UAAA;AAAA,EACT,CAAA,EARqB,cAAA,CAAA;AAUrB,EAAA,MAAM,gCAAgB,MAAA,CAAA,MAAM;AAC1B,IAAA,IAAI,SAAS,UAAA,EAAY;AACvB,MAAA,MAAM,IAAI,KAAA;AAAA,QACR;AAAA,OACF;AAAA,IACF;AAEA,IAAA,UAAA,CAAW,aAAA,EAAc;AACzB,IAAA,iBAAA,GAAoB,IAAA;AAAA,EACtB,CAAA,EATsB,eAAA,CAAA;AAWtB,EAAA,MAAM,sBAAA,mBAAyB,MAAA,CAAA,CAC7B,QAAA,EACA,QAAA,GAAmB,aAAA,KAChB;AACH,IAAA,IAAI,CAAC,iBAAA,EAAmB;AACtB,MAAA,MAAM,IAAI,KAAA;AAAA,QACR;AAAA,OACF;AAAA,IACF;AAEA,IAAA,UAAA,EAAY,mBAAA,CAAoB,UAAU,QAAQ,CAAA;AAAA,EACpD,CAAA,EAX+B,wBAAA,CAAA;AAa/B,EAAA,MAAM,kCAAkB,MAAA,CAAA,MAAM;AAC5B,IAAA,IAAI,CAAC,iBAAA,EAAmB;AACtB,MAAA,MAAM,IAAI,KAAA;AAAA,QACR;AAAA,OACF;AAAA,IACF;AAEA,IAAA,UAAA,EAAY,eAAA,EAAgB;AAAA,EAC9B,CAAA,EARwB,iBAAA,CAAA;AAUxB,EAAA,OAAO;AAAA,IACL,aAAA;AAAA,IACA,eAAA;AAAA,IACA,gBAAA;AAAA,IACA,YAAA;AAAA,IACA,aAAA;AAAA,IACA,sBAAA;AAAA,IACA;AAAA,GACF;AACF,CAAA,EAzF4B,cAAA;;;;"}