@nswhp/golden-path
Version:
Generate all the recommended golden paths
43 lines (42 loc) • 2.13 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.defaultTemplate = void 0;
const tslib_1 = require("tslib");
const fs_extra_1 = (0, tslib_1.__importDefault)(require("fs-extra"));
const logger_util_1 = require("../../utils/logger.util");
const checker_util_1 = require("../../utils/checker.util");
const questions_1 = require("../../questions");
function defaultTemplate(fileNameWithExt, fileContent, filePath = '', allowOverwrite = false) {
(0, logger_util_1.showGenerate)(fileNameWithExt);
(0, checker_util_1.checkIfDirExistElseMakeDir)(filePath);
const fileExists = (0, checker_util_1.checkExistence)(`${filePath}/${fileNameWithExt}`);
if (!fileExists)
return createFile(filePath, fileNameWithExt, fileContent);
if (!allowOverwrite) {
(0, logger_util_1.showInfo)(`${fileNameWithExt} skipped as it already exists`);
return Promise.resolve();
}
return overwriteFileOrThrowError(filePath, fileNameWithExt, fileContent);
}
exports.defaultTemplate = defaultTemplate;
function createFile(filePath, fileName, fileContent, fileAlreadyExists = false) {
return new Promise((resolve) => {
const filepath = process.cwd() + `${filePath}/${fileName}`;
fs_extra_1.default.writeFile(filepath, fileContent, (error) => {
if (!error && !fileAlreadyExists)
return (0, logger_util_1.showCreate)(fileName, filePath);
if (!error && fileAlreadyExists)
return (0, logger_util_1.showUpdate)(fileName, filePath);
return (0, logger_util_1.showError)(error);
});
setTimeout(() => resolve(), 250);
});
}
async function overwriteFileOrThrowError(filePath, fileNameWithExt, fileContent) {
return new Promise(async (resolve) => {
const overwriteAnswer = await (0, questions_1.overwriteFileQuestion)();
if (overwriteAnswer.overwrite === true)
return await createFile(filePath, fileNameWithExt, fileContent, true);
return (0, checker_util_1.fileAlreadyExist)(fileNameWithExt);
});
}