UNPKG

@nswhp/golden-path

Version:
43 lines (42 loc) 2.13 kB
"use strict"; 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); }); }