UNPKG

@mochabug/adapt-plugin-toolkit

Version:

The API toolkit to facilitate mochabug adapt plugin development

8 lines (7 loc) 2.15 kB
{ "version": 3, "sources": ["../../src/frontend.ts"], "sourcesContent": ["/**\n * Simple token utility for waiting on hash-based tokens\n */\n\n/**\n * Waits for a token to become available in the URL hash\n * @param isDevelopment - If true, resolves immediately with 'dev-token' for local development\n * @returns Promise that resolves with the token\n */\nexport async function getToken(isDevelopment = false): Promise<string> {\n // Development mode - return immediately\n if (isDevelopment) {\n return 'dev-token';\n }\n\n // Non-browser environment - throw error (using globalThis for universal compatibility)\n if (\n typeof (globalThis as any).window === 'undefined' ||\n typeof (globalThis as any).location === 'undefined'\n ) {\n throw new Error('getToken() is only available in browser environments');\n }\n\n // In browsers, globalThis is window, so we can use it directly\n const win = globalThis as any;\n\n return new Promise<string>((resolve) => {\n // Check if token already exists\n const currentToken = win.location.hash.substring(1);\n if (currentToken) {\n resolve(currentToken);\n return;\n }\n\n // Wait for hash change\n const handleHashChange = () => {\n const token = win.location.hash.substring(1);\n if (token) {\n win.removeEventListener('hashchange', handleHashChange);\n resolve(token);\n }\n };\n\n win.addEventListener('hashchange', handleHashChange);\n });\n}\n"], "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,cAAAE,IAAA,eAAAC,EAAAH,GASA,eAAsBE,EAASE,EAAgB,GAAwB,CAErE,GAAIA,EACF,MAAO,YAIT,GACE,OAAQ,WAAmB,OAAW,KACtC,OAAQ,WAAmB,SAAa,IAExC,MAAM,IAAI,MAAM,sDAAsD,EAIxE,IAAMC,EAAM,WAEZ,OAAO,IAAI,QAAiBC,GAAY,CAEtC,IAAMC,EAAeF,EAAI,SAAS,KAAK,UAAU,CAAC,EAClD,GAAIE,EAAc,CAChBD,EAAQC,CAAY,EACpB,MACF,CAGA,IAAMC,EAAmB,IAAM,CAC7B,IAAMC,EAAQJ,EAAI,SAAS,KAAK,UAAU,CAAC,EACvCI,IACFJ,EAAI,oBAAoB,aAAcG,CAAgB,EACtDF,EAAQG,CAAK,EAEjB,EAEAJ,EAAI,iBAAiB,aAAcG,CAAgB,CACrD,CAAC,CACH", "names": ["frontend_exports", "__export", "getToken", "__toCommonJS", "isDevelopment", "win", "resolve", "currentToken", "handleHashChange", "token"] }