import { z } from 'zod';
/**
* 環境変数スキーマ
* 必須の環境変数とデフォルト値を定義
*/
const envSchema = z.object({
VERGE_API_URL: z
.string()
.url()
.default('https://api.vergecms.io'),
VERGE_EMAIL: z.string().email().optional(),
VERGE_PASSWORD: z.string().min(1).optional(),
NODE_ENV: z.enum(['development', 'production', 'test']).default('development'),
});
/**
* 環境変数を検証してパース
*/
function parseEnv() {
const result = envSchema.safeParse(process.env);
if (!result.success) {
console.error('環境変数の検証に失敗しました:');
console.error(result.error.format());
throw new Error('Invalid environment variables');
}
return result.data;
}
/**
* アプリケーション設定
*/
export const config = parseEnv();
/**
* 環境変数の型
*/
export type Config = z.infer<typeof envSchema>;