UNPKG

meld-spec

Version:

Specification for the Meld scripting language

61 lines (60 loc) 1.67 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CURRENT_VERSION = void 0; exports.parseVersion = parseVersion; exports.formatVersion = formatVersion; exports.isCompatibleVersion = isCompatibleVersion; exports.isBreakingChange = isBreakingChange; exports.getMinCompatibleVersion = getMinCompatibleVersion; /** * Current version of the Meld specification */ exports.CURRENT_VERSION = { major: 0, minor: 1, patch: 0 }; /** * Converts a version string to a Version object */ function parseVersion(version) { const [major, minor, patch] = version.split('.').map(Number); return { major, minor, patch }; } /** * Converts a Version object to a string */ function formatVersion(version) { return `${version.major}.${version.minor}.${version.patch}`; } /** * Checks if a version is compatible with a version range */ function isCompatibleVersion(version, range) { const minCheck = (version.major === range.min.major && version.minor >= range.min.minor && version.patch >= range.min.patch); if (!range.max) { return minCheck; } const maxCheck = (version.major === range.max.major && version.minor <= range.max.minor && version.patch <= range.max.patch); return minCheck && maxCheck; } /** * Checks if a breaking change is being introduced */ function isBreakingChange(oldVersion, newVersion) { return newVersion.major > oldVersion.major; } /** * Gets the minimum compatible version for an implementation */ function getMinCompatibleVersion() { return { major: exports.CURRENT_VERSION.major, minor: 0, patch: 0 }; }