@naturalcycles/nodejs-lib
Version:
Standard library for Node.js
32 lines • 1.26 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const js_lib_1 = require("@naturalcycles/js-lib");
const fs = require("fs-extra");
const globby = require("globby");
const path = require("path");
const __1 = require("..");
const colors_1 = require("../colors");
/**
* Encrypts all files in given directory (except *.enc), saves encrypted versions as filename.ext.enc.
* Using provided encKey.
*/
async function secretsEncrypt(pattern, encKey, algorithm, del) {
const patterns = [
...pattern,
`!**/*.enc`,
];
const filenames = await globby(patterns);
await js_lib_1.pMap(filenames, async (filename) => {
const plain = await fs.readFile(filename);
const enc = await __1.encryptRandomIVBuffer(plain, encKey, algorithm);
const encFilename = `${filename}.enc`;
await fs.writeFile(encFilename, enc);
if (del) {
await fs.unlink(filename);
}
console.log(` ${path.basename(filename)} > ${path.basename(encFilename)}`);
});
console.log(`encrypted ${colors_1.yellow(filenames.length)} files in (${colors_1.dimGrey(pattern.join(' '))})`);
}
exports.secretsEncrypt = secretsEncrypt;
//# sourceMappingURL=secrets-encrypt.util.js.map