UNPKG

ludomir

Version:

CLI to maintain RELEASES.rst file per project.

53 lines (52 loc) 2.63 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.init = exports.initialVersion = void 0; var fs_1 = __importDefault(require("fs")); var dayjs_1 = __importDefault(require("dayjs")); var chalk_1 = __importDefault(require("chalk")); var setup_1 = require("../setup"); var semver_1 = __importDefault(require("semver")); var createTitle = function (title) { return ".. :changelog:\n" + (title || "Releases:") + "\n\n\n"; }; var createHeader = function (version, date) { return version + " (" + date + ")\n----------------\n"; }; var initialMessage = "Initialized realases file with " + setup_1.toolNameCapitalized + ".\n\n"; exports.initialVersion = "0.1.0"; var getInitialHeader = function (title, version) { var fileTitle = title ? title : ""; var initVersion = version ? version : exports.initialVersion; return "" + createTitle(fileTitle) + createHeader(initVersion, dayjs_1.default().format("YYYY-MM-DD")) + initialMessage; }; var init = function () { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } var title = args[0], version = args[1]; if (!title) { console.log(chalk_1.default.redBright("Missing " + setup_1.releasesFile + " file title.")); console.log(chalk_1.default.blueBright("Example: " + setup_1.toolName + " init \"MyProject\" 2.3.9 (optional)")); return; } if (!semver_1.default.valid(version)) { console.log(chalk_1.default.redBright(setup_1.toolNameCapitalized + " found invalid version. Make sure you follow semantic versioning - {major.minor.patch}")); console.log(chalk_1.default.blueBright("Example: " + setup_1.toolName + " release 2.3.9")); return; } if (fs_1.default.existsSync(setup_1.releasesFile)) { console.log(chalk_1.default.blueBright(setup_1.toolNameCapitalized + " already initialized " + setup_1.releasesFile + " file.")); return; } else { fs_1.default.writeFile(setup_1.releasesFile, getInitialHeader(title, version), { flag: 'wx' }, function (err) { if (err) console.error(err); }); if (!fs_1.default.existsSync(setup_1.releasesDir)) { fs_1.default.mkdirSync(setup_1.releasesDir); } console.log(chalk_1.default.blueBright(setup_1.toolNameCapitalized + " initialized " + setup_1.releasesFile + " file at the root path of the project.")); } }; exports.init = init;