@whop/embedded-components-vanilla-js
Version:
Whop Elements loading utility
1 lines • 1.86 kB
Source Map (JSON)
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import type { WhopElementsConstructor } from \"./types\";\nimport type { LoadWhopElements } from \"./util\";\nimport { initWhopElements, loadScript } from \"./util\";\n\nlet whopElementsPromise: Promise<WhopElementsConstructor | null> | null;\nlet loadCalled = false;\n\nconst getWhopElementsPromise: () => Promise<WhopElementsConstructor | null> =\n\t() => {\n\t\tif (whopElementsPromise) {\n\t\t\treturn whopElementsPromise;\n\t\t}\n\n\t\twhopElementsPromise = loadScript().catch((error) => {\n\t\t\t// clear cache on error\n\t\t\twhopElementsPromise = null;\n\t\t\tif (error instanceof Error) {\n\t\t\t\treturn Promise.reject(error);\n\t\t\t} else {\n\t\t\t\treturn Promise.reject(\n\t\t\t\t\tnew Error(\"Failed to load WhopElements\", { cause: error }),\n\t\t\t\t);\n\t\t\t}\n\t\t});\n\t\treturn whopElementsPromise;\n\t};\n\n// eagerly load the script\nPromise.resolve()\n\t.then(() => getWhopElementsPromise())\n\t.catch((error) => {\n\t\tif (!loadCalled) {\n\t\t\tconsole.warn(error);\n\t\t}\n\t});\n\nexport const loadWhopElements: LoadWhopElements = async (...args) => {\n\tloadCalled = true;\n\n\tconst maybeWhopElements = await getWhopElementsPromise();\n\treturn initWhopElements(maybeWhopElements, args);\n};\n"],"mappings":"AAEA,SAAS,kBAAkB,kBAAkB;AAE7C,IAAI;AACJ,IAAI,aAAa;AAEjB,MAAM,yBACL,MAAM;AACL,MAAI,qBAAqB;AACxB,WAAO;AAAA,EACR;AAEA,wBAAsB,WAAW,EAAE,MAAM,CAAC,UAAU;AAEnD,0BAAsB;AACtB,QAAI,iBAAiB,OAAO;AAC3B,aAAO,QAAQ,OAAO,KAAK;AAAA,IAC5B,OAAO;AACN,aAAO,QAAQ;AAAA,QACd,IAAI,MAAM,+BAA+B,EAAE,OAAO,MAAM,CAAC;AAAA,MAC1D;AAAA,IACD;AAAA,EACD,CAAC;AACD,SAAO;AACR;AAGD,QAAQ,QAAQ,EACd,KAAK,MAAM,uBAAuB,CAAC,EACnC,MAAM,CAAC,UAAU;AACjB,MAAI,CAAC,YAAY;AAAA,EAEjB;AACD,CAAC;AAEK,MAAM,mBAAqC,UAAU,SAAS;AACpE,eAAa;AAEb,QAAM,oBAAoB,MAAM,uBAAuB;AACvD,SAAO,iBAAiB,mBAAmB,IAAI;AAChD;","names":[]}