build: include production build artifacts in repo
This commit is contained in:
Vendored
+43
@@ -0,0 +1,43 @@
|
||||
import { existsSync } from "node:fs";
|
||||
import { z } from "zod";
|
||||
if (existsSync(".env"))
|
||||
process.loadEnvFile(".env");
|
||||
const bool = (fallback) => z
|
||||
.enum(["true", "false", "1", "0"])
|
||||
.optional()
|
||||
.transform((v) => (v === undefined ? fallback : v === "true" || v === "1"));
|
||||
const schema = z.object({
|
||||
NODE_ENV: z.enum(["development", "production", "test"]).default("development"),
|
||||
PORT: z.coerce.number().int().default(4000),
|
||||
CORS_ORIGINS: z.string().default(""),
|
||||
TRUST_PROXY: z.coerce.number().int().min(0).default(1),
|
||||
DATABASE_URL: z.string().min(1),
|
||||
JWT_SECRET: z.string().min(32, "JWT_SECRET must be at least 32 characters"),
|
||||
JWT_ACCESS_TTL: z.string().default("15m"),
|
||||
REFRESH_TTL_DAYS: z.coerce.number().int().positive().default(30),
|
||||
COOKIE_SECURE: bool(true),
|
||||
S3_ENDPOINT: z.string().optional(),
|
||||
S3_REGION: z.string().default("us-east-1"),
|
||||
S3_BUCKET: z.string().default("imen-media"),
|
||||
S3_ACCESS_KEY: z.string().default(""),
|
||||
S3_SECRET_KEY: z.string().default(""),
|
||||
S3_FORCE_PATH_STYLE: bool(true),
|
||||
S3_ENSURE_BUCKET: bool(false),
|
||||
MEDIA_PUBLIC_URL: z
|
||||
.string()
|
||||
.default("/media")
|
||||
.transform((v) => v.replace(/\/+$/, "")),
|
||||
WEB_REVALIDATE_URL: z.string().optional(),
|
||||
REVALIDATE_SECRET: z.string().optional(),
|
||||
ADMIN_PHONE: z.string().optional(),
|
||||
ADMIN_PASSWORD: z.string().optional(),
|
||||
ADMIN_NAME: z.string().default("مدیر سایت"),
|
||||
});
|
||||
const parsed = schema.safeParse(process.env);
|
||||
if (!parsed.success) {
|
||||
console.error("Invalid environment variables:\n" + z.prettifyError(parsed.error));
|
||||
process.exit(1);
|
||||
}
|
||||
export const env = parsed.data;
|
||||
export const isProd = env.NODE_ENV === "production";
|
||||
//# sourceMappingURL=env.js.map
|
||||
Reference in New Issue
Block a user