Files
openlayers/tasks/get-latest-release.js
2022-08-18 19:49:47 -06:00

37 lines
823 B
JavaScript

import esMain from 'es-main';
import semver from 'semver';
import {Octokit} from '@octokit/rest';
export async function getLatestRelease() {
const client = new Octokit();
let latest = '0.0.0';
await client.paginate(
client.rest.repos.listReleases,
{
owner: 'openlayers',
repo: 'openlayers',
},
(response) => {
for (const release of response.data) {
const version = semver.valid(release.name);
if (version && semver.gt(version, latest)) {
latest = version;
}
}
}
);
return latest;
}
if (esMain(import.meta)) {
getLatestRelease()
.then((latest) => {
process.stdout.write(`v${latest}\n`, () => process.exit(0));
})
.catch((err) => {
process.stderr.write(`${err.message}\n`, () => process.exit(1));
});
}