63 lines
2.2 KiB
TypeScript
63 lines
2.2 KiB
TypeScript
/* eslint-disable global-require */
|
|
import fs from "fs";
|
|
import path from "path";
|
|
|
|
const hasServerConfig = fs.existsSync(path.resolve(__dirname, "config.js"));
|
|
const hasClientConfig = fs.existsSync(
|
|
path.resolve(__dirname, "../client/config.js")
|
|
);
|
|
|
|
if (hasServerConfig && hasClientConfig) {
|
|
const serverConfig = require("./config.js");
|
|
const clientConfig = require("../client/config.js");
|
|
let envTemplate = fs.readFileSync(
|
|
path.resolve(__dirname, "../.template.env"),
|
|
"utf-8"
|
|
);
|
|
|
|
const configs = {
|
|
PORT: serverConfig.PORT || 3000,
|
|
DEFAULT_DOMAIN: serverConfig.DEFAULT_DOMAIN || "localhost:3000",
|
|
DB_URI: serverConfig.DB_URI || "bolt://localhost",
|
|
DB_USERNAME: serverConfig.DB_USERNAME,
|
|
DB_PASSWORD: serverConfig.DB_PASSWORD,
|
|
REDIS_DISABLED: serverConfig.REDIS_DISABLED || false,
|
|
REDIS_HOST: serverConfig.REDIS_HOST || "127.0.0.1",
|
|
REDIS_PORT: serverConfig.REDIS_PORT || 6379,
|
|
REDIS_PASSWORD: serverConfig.REDIS_PASSWORD,
|
|
USER_LIMIT_PER_DAY: serverConfig.USER_LIMIT_PER_DAY || 50,
|
|
JWT_SECRET: serverConfig.JWT_SECRET || "securekey",
|
|
ADMIN_EMAILS: serverConfig.ADMIN_EMAILS.join(","),
|
|
RECAPTCHA_SITE_KEY: clientConfig.RECAPTCHA_SITE_KEY,
|
|
RECAPTCHA_SECRET_KEY: serverConfig.RECAPTCHA_SECRET_KEY,
|
|
GOOGLE_SAFE_BROWSING_KEY: serverConfig.GOOGLE_SAFE_BROWSING_KEY,
|
|
GOOGLE_ANALYTICS: clientConfig.GOOGLE_ANALYTICS_ID,
|
|
GOOGLE_ANALYTICS_UNIVERSAL: serverConfig.GOOGLE_ANALYTICS,
|
|
MAIL_HOST: serverConfig.MAIL_HOST,
|
|
MAIL_PORT: serverConfig.MAIL_PORT,
|
|
MAIL_SECURE: serverConfig.MAIL_SECURE,
|
|
MAIL_USER: serverConfig.MAIL_USER,
|
|
MAIL_FROM: serverConfig.MAIL_FROM,
|
|
MAIL_PASSWORD: serverConfig.MAIL_PASSWORD,
|
|
REPORT_MAIL: serverConfig.REPORT_MAIL,
|
|
CONTACT_EMAIL: clientConfig.CONTACT_EMAIL
|
|
};
|
|
|
|
Object.keys(configs).forEach(c => {
|
|
envTemplate = envTemplate.replace(
|
|
new RegExp(`{{${c}}}`, "gm"),
|
|
configs[c] || ""
|
|
);
|
|
});
|
|
|
|
fs.writeFileSync(path.resolve(__dirname, "../.env"), envTemplate);
|
|
fs.renameSync(
|
|
path.resolve(__dirname, "config.js"),
|
|
path.resolve(__dirname, "old.config.js")
|
|
);
|
|
fs.renameSync(
|
|
path.resolve(__dirname, "../client/config.js"),
|
|
path.resolve(__dirname, "../client/old.config.js")
|
|
);
|
|
}
|