27 lines
738 B
TypeScript
27 lines
738 B
TypeScript
import { spawn, Worker } from "threads";
|
|
import "../loadEnv";
|
|
import type { CryptFns } from "./cryptWorker";
|
|
|
|
if (!process.env.KEY) {
|
|
// tslint:disable-next-line:no-console
|
|
console.error("Environment value KEY required for encryption");
|
|
process.exit(1);
|
|
}
|
|
|
|
const KEY = process.env.KEY;
|
|
let workerPromise: Promise<CryptFns> | null = null;
|
|
|
|
async function getWorker(): Promise<CryptFns> {
|
|
if (workerPromise == null) {
|
|
workerPromise = spawn(new Worker("./cryptWorker")) as unknown as Promise<CryptFns>;
|
|
}
|
|
return workerPromise;
|
|
}
|
|
|
|
export async function encrypt(data: string) {
|
|
return (await getWorker()).encrypt(data, KEY);
|
|
}
|
|
|
|
export async function decrypt(data: string) {
|
|
return (await getWorker()).decrypt(data, KEY);
|
|
}
|