@casual-simulation/aux-common
Version:
Common library for AUX projects
75 lines • 2.51 kB
JavaScript
/* CasualOS is a set of web-based tools designed to facilitate the creation of real-time, multi-user, context-aware interactive experiences.
*
* Copyright (c) 2019-2025 Casual Simulation, Inc.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
import { hasValue } from '../bots';
/**
* Parses the given version number.
* @param version The version number.
*/
export function parseVersionNumber(version) {
var _a;
if (!version) {
return {
version: null,
major: null,
minor: null,
patch: null,
alpha: null,
tag: null,
};
}
const versionRegex = /^v?(\d+)\.(\d+)\.(\d+)((:|-)\w+\.?\d*)*$/i;
const result = versionRegex.exec(version);
if (!result) {
return {
version: null,
major: null,
minor: null,
patch: null,
alpha: null,
tag: null,
};
}
const [str, major, minor, patch, prerelease] = result;
let alpha = false;
if (hasValue(prerelease)) {
alpha = true;
const [first, number] = prerelease.split('.');
if (hasValue(number)) {
alpha = parseInt(number);
}
}
return {
version: str,
major: parseInt(major),
minor: parseInt(minor),
patch: parseInt(patch),
alpha,
tag: (_a = prerelease === null || prerelease === void 0 ? void 0 : prerelease.substring(1)) !== null && _a !== void 0 ? _a : null,
};
}
/**
* Formats the given version number.
* @param major The major version number.
* @param minor The minor version number.
* @param patch The patch.
* @param tag The tag of the version number.
*/
export function formatVersionNumber(major, minor, patch, tag) {
return `v${major}.${minor}.${patch}${tag ? `-${tag}` : ''}`;
}
//# sourceMappingURL=Version.js.map