@gensx/storage
Version:
Cloud storage, blobs, sqlite, and vector database providers/hooks for GenSX.
43 lines (34 loc) • 1.06 kB
text/typescript
import { getSelectedEnvironment, readProjectConfig } from "@gensx/core";
interface ProjectEnvConfig {
project: string;
environment: string;
}
export function getProjectAndEnvironment(props: {
project?: string;
environment?: string;
}): ProjectEnvConfig {
const projectConfig = readProjectConfig(process.cwd()) as
| { projectName: string }
| undefined;
const project =
props.project ??
process.env.GENSX_PROJECT ??
projectConfig?.projectName ??
"";
if (!project) {
throw new Error(
"Project must be provided via props, a gensx.yaml file, or the GENSX_PROJECT environment variable",
);
}
const selectedEnvironment = getSelectedEnvironment(project) as
| string
| undefined;
let environment =
props.environment ?? process.env.GENSX_ENV ?? selectedEnvironment ?? "";
if (!environment) {
throw new Error(
"Environment must be provided via props, set in the CLI via `gensx env select`, or the GENSX_ENV environment variable",
);
}
return { project, environment };
}