UNPKG

tiny-updater

Version:

A small update notifier for NPM packages, useful for CLI apps.

27 lines (26 loc) 840 B
/* IMPORT */ import Store from './store.js'; import Utils from './utils.js'; /* MAIN */ //TODO: Account for non-latest releases const updater = async ({ name, version, ttl = 0 }) => { const record = Store.get(name); const timestamp = Date.now(); const isFresh = !record || (timestamp - record.timestampFetch) >= ttl; const latest = isFresh ? await Utils.getLatestVersion(name).catch(Utils.noop) : record?.version; if (!latest) return false; if (isFresh) { const record = { timestampFetch: timestamp, timestampNotification: timestamp, version: latest }; Store.set(name, record); } if (!Utils.isUpdateAvailable(version, latest)) { return false; } if (isFresh) { Utils.notify(name, version, latest); } return true; }; /* EXPORT */ export default updater;