Files
myDrive/backend/key/get-key.ts
T

36 lines
1.1 KiB
TypeScript

import env from "../enviroment/env";
import crypto from "crypto";
import getKeyFromTerminal from "../utils/getKeyFromTerminal";
const getKey = async () => {
if (process.env.KEY || process.env.NODE_ENV === "development") {
const password = process.env.KEY;
if (!password) {
console.log("Key is required for development server");
throw new Error("Key is required for development server");
}
env.key = crypto.createHash("md5").update(password).digest("hex");
} else if (process.env.NODE_ENV === "production" && !process.env.KEY) {
const terminalPassword = await getKeyFromTerminal();
if (!terminalPassword || !terminalPassword.length) {
console.log(
"Terminal key is required for production server, or create a .env file with KEY"
);
throw new Error(
"Terminal key is required for production server, or create a .env file with KEY"
);
}
const password = crypto
.createHash("md5")
.update(terminalPassword)
.digest("hex");
env.key = password;
}
};
export default getKey;