37 lines
1006 B
TypeScript
37 lines
1006 B
TypeScript
const baseUrl = process.env.GATSBY_BASE_URL
|
|
|
|
export function getBaseUrl(): string {
|
|
if (baseUrl) {
|
|
return baseUrl
|
|
}
|
|
|
|
/*
|
|
This is a special case for production.
|
|
|
|
We want to be able to build the front end with no value set for
|
|
`GATSBY_BASE_URL` so that we can deploy a build to staging
|
|
and then promote the exact same build to production.
|
|
|
|
When deployed to staging, we want the frontend on
|
|
https://staging.shields.io/ to generate badges with the base
|
|
https://staging.shields.io/
|
|
|
|
When we promote to production we want https://shields.io/ and
|
|
https://www.shields.io/ to both generate badges with the base
|
|
https://img.shields.io/
|
|
*/
|
|
try {
|
|
const { protocol, hostname, port } = window.location
|
|
if (['shields.io', 'www.shields.io'].includes(hostname)) {
|
|
return 'https://img.shields.io'
|
|
}
|
|
if (!port) {
|
|
return `${protocol}//${hostname}`
|
|
}
|
|
return `${protocol}//${hostname}:${port}`
|
|
} catch (e) {
|
|
// server-side rendering
|
|
return ''
|
|
}
|
|
}
|