update checker middleware

This commit is contained in:
Danya H 2024-06-13 19:41:05 +01:00
parent 9204eb81be
commit 04412d7cbc
3 changed files with 16 additions and 13 deletions

View File

@ -4,6 +4,8 @@ import { input, select } from '@inquirer/prompts'
import clone from 'git-clone'
import path from 'node:path'
import { checkForUpdate } from '../utils/update'
function builder(yargs: Argv) {
return yargs
.option('projectName', {
@ -18,6 +20,7 @@ function builder(yargs: Argv) {
type: 'string',
demandOption: false,
})
.middleware(async () => await checkForUpdate())
}
async function handler(args: ArgumentsCamelCase) {

View File

@ -1,9 +1,6 @@
import yargs from 'yargs'
import create from './commands/create'
import { checkForUpdate } from './utils/update'
yargs.middleware(checkForUpdate)
yargs
.usage('<cmd> [args]')

View File

@ -10,17 +10,20 @@ type Version = {
message: string
}
export async function checkForUpdate() {
export async function checkForUpdate(): Promise<void> {
return new Promise(res => {
yargs.showVersion(version =>
axios.get<Version[]>(latestVersionURL).then(({ data }) => {
axios
.get<Version[]>(latestVersionURL)
.then(({ data }) => {
const latestVersion = data[0].name
if (!(latestVersion === version))
notifyUserAboutUpdate(latestVersion)
return
}),
})
.then(() => res()),
)
})
}
function notifyUserAboutUpdate(version: string) {