studiocms
Version:
Astro Native CMS for AstroDB. Built from the ground up by the Astro community.
40 lines (39 loc) • 1.11 kB
JavaScript
import { log } from "@withstudiocms/effect/clack";
import chalk from "chalk";
import { Effect, runEffect } from "../../effect.js";
const checkRequiredEnvVars = async (envVars) => {
const missingVars = [];
for (const varName of envVars) {
if (!process.env[varName]) {
missingVars.push(varName);
}
}
if (missingVars.length > 0) {
await runEffect(
log.error(
`${chalk.red.bold("Missing environment variables:")} ${missingVars.map((v) => chalk.red(v)).join(", ")}`
)
);
process.exit(1);
}
};
const checkRequiredEnvVarsEffect = Effect.fn(function* (envVars) {
const missingVars = [];
yield* Effect.forEach(envVars, (varName) => {
if (!process.env[varName]) {
missingVars.push(varName);
}
return Effect.succeed(true);
});
if (missingVars.length > 0) {
yield* log.error(
`${chalk.red.bold("Missing environment variables:")} ${missingVars.map((v) => chalk.red(v)).join(", ")}`
);
return yield* Effect.try(() => process.exit(1));
}
return void 0;
});
export {
checkRequiredEnvVars,
checkRequiredEnvVarsEffect
};