Files
alfresco-content-app/scripts/gh/update/latest-version-of.js
T

32 lines
1.1 KiB
JavaScript

function inDays(d1, d2) {
return Math.floor((d2.getTime() - d1.getTime()) / (24 * 3600 * 1000));
}
module.exports = async ({ dependencyName, tag }) => {
tag = tag || 'alpha';
const organization = 'alfresco';
const dependencyFullName = `@${organization}/${dependencyName}`;
const pkg = require('../../../package.json');
const localVersion = pkg.dependencies[dependencyFullName];
const response = await fetch(`https://registry.npmjs.org/${dependencyFullName}`);
if (!response.ok) {
throw new Error(`Failed to fetch ${dependencyFullName} from npm registry: ${response.status}`);
}
const metadata = await response.json();
const matchedPkgVersion = metadata['dist-tags']?.[tag];
const times = metadata.time || {};
if (!matchedPkgVersion || localVersion === matchedPkgVersion) {
return { hasNewVersion: 'false' };
}
let rangeInDays = 'N/A';
if (times[localVersion] && times[matchedPkgVersion]) {
rangeInDays = inDays(new Date(times[localVersion]), new Date(times[matchedPkgVersion]));
}
return { hasNewVersion: 'true', remoteVersion: { name: matchedPkgVersion, rangeInDays }, localVersion };
};