UNPKG

@curveball/kernel

Version:

Curveball is a framework writting in Typescript for Node.js

45 lines (35 loc) 1.09 kB
let globalOrigin:string|null = null; /** * This function is the standard altogrithm to 'guess' the origin of where * a curveball app is running. * * The origin is 'base url', but more specifically it's the URL right up the * end of the path. * * For example: http://localhost is an origin, but https://localhost/ is not. * * Knowning where a server is running is often useful. We don't want to * auto-detect it based on the request, because we can't absolutely trust it. * * If the origin was detected wrong, set the CURVEBALL_ORIGIN environemtn * variable. */ export function getGlobalOrigin(): string { if (globalOrigin) { return globalOrigin; } if (process.env.CURVEBALL_ORIGIN) { return process.env.CURVEBALL_ORIGIN; } if (process.env.PUBLIC_URI) { return new URL(process.env.PUBLIC_URI).origin; } const port = process.env.PORT ? +process.env.PORT : 80; return 'http://localhost' + (port!==80?':' + port : ''); } /** * Overrides the global origin */ export function setGlobalOrigin(origin: string): void { globalOrigin = origin; }