mirror of
https://github.com/ThatGuySam/doesitarm.git
synced 2026-05-15 06:35:20 -07:00
58 lines
1.6 KiB
JavaScript
58 lines
1.6 KiB
JavaScript
export function getSiteUrl () {
|
|
|
|
// console.log( 'import.meta.site', import.meta.env )
|
|
|
|
const hasImportMeta = typeof import.meta !== 'undefined'
|
|
const hasImportMetaEnv = hasImportMeta && typeof import.meta.env !== 'undefined'
|
|
|
|
// Try PUBLIC_URL
|
|
if ( typeof process.env.PUBLIC_URL !== 'undefined' ) {
|
|
console.log('Has env.PUBLIC_URL')
|
|
return process.env.PUBLIC_URL
|
|
}
|
|
|
|
if ( hasImportMetaEnv && typeof import.meta.env.PUBLIC_URL !== 'undefined' ) {
|
|
console.log('Has PUBLIC_URL')
|
|
return import.meta.env.PUBLIC_URL
|
|
}
|
|
|
|
|
|
// Try process.env.URL
|
|
if ( typeof process.env.URL !== 'undefined' ) {
|
|
console.log('Has env.URL')
|
|
return process.env.URL
|
|
}
|
|
|
|
// Try Astro.site.origin
|
|
if ( typeof Astro !== 'undefined' ) {
|
|
console.log('Has Astro')
|
|
return Astro.site.origin
|
|
}
|
|
|
|
// Try URL
|
|
if ( hasImportMetaEnv && typeof import.meta.env.URL !== 'undefined' ) {
|
|
console.log('Has URL')
|
|
return import.meta.env.URL
|
|
}
|
|
|
|
throw new Error('Could not find site URL')
|
|
}
|
|
|
|
export function getPartPartsFromUrl ( urlString ) {
|
|
if ( typeof urlString !== 'string' ) throw new Error('urlString must be a string')
|
|
|
|
const url = new URL( urlString, 'https://doesitarm.com' )
|
|
|
|
const pathParts = url.pathname
|
|
.replace(/^\/+/, '') // Trim slashes from the beginning
|
|
.replace(/\/+$/, '') // Trim slashes from the end
|
|
.split('/')
|
|
|
|
return pathParts
|
|
}
|
|
|
|
export function getPathPartsFromAstroRequest ( AstroRequest ) {
|
|
// Parse the request url
|
|
|
|
return getPartPartsFromUrl ( AstroRequest.url )
|
|
}
|