UNPKG

@ethersphere/swarm-cli

Version:
56 lines (55 loc) 1.87 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.checkForUpdates = checkForUpdates; exports.getLatestVersionCheck = getLatestVersionCheck; const fs_1 = require("fs"); const package_json_1 = __importDefault(require("../../package.json")); const node_fetch_1 = __importDefault(require("node-fetch")); const cafe_utility_1 = require("cafe-utility"); const LATEST_RELEASE_URL = 'https://api.github.com/repos/ethersphere/swarm-cli/releases/latest'; async function checkForUpdates(config) { if (process.env.SKIP_VERSION_CHECK === 'true') { return; } const filePath = config.getVersionCheckFilePath(); try { const response = await (0, node_fetch_1.default)(LATEST_RELEASE_URL); if (!response.ok) { return; } const data = (await response.json()); const latestVersion = data.tag_name.replace(/^v/, ''); const versionCheckData = { latestVersion, expiresAt: Date.now() + cafe_utility_1.Dates.days(1), }; if (latestVersion !== package_json_1.default.version) { (0, fs_1.writeFileSync)(filePath, JSON.stringify(versionCheckData)); } } catch { return; } } function getLatestVersionCheck(config) { const filePath = config.getVersionCheckFilePath(); if (!(0, fs_1.existsSync)(filePath)) { return null; } try { const data = JSON.parse((0, fs_1.readFileSync)(filePath).toString()); if (Date.now() > data.expiresAt) { return null; } return { latestVersion: data.latestVersion, expiresAt: data.expiresAt, }; } catch { return null; } }