// As we cannot know which of potentially multiple Electron versions is actually in use, we always assume the oldest one just in case. export function oldestVersion(versions) { const sortedVersions = (versions || []).sort((a, b) => compare(a, b)); return sortedVersions.length > 0 ? minMatchingVersion(sortedVersions[0]) : undefined; }
async removeOldVersions({instance}, task) { const semver = require('semver'); const versionDirs = await fs.readdir(path.join(instance.dir, 'versions')); const versions = versionDirs.filter(semver.valid).sort(semver.compare); if (versions.length <= 2) { task.skip(); return; } const promises = versions.slice(0, -2) .map(version => fs.remove(path.join(instance.dir, 'versions', version))); await Promise.all(promises); }
const parseTags = data => { return _.compact(data.split('\n')) .filter(semver.valid) .sort(semver.compare) .reverse(); }
/** * Returns sorted array of version tags * @returns {String[]} */ function getVersionTags() { var semver = require('semver'); var tags = splitCommandResultToLines(shellExec("git tag", { silent: true })); return tags.reduce(function(list, tag) { if (semver.valid(tag)) { list.push(tag); } return list; }, []).sort(semver.compare); }
/** * Get a list of available update files. * * @param next {Function} * The next function to invoke after this function has finished. */ const getUpdates = function(next) { fs.readdir(path.join(__dirname, '/updates'), function(err, files) { if (err) { return next(err); } files = files.map(function(name) { debug.db(`Update found: ${name}`); return name.split('.js')[0]; }); // Allow anyone to hook the update system. formio.hook.alter('getUpdates', files, function(err, files) { if (err) { return next(err); } updates = files.sort(semver.compare); debug.db('Final updates'); next(); }); }); }
const version_of_last_default_change = Object.keys(all_defaults).sort((a, b) => compare(a, b)).reverse().find(current_version => gte(electronVersion, current_version)); const defaults = all_defaults[version_of_last_default_change];