@ethersphere/swarm-cli
Version:
CLI tool for Bee
56 lines (55 loc) • 1.87 kB
JavaScript
;
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;
}
}