validatees
Version:
✅ Validation library for ES6+ modules
77 lines (76 loc) • 3.67 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const child_process_1 = require("child_process");
const _1 = require(".");
const checkVersion = (processExit) => {
const patchMessage = `There is a new patch version of validatees, please update your validatees to the latest version.`;
const minorMessage = `There is a new minor version of validatees, please update your validatees to the latest version.`;
const majorMessage = `There is a new major version of validatees, please update your validatees to the latest version.`;
let processExitCode = 0;
try {
(0, _1.logger)("Checking for new version of validatees...", "34", "Info");
const npmVersion = (0, child_process_1.execSync)("npm view validatees version").toString().trim() || "1.0.0";
const localVersionJSON = require("../../package.json");
const localVersion = (localVersionJSON === null || localVersionJSON === void 0 ? void 0 : localVersionJSON.version) || "0.0.0";
if (localVersion === "0.0.0") {
throw new Error("Local version is 0.0.0");
}
const split = npmVersion.split(".");
const pkgSplit = localVersion.split(".");
if (split[0] > pkgSplit[0] || split[1] > pkgSplit[1] || split[2] > pkgSplit[2]) {
(0, _1.logger)("New version of validatees is available.", "34", "Info");
if (split[0] > pkgSplit[0]) {
throw new Error(majorMessage);
}
else if (split[1] > pkgSplit[1]) {
throw new Error(minorMessage);
}
else if (split[2] > pkgSplit[2]) {
throw new Error(patchMessage);
}
throw new Error("Please update your version of validatees");
}
console.info("\x1b[1m\x1b[32m%s\x1b[0m", "Info:", "Your version of validatees is up to date.");
processExitCode = 0;
}
catch (error) {
if (error.message === "Local version is 0.0.0") {
console.error("\x1b[1m\x1b[31m%s\x1b[0m", "Error:", "Validatees is not installed. Please run 'npm install validatees' to install it.");
processExitCode = 1;
}
else if (error.message === "Please update your version of validatees") {
console.error("\x1b[1m\x1b[31m%s\x1b[0m", "Error:", error.message);
processExitCode = 1;
}
else if (error.message === "Cannot find module 'child_process'" ||
error.message === "Cannot find module 'fs'" ||
error.message === "Cannot find module 'path'") {
console.error("\x1b[1m\x1b[31m%s\x1b[0m", "Error:", "Please run this script with node.");
processExitCode = 1;
}
else if (error.message === majorMessage) {
console.error("\x1b[1m\x1b[31m%s\x1b[0m", "Error:", error.message);
processExitCode = 1;
}
else if (error.message === minorMessage) {
console.error("\x1b[1m\x1b[33m%s\x1b[0m", "Warning:", error.message);
processExitCode = 1;
}
else if (error.message === patchMessage) {
console.error("\x1b[1m\x1b[32m%s\x1b[0m", "Info:", error.message);
processExitCode = 0;
}
else {
console.error("\x1b[1m\x1b[31m%s\x1b[0m", "Error:", error.message);
processExitCode = 1;
}
}
if (true === processExit) {
(0, _1.logger)("Done executing, exiting...", "34", "Info");
return process.exit(processExitCode);
}
else {
(0, _1.logger)("Done executing, waiting...", "34", "Info");
}
};
exports.default = checkVersion;