relic/packages/core/src/handlers/checkUpdate.js
2024-04-02 17:34:15 +02:00

43 lines
1.0 KiB
JavaScript

import Logger from "../logger"
import DB from "../db"
import softRead from "./read"
const Log = Logger.child({ service: "CHECK_UPDATE" })
export default async function checkUpdate(pkg_id) {
const pkg = await DB.getPackages(pkg_id)
if (!pkg) {
Log.error("Package not found")
return false
}
Log.info(`Checking update for [${pkg_id}]`)
const remoteSoftManifest = await softRead(pkg.remote_manifest, {
soft: true
})
if (!remoteSoftManifest) {
Log.error("Cannot read remote manifest")
return false
}
if (pkg.version === remoteSoftManifest.version) {
Log.info("No update available")
return false
}
Log.info("Update available")
Log.info("Local:", pkg.version)
Log.info("Remote:", remoteSoftManifest.version)
Log.info("Changelog:", remoteSoftManifest.changelog_url)
return {
id: pkg.id,
local: pkg.version,
remote: remoteSoftManifest.version,
changelog: remoteSoftManifest.changelog_url,
}
}