35 lines
984 B
TypeScript
35 lines
984 B
TypeScript
import isNpmOrYarn from './isNpmOrYarn';
|
|
import hasNewVersion from './hasNewVersion';
|
|
import { IUpdate } from './types';
|
|
import borderedText from './borderedText';
|
|
|
|
const simpleUpdateNotifier = async (args: IUpdate) => {
|
|
if (
|
|
!args.alwaysRun &&
|
|
(!process.stdout.isTTY || (isNpmOrYarn && !args.shouldNotifyInNpmScript))
|
|
) {
|
|
if (args.debug) {
|
|
console.error('Opting out of running simpleUpdateNotifier()');
|
|
}
|
|
return;
|
|
}
|
|
|
|
try {
|
|
const latestVersion = await hasNewVersion(args);
|
|
if (latestVersion) {
|
|
console.error(
|
|
borderedText(`New version of ${args.pkg.name} available!
|
|
Current Version: ${args.pkg.version}
|
|
Latest Version: ${latestVersion}`)
|
|
);
|
|
}
|
|
} catch (err) {
|
|
// Catch any network errors or cache writing errors so module doesn't cause a crash
|
|
if (args.debug && err instanceof Error) {
|
|
console.error('Unexpected error in simpleUpdateNotifier():', err);
|
|
}
|
|
}
|
|
};
|
|
|
|
export default simpleUpdateNotifier;
|