UNPKG

@bitrix24/b24jssdk

Version:

Bitrix24 REST API JavaScript SDK

1 lines 5.43 kB
{"version":3,"file":"loader-b24frame.mjs","sources":["../../src/loader-b24frame.ts"],"sourcesContent":["import type { B24FrameQueryParams } from './types/auth'\nimport type { RestrictionParams } from './types/limiters'\nimport type { ApiVersion } from './types/b24'\nimport { B24Frame } from './frame'\nimport { SdkError } from './core/sdk-error'\n\ntype whileB24InitCallback = {\n resolve: (b24Frame: B24Frame) => void\n reject: (error: any) => void\n}\n\nconst delay = 50\n\nlet $b24Frame: null | B24Frame = null\nlet isInit = false\nlet connectError: null | Error = null\nlet isMakeFirstCall = false\n\nlet listCallBack: whileB24InitCallback[] = []\nlet isStartWatch = false\n\n// region Watch ////\nfunction startWatch() {\n window.setTimeout(() => {\n if (!isInit || $b24Frame === null) {\n startWatch()\n return\n }\n\n processResult()\n listCallBack = []\n }, delay)\n}\n\nfunction processResult(): void {\n if (null !== connectError) {\n for (const callBack of listCallBack) {\n callBack.reject(connectError)\n }\n }\n\n if (!isInit || $b24Frame === null) {\n return\n }\n\n for (const callBack of listCallBack) {\n callBack.resolve($b24Frame as B24Frame)\n }\n}\n// endregion ////\n\nexport async function initializeB24Frame(\n options?: {\n version?: ApiVersion\n restrictionParams?: Partial<RestrictionParams>\n }\n): Promise<B24Frame> {\n // region isInit ////\n if (isInit && null !== $b24Frame) {\n return Promise.resolve($b24Frame)\n }\n // endregion ////\n\n // region Not First Call ///\n if (isMakeFirstCall) {\n // region startWatch ///\n if (!isStartWatch) {\n isStartWatch = true\n startWatch()\n }\n // endregion ////\n\n return new Promise((resolve, reject) => {\n listCallBack.push({\n resolve: resolve,\n reject: reject\n })\n })\n }\n // endregion ////\n\n // region First Call ///\n isMakeFirstCall = true\n\n return new Promise((resolve, reject) => {\n const queryParams: B24FrameQueryParams = {\n DOMAIN: null,\n PROTOCOL: false,\n APP_SID: null,\n LANG: null\n }\n\n if (window.name) {\n const [domain, protocol, appSid] = window.name.split('|')\n queryParams.DOMAIN = domain\n queryParams.PROTOCOL = Number.parseInt(protocol ?? '0') === 1\n queryParams.APP_SID = appSid\n queryParams.LANG = null\n }\n\n if (!queryParams.DOMAIN || !queryParams.APP_SID) {\n // throw new Error('Unable to initialize Bitrix24Frame library!')\n connectError = new SdkError({\n code: 'JSSDK_CLIENT_SIDE_WARNING',\n description: 'Well done! Now paste this URL into the Bitrix24 app settings',\n status: 500\n })\n reject(connectError)\n }\n\n $b24Frame = new B24Frame(\n queryParams,\n options\n )\n\n $b24Frame\n .init()\n .then(() => {\n isInit = true\n resolve($b24Frame as B24Frame)\n })\n .catch((error) => {\n connectError = error\n reject(connectError)\n })\n })\n // endregion ////\n}\n"],"names":[],"mappings":"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"}