ludomir
Version:
CLI to maintain RELEASES.rst file per project.
53 lines (52 loc) • 2.63 kB
JavaScript
;
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;