UNPKG

eslint-config-galex

Version:
45 lines (44 loc) 1.51 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.fulfillsVersionRequirement = void 0; const cache = new Map(); const toNumbers = (str) => { const maybeCached = cache.get(str); if (maybeCached) { return maybeCached; } /* istanbul ignore next major cant ever be undefined, even if only "." is forwarded */ const [major = 0, minor = 0, patch = 0] = str .split('.') .map(str => [...str] .map(char => Number.parseInt(char)) .filter(maybeNumber => !Number.isNaN(maybeNumber)) .join('')) .map(char => { const maybeNumber = Number.parseInt(char); return typeof maybeNumber !== 'number' || Number.isNaN(maybeNumber) ? 0 : maybeNumber; }); const sane = [major, minor, patch]; cache.set(str, sane); return sane; }; const fulfillsVersionRequirement = ({ given, expected, }) => { const [givenMajor, givenMinor, givenPatch] = toNumbers(given); const [expectedMajor, expectedMinor, expectedPatch] = toNumbers(expected); // satisfying major if (givenMajor > expectedMajor) { return true; } if (givenMajor === expectedMajor) { // satisfying minor if (givenMinor > expectedMinor) { return true; } // satisfying patch return givenMinor === expectedMinor && givenPatch >= expectedPatch; } return false; }; exports.fulfillsVersionRequirement = fulfillsVersionRequirement;