Files
artcraft/frontend_old/studio-gen-2/app/BuildEnvironment.ts
Brandon Thomas 82effe0ce9 add nx for javascript monorepos and move 3d under it (#497)
this required the following:

- downgrading nx react (19 -> 18.2)
- .npmrc credentials for fontawesome
- installing a lot of nx plugins from the vanilla config
- removing kalidokit vendored code and all references to it
2025-04-10 23:15:23 -04:00

58 lines
1.6 KiB
TypeScript

/**
* This is cached whenever vite/remix/whatever launches.
* It's fed from an environment variable.
*/
export enum BuildEnvironmentType {
Dev,
DevProxy,
Staging,
Production,
}
export class BuildEnvironment {
private static instance: BuildEnvironment;
private readonly environmentType: BuildEnvironmentType;
public static getInstance(): BuildEnvironment {
if (BuildEnvironment.instance !== undefined) {
return BuildEnvironment.instance;
}
// https://v2.vitejs.dev/guide/env-and-mode.html
console.log('Reading environment variable: `VITE_ENVIRONMENT_TYPE` to determine build environment.')
console.log(`Environment variable 'VITE_ENVIRONMENT_TYPE' = ${import.meta.env.VITE_ENVIRONMENT_TYPE}`)
const environmentLabel : string | undefined = import.meta.env.VITE_ENVIRONMENT_TYPE;
let environmentType = BuildEnvironmentType.Production;
switch (environmentLabel?.toLocaleLowerCase()) {
case "dev":
case "development":
environmentType = BuildEnvironmentType.Dev;
break;
case "dev-proxy":
case "devproxy":
environmentType = BuildEnvironmentType.DevProxy;
break;
}
const instance = new BuildEnvironment(environmentType);
BuildEnvironment.instance = instance;
return instance;
}
public getBuildEnvironmentType(): BuildEnvironmentType {
return this.environmentType;
}
private constructor(environmentType: BuildEnvironmentType) {
this.environmentType = environmentType;
}
}
export function GetBuildEnvironment() : BuildEnvironment {
return BuildEnvironment.getInstance();
}