Files
myDrive/backend/key/get-key.ts
T
2024-12-30 09:05:37 -05:00

40 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" ||
process.env.NODE_ENV === "test"
) {
const password = process.env.KEY;
if (!password) {
console.log(`Key is required for ${process.env.NODE_ENV} server`);
throw new Error(`Key is required for ${process.env.NODE_ENV} 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;