feat(core-shared): add requireEnv helper
This commit is contained in:
28
packages/core-shared/src/lib/env.test.ts
Normal file
28
packages/core-shared/src/lib/env.test.ts
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
import { describe, expect, it, afterEach } from "vitest";
|
||||||
|
import { requireEnv } from "./env";
|
||||||
|
|
||||||
|
describe("requireEnv", () => {
|
||||||
|
const originalEnv = process.env.SOME_KEY;
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
if (originalEnv === undefined) delete process.env.SOME_KEY;
|
||||||
|
else process.env.SOME_KEY = originalEnv;
|
||||||
|
});
|
||||||
|
|
||||||
|
it("returns the value when set", () => {
|
||||||
|
process.env.SOME_KEY = "value";
|
||||||
|
expect(requireEnv("SOME_KEY")).toBe("value");
|
||||||
|
});
|
||||||
|
|
||||||
|
it("throws when missing", () => {
|
||||||
|
delete process.env.SOME_KEY;
|
||||||
|
expect(() => requireEnv("SOME_KEY")).toThrow(
|
||||||
|
/Missing required env var: SOME_KEY/,
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("throws when empty string", () => {
|
||||||
|
process.env.SOME_KEY = "";
|
||||||
|
expect(() => requireEnv("SOME_KEY")).toThrow();
|
||||||
|
});
|
||||||
|
});
|
||||||
7
packages/core-shared/src/lib/env.ts
Normal file
7
packages/core-shared/src/lib/env.ts
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
export function requireEnv(name: string): string {
|
||||||
|
const value = process.env[name];
|
||||||
|
if (!value) {
|
||||||
|
throw new Error(`Missing required env var: ${name}`);
|
||||||
|
}
|
||||||
|
return value;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user