UNPKG

@aminya/dotenv-vault

Version:

A secrets manager for .env files – from the same people that pioneered dotenv.

76 lines (75 loc) 2.27 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AppendToGitignoreService = void 0; const fs_1 = require("fs"); class AppendToGitignoreService { get gitignore() { return '.gitignore'; } get envFormat() { return '.env*'; // asterisk } get flaskenvFormat() { return '.flaskenv*'; // asterisk } get envProjectFormat() { return '!.env.project'; } get envVaultFormat() { return '!.env.vault'; } missing() { return !(0, fs_1.existsSync)(this.gitignore); } append(str) { (0, fs_1.appendFileSync)(this.gitignore, str); } touch() { (0, fs_1.writeFileSync)(this.gitignore, ''); } read() { return (0, fs_1.readFileSync)(this.gitignore, 'utf8'); } async run() { let envExists = false; let flaskenvExists = false; let envProjectExists = false; let envVaultExists = false; // 1. create .gitignore if doesn't exist if (this.missing()) { this.touch(); } // 2. iterate over gitignore lines const lines = this.read().split(/\r?\n/); // 3. for each line check if ignore already exists for (const line of lines) { const trimLine = line.trim(); if (trimLine === this.envFormat) { envExists = true; } if (trimLine === this.flaskenvFormat) { flaskenvExists = true; } if (trimLine === this.envProjectFormat) { envProjectExists = true; } if (trimLine === this.envVaultFormat) { envVaultExists = true; } } // 4. add ignore if it does not already exist if (envExists === false) { this.append('\n' + this.envFormat); } if (flaskenvExists === false) { this.append('\n' + this.flaskenvFormat); } if (envProjectExists === false) { this.append('\n' + this.envProjectFormat); } if (envVaultExists === false) { this.append('\n' + this.envVaultFormat); } } } exports.AppendToGitignoreService = AppendToGitignoreService;