36 lines
1.1 KiB
TypeScript
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;
|