mirror of
https://github.com/tauri-apps/tauri.git
synced 2024-09-22 13:48:13 +03:00
fix(cli): prmpt user before install deps in init (#1381)
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
This commit is contained in:
parent
a2f3f57ff0
commit
5b9e08f2f4
@ -24,15 +24,14 @@ async function manageDependencies(
|
||||
} else if (managementType === ManagementType.Update) {
|
||||
const latestVersion = await getCrateLatestVersion(dependency)
|
||||
if (semverLt(currentVersion, latestVersion)) {
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
||||
const inquired = await inquirer.prompt([
|
||||
const inquired = (await inquirer.prompt([
|
||||
{
|
||||
type: 'confirm',
|
||||
name: 'answer',
|
||||
message: `[CARGO COMMANDS] "${dependency}" latest version is ${latestVersion}. Do you want to update?`,
|
||||
default: false
|
||||
}
|
||||
])
|
||||
])) as { answer: boolean }
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||
if (inquired.answer) {
|
||||
spawnSync('cargo', ['install', dependency, '--force'])
|
||||
|
@ -69,16 +69,14 @@ async function manageDependencies(
|
||||
} else if (managementType === ManagementType.Update) {
|
||||
const latestVersion = await getCrateLatestVersion(dependency)
|
||||
if (semverLt(currentVersion, latestVersion)) {
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-var-requires, @typescript-eslint/no-unsafe-member-access
|
||||
const inquired = await inquirer.prompt([
|
||||
const inquired = (await inquirer.prompt([
|
||||
{
|
||||
type: 'confirm',
|
||||
name: 'answer',
|
||||
message: `[CRATES] "${dependency}" latest version is ${latestVersion}. Do you want to update?`,
|
||||
default: false
|
||||
}
|
||||
])
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-var-requires, @typescript-eslint/no-unsafe-member-access
|
||||
])) as { answer: boolean }
|
||||
if (inquired.answer) {
|
||||
log(`Updating ${dependency}...`)
|
||||
// eslint-disable-next-line security/detect-object-injection
|
||||
|
@ -5,7 +5,8 @@ import {
|
||||
installNpmPackage,
|
||||
installNpmDevPackage,
|
||||
updateNpmPackage,
|
||||
semverLt
|
||||
semverLt,
|
||||
useYarn
|
||||
} from './util'
|
||||
import logger from '../../helpers/logger'
|
||||
import { resolve } from '../../helpers/app-paths'
|
||||
@ -38,25 +39,43 @@ async function manageDependencies(
|
||||
const currentVersion = await getNpmPackageVersion(dependency)
|
||||
if (currentVersion === null) {
|
||||
log(`Installing ${dependency}...`)
|
||||
if (managementType === ManagementType.Install) {
|
||||
await installNpmPackage(dependency)
|
||||
} else if (managementType === ManagementType.InstallDev) {
|
||||
await installNpmDevPackage(dependency)
|
||||
if (
|
||||
managementType === ManagementType.Install ||
|
||||
managementType === ManagementType.InstallDev
|
||||
) {
|
||||
const packageManager = (await useYarn()) ? 'YARN' : 'NPM'
|
||||
const inquired = (await inquirer.prompt([
|
||||
{
|
||||
type: 'confirm',
|
||||
name: 'answer',
|
||||
message: `[${packageManager}]: "Do you want to install ${dependency} ${
|
||||
managementType === ManagementType.InstallDev
|
||||
? 'as dev-dependency'
|
||||
: ''
|
||||
}?"`,
|
||||
default: false
|
||||
}
|
||||
])) as { answer: boolean }
|
||||
if (inquired.answer) {
|
||||
if (managementType === ManagementType.Install) {
|
||||
await installNpmPackage(dependency)
|
||||
} else if (managementType === ManagementType.InstallDev) {
|
||||
await installNpmDevPackage(dependency)
|
||||
}
|
||||
installedDeps.push(dependency)
|
||||
}
|
||||
}
|
||||
installedDeps.push(dependency)
|
||||
} else if (managementType === ManagementType.Update) {
|
||||
const latestVersion = await getNpmLatestVersion(dependency)
|
||||
if (semverLt(currentVersion, latestVersion)) {
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-var-requires, @typescript-eslint/no-unsafe-member-access
|
||||
const inquired = await inquirer.prompt([
|
||||
const inquired = (await inquirer.prompt([
|
||||
{
|
||||
type: 'confirm',
|
||||
name: 'answer',
|
||||
message: `[NPM]: "${dependency}" latest version is ${latestVersion}. Do you want to update?`,
|
||||
default: false
|
||||
}
|
||||
])
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-var-requires, @typescript-eslint/no-unsafe-member-access
|
||||
])) as { answer: boolean }
|
||||
if (inquired.answer) {
|
||||
log(`Updating ${dependency}...`)
|
||||
updateNpmPackage(dependency)
|
||||
@ -78,7 +97,7 @@ async function manageDependencies(
|
||||
return result
|
||||
}
|
||||
|
||||
const dependencies = ['tauri']
|
||||
const dependencies = ['@tauri-apps/api', '@tauri-apps/cli']
|
||||
|
||||
async function install(): Promise<Result> {
|
||||
return await manageDependencies(ManagementType.Install, dependencies)
|
||||
|
@ -117,6 +117,7 @@ function semverLt(first: string, second: string): boolean {
|
||||
}
|
||||
|
||||
export {
|
||||
useYarn,
|
||||
getCrateLatestVersion,
|
||||
getNpmLatestVersion,
|
||||
getNpmPackageVersion,
|
||||
|
Loading…
Reference in New Issue
Block a user