UNPKG

@ou-imdt/create

Version:

Command line tool to create team boilerplate.

31 lines (27 loc) 1.45 kB
const gradient = require("gradient-string"); const pkg = require('./../package.json'); module.exports = async () => { try { // Create a timeout promise that rejects after 3 seconds const timeoutPromise = new Promise((_, reject) => setTimeout(() => reject(new Error('Request timeout')), 3000) ); // Race between fetch and timeout const response = await Promise.race([ fetch("https://registry.npmjs.org/@ou-imdt/create/latest"), timeoutPromise ]); const packageDetails = await response.json(); if (packageDetails.version !== pkg.version) { console.log(gradient.pastel.multiline([`@ou-imdt/create outdated. Latest version is v${packageDetails.version}, you are using v${pkg.version}.`, "Please exit (ctrl + c) and run 'npm update -g @ou-imdt/create'.", ""].join('\n'))); } else { console.log(gradient.pastel.multiline([`You are using the latest version of @ou-imdt/create (v${pkg.version}).`, ""].join('\n'))); } } catch (e) { if (e.message === 'Request timeout') { console.log(gradient.pastel.multiline([`It was not possible to check if this is the latest version of create (request timeout).`, ""].join('\n'))); } else { console.log(gradient.pastel.multiline([`Unable to retrieve package details. Skipping version check.`, ""].join('\n'))); } } }