29 lines
885 B
TypeScript
29 lines
885 B
TypeScript
import { mkdir, readFile, writeFile } from "node:fs/promises";
|
|
import { join } from "node:path";
|
|
import { exists } from "./better-api";
|
|
|
|
const secretsFileName = (name: string) => join("secrets", name + ".json");
|
|
export function loadSecretsFile<T>(name: string): () => Promise<T> {
|
|
return async () => {
|
|
const file = await readFile(secretsFileName(name), "utf-8");
|
|
return JSON.parse(file);
|
|
};
|
|
}
|
|
export function generateSecretsFile<T>(
|
|
name: string,
|
|
generate: () => Promise<T>
|
|
): () => Promise<void> {
|
|
return async () => {
|
|
const secrets = await generate();
|
|
await mkdir("secrets", { recursive: true });
|
|
const fileName = secretsFileName(name);
|
|
if (await exists(fileName)) {
|
|
console.warn(`${fileName} ya existe, salteando..`);
|
|
} else {
|
|
await writeFile(fileName, JSON.stringify(secrets, null, 2), {
|
|
flag: "wx",
|
|
});
|
|
}
|
|
};
|
|
}
|