UNPKG

@formbricks/js

Version:

Formbricks-js allows you to connect your index to Formbricks, display surveys and trigger events.

3 lines (2 loc) 1.78 kB
let r=!1,o=!1;const e=[],i=async i=>{if(r)return void console.warn("🧱 Formbricks - Warning: Formbricks is already initializing.");const n=(r=>{const o=r[0],{appUrl:e,environmentId:i}=o;return e?i?{appUrl:e.endsWith("/")?e.slice(0,-1):e,environmentId:i}:(console.error("🧱 Formbricks - Error: environmentId is required"),null):(console.error("🧱 Formbricks - Error: appUrl is required"),null)})(i);if(n){r=!0;try{const r=await(async r=>{if(!globalThis.formbricks){const e=document.createElement("script");e.type="text/javascript",e.src=`${r}/js/formbricks.umd.cjs`,e.async=!0;const i=async()=>new Promise((r,o)=>{const i=setTimeout(()=>{o(new Error("Formbricks SDK loading timed out"))},1e4);e.onload=()=>{clearTimeout(i),r()},e.onerror=()=>{clearTimeout(i),o(new Error("Failed to load Formbricks SDK"))}});document.head.appendChild(e);try{return await i(),{ok:!0,data:void 0}}catch(o){return{ok:!1,error:new Error(o.message??"Failed to load Formbricks SDK")}}}return{ok:!0,data:void 0}})(n.appUrl),i=globalThis.formbricks;if(!r.ok||!i)return void console.error("🧱 Formbricks - Error: Failed to load Formbricks SDK");await i.setup({...n}),o=!0,(r=>{for(const{prop:o,args:i}of e)"function"==typeof r[o]?r[o](...i):console.error(`🧱 Formbricks - Error: Method ${o} does not exist on formbricks`)})(formbricks)}catch(t){console.error("🧱 Formbricks - Error: setup failed",t)}finally{r=!1}}},n=async(r,...n)=>{o?await(async(r,o)=>{const e=globalThis.formbricks;e&&await e[r](...o)})(r,n):"setup"===r?await i(n):(console.warn("🧱 Formbricks - Warning: Formbricks not initialized. This method will be queued and executed after initialization."),e.push({prop:r,args:n}))},t=new Proxy({},{get:(r,o,e)=>(...r)=>n(o,...r)});export{t as default}; //# sourceMappingURL=index.js.map