1- import { createDevOrStagingUrlCache , parsePublishableKey } from '@clerk/shared/keys' ;
2- import { isValidProxyUrl , proxyUrlToAbsoluteURL } from '@clerk/shared/proxy' ;
3- import { addClerkPrefix } from '@clerk/shared/url' ;
1+ import { clerkJsScriptUrl } from '@clerk/shared/loadClerkJsScript' ;
42import type { APIContext } from 'astro' ;
53
6- import { versionSelector } from '../internal/utils/versionSelector' ;
74import { getSafeEnv } from './get-safe-env' ;
85
9- const { isDevOrStagingUrl } = createDevOrStagingUrlCache ( ) ;
10-
11- type BuildClerkJsScriptOptions = {
12- proxyUrl : string ;
13- domain : string ;
14- clerkJSUrl ?: string ;
15- clerkJSVariant ?: 'headless' | '' ;
16- clerkJSVersion ?: string ;
17- publishableKey : string ;
18- } ;
19-
20- const clerkJsScriptUrl = ( opts : BuildClerkJsScriptOptions ) => {
21- const { clerkJSUrl, clerkJSVariant, clerkJSVersion, proxyUrl, domain, publishableKey } = opts ;
22-
23- if ( clerkJSUrl ) {
24- return clerkJSUrl ;
25- }
26-
27- let scriptHost = '' ;
28- if ( ! ! proxyUrl && isValidProxyUrl ( proxyUrl ) ) {
29- scriptHost = proxyUrlToAbsoluteURL ( proxyUrl ) . replace ( / h t t p ( s ) ? : \/ \/ / , '' ) ;
30- } else if ( domain && ! isDevOrStagingUrl ( parsePublishableKey ( publishableKey ) ?. frontendApi || '' ) ) {
31- scriptHost = addClerkPrefix ( domain ) ;
32- } else {
33- scriptHost = parsePublishableKey ( publishableKey ) ?. frontendApi || '' ;
34- }
35-
36- const variant = clerkJSVariant ? `${ clerkJSVariant . replace ( / \. + $ / , '' ) } .` : '' ;
37- const version = versionSelector ( clerkJSVersion ) ;
38- return `https://${ scriptHost } /npm/@clerk/clerk-js@${ version } /dist/clerk.${ variant } browser.js` ;
39- } ;
40-
416function buildClerkHotloadScript ( locals : APIContext [ 'locals' ] ) {
427 const publishableKey = getSafeEnv ( locals ) . pk ! ;
438 const proxyUrl = getSafeEnv ( locals ) . proxyUrl ! ;
@@ -51,10 +16,10 @@ function buildClerkHotloadScript(locals: APIContext['locals']) {
5116 publishableKey,
5217 } ) ;
5318 return `
54- <script src="${ scriptSrc } "
55- data-clerk-script
56- async
57- crossOrigin='anonymous'
19+ <script src="${ scriptSrc } "
20+ data-clerk-js- script
21+ async
22+ crossOrigin='anonymous'
5823 ${ publishableKey ? `data-clerk-publishable-key="${ publishableKey } "` : `` }
5924 ${ proxyUrl ? `data-clerk-proxy-url="${ proxyUrl } "` : `` }
6025 ${ domain ? `data-clerk-domain="${ domain } "` : `` }
0 commit comments