@clerk/shared
Version:
Internal package utils used by the Clerk SDKs
1 lines • 1.83 kB
Source Map (JSON)
{"version":3,"file":"apiUrlFromPublishableKey.mjs","names":[],"sources":["../src/apiUrlFromPublishableKey.ts"],"sourcesContent":["import {\n LEGACY_DEV_INSTANCE_SUFFIXES,\n LOCAL_API_URL,\n LOCAL_ENV_SUFFIXES,\n PROD_API_URL,\n STAGING_API_URL,\n STAGING_ENV_SUFFIXES,\n} from './constants';\nimport { parsePublishableKey } from './keys';\n\n// Explicit return type per the repo TypeScript guideline for public APIs,\n// written as literals because `typeof CONST` would pull a hashed `_chunks/*`\n// import into the published d.ts. The literals mirror the *_API_URL constants\n// returned below (tsc errors here if a value drifts), and the pinned order\n// keeps the declaration emit deterministic where inference is not.\n/**\n * Get the correct API url based on the publishable key.\n *\n * @param publishableKey - The publishable key to parse.\n * @returns One of Clerk's API URLs.\n */\nexport const apiUrlFromPublishableKey = (\n publishableKey: string,\n): 'https://api.lclclerk.com' | 'https://api.clerkstage.dev' | 'https://api.clerk.com' => {\n const frontendApi = parsePublishableKey(publishableKey)?.frontendApi;\n\n if (frontendApi?.startsWith('clerk.') && LEGACY_DEV_INSTANCE_SUFFIXES.some(suffix => frontendApi?.endsWith(suffix))) {\n return PROD_API_URL;\n }\n\n if (LOCAL_ENV_SUFFIXES.some(suffix => frontendApi?.endsWith(suffix))) {\n return LOCAL_API_URL;\n }\n if (STAGING_ENV_SUFFIXES.some(suffix => frontendApi?.endsWith(suffix))) {\n return STAGING_API_URL;\n }\n return PROD_API_URL;\n};\n"],"mappings":";;;;;;;;;;AAqBA,MAAa,4BACX,mBACwF;CACxF,MAAM,cAAc,oBAAoB,cAAc,CAAC,EAAE;CAEzD,IAAI,aAAa,WAAW,QAAQ,KAAK,6BAA6B,MAAK,WAAU,aAAa,SAAS,MAAM,CAAC,GAChH,OAAO;CAGT,IAAI,mBAAmB,MAAK,WAAU,aAAa,SAAS,MAAM,CAAC,GACjE,OAAO;CAET,IAAI,qBAAqB,MAAK,WAAU,aAAa,SAAS,MAAM,CAAC,GACnE,OAAO;CAET,OAAO;AACT"}