chore: extract common get-validated-args (#53165)
- Closes #53044 Co-authored-by: ZYSzys <23313266+ZYSzys@users.noreply.github.com>
This commit is contained in:
parent
e1133cf097
commit
32278603fd
8 changed files with 32 additions and 71 deletions
|
@ -7,6 +7,7 @@ import build from '../build'
|
|||
import { printAndExit } from '../server/lib/utils'
|
||||
import isError from '../lib/is-error'
|
||||
import { getProjectDir } from '../lib/get-project-dir'
|
||||
import { getValidatedArgs } from '../lib/get-validated-args'
|
||||
|
||||
const nextBuild: CliCommand = (argv) => {
|
||||
const validArgs: arg.Spec = {
|
||||
|
@ -25,15 +26,8 @@ const nextBuild: CliCommand = (argv) => {
|
|||
'-d': '--debug',
|
||||
}
|
||||
|
||||
let args: arg.Result<arg.Spec>
|
||||
try {
|
||||
args = arg(validArgs, { argv })
|
||||
} catch (error) {
|
||||
if (isError(error) && error.code === 'ARG_UNKNOWN_OPTION') {
|
||||
return printAndExit(error.message, 1)
|
||||
}
|
||||
throw error
|
||||
}
|
||||
const args = getValidatedArgs(validArgs, argv)
|
||||
|
||||
if (args['--help']) {
|
||||
printAndExit(
|
||||
`
|
||||
|
|
|
@ -4,7 +4,6 @@ import { startServer, StartServerOptions } from '../server/lib/start-server'
|
|||
import { getPort, printAndExit } from '../server/lib/utils'
|
||||
import * as Log from '../build/output/log'
|
||||
import { CliCommand } from '../lib/commands'
|
||||
import isError from '../lib/is-error'
|
||||
import { getProjectDir } from '../lib/get-project-dir'
|
||||
import { CONFIG_FILES, PHASE_DEVELOPMENT_SERVER } from '../shared/lib/constants'
|
||||
import path from 'path'
|
||||
|
@ -20,6 +19,7 @@ import Watchpack from 'watchpack'
|
|||
import stripAnsi from 'next/dist/compiled/strip-ansi'
|
||||
import { getPossibleInstrumentationHookFilenames } from '../build/worker'
|
||||
import { resetEnv } from '@next/env'
|
||||
import { getValidatedArgs } from '../lib/get-validated-args'
|
||||
|
||||
let dir: string
|
||||
let config: NextConfigComplete
|
||||
|
@ -131,15 +131,7 @@ const nextDev: CliCommand = async (argv) => {
|
|||
'-p': '--port',
|
||||
'-H': '--hostname',
|
||||
}
|
||||
let args: arg.Result<arg.Spec>
|
||||
try {
|
||||
args = arg(validArgs, { argv })
|
||||
} catch (error) {
|
||||
if (isError(error) && error.code === 'ARG_UNKNOWN_OPTION') {
|
||||
return printAndExit(error.message, 1)
|
||||
}
|
||||
throw error
|
||||
}
|
||||
const args = getValidatedArgs(validArgs, argv)
|
||||
if (args['--help']) {
|
||||
console.log(`
|
||||
Description
|
||||
|
|
|
@ -8,8 +8,8 @@ import * as Log from '../build/output/log'
|
|||
import { printAndExit } from '../server/lib/utils'
|
||||
import { CliCommand } from '../lib/commands'
|
||||
import { trace } from '../trace'
|
||||
import isError from '../lib/is-error'
|
||||
import { getProjectDir } from '../lib/get-project-dir'
|
||||
import { getValidatedArgs } from '../lib/get-validated-args'
|
||||
|
||||
const nextExport: CliCommand = (argv) => {
|
||||
const nextExportCliSpan = trace('next-export-cli')
|
||||
|
@ -25,15 +25,7 @@ const nextExport: CliCommand = (argv) => {
|
|||
'-o': '--outdir',
|
||||
'-s': '--silent',
|
||||
}
|
||||
let args: arg.Result<arg.Spec>
|
||||
try {
|
||||
args = arg(validArgs, { argv })
|
||||
} catch (error) {
|
||||
if (isError(error) && error.code === 'ARG_UNKNOWN_OPTION') {
|
||||
return printAndExit(error.message, 1)
|
||||
}
|
||||
throw error
|
||||
}
|
||||
const args = getValidatedArgs(validArgs, argv)
|
||||
if (args['--help']) {
|
||||
console.log(`
|
||||
Description
|
||||
|
|
|
@ -8,11 +8,10 @@ import arg from 'next/dist/compiled/arg/index.js'
|
|||
const { fetch } = require('next/dist/compiled/undici') as {
|
||||
fetch: typeof global.fetch
|
||||
}
|
||||
import { printAndExit } from '../server/lib/utils'
|
||||
import { CliCommand } from '../lib/commands'
|
||||
import isError from '../lib/is-error'
|
||||
import { PHASE_INFO } from '../shared/lib/constants'
|
||||
import loadConfig from '../server/config'
|
||||
import { getValidatedArgs } from '../lib/get-validated-args'
|
||||
|
||||
const dir = process.cwd()
|
||||
|
||||
|
@ -50,15 +49,7 @@ const nextInfo: CliCommand = async (argv) => {
|
|||
// Aliases
|
||||
'-h': '--help',
|
||||
}
|
||||
let args: arg.Result<arg.Spec>
|
||||
try {
|
||||
args = arg(validArgs, { argv })
|
||||
} catch (error) {
|
||||
if (isError(error) && error.code === 'ARG_UNKNOWN_OPTION') {
|
||||
return printAndExit(error.message, 1)
|
||||
}
|
||||
throw error
|
||||
}
|
||||
const args = getValidatedArgs(validArgs, argv)
|
||||
|
||||
if (args['--help']) {
|
||||
console.log(
|
||||
|
|
|
@ -16,10 +16,10 @@ import loadConfig from '../server/config'
|
|||
import { PHASE_PRODUCTION_BUILD } from '../shared/lib/constants'
|
||||
import { eventLintCheckCompleted } from '../telemetry/events'
|
||||
import { CompileError } from '../lib/compile-error'
|
||||
import isError from '../lib/is-error'
|
||||
import { getProjectDir } from '../lib/get-project-dir'
|
||||
import { findPagesDir } from '../lib/find-pages-dir'
|
||||
import { verifyTypeScriptSetup } from '../lib/verifyTypeScriptSetup'
|
||||
import { getValidatedArgs } from '../lib/get-validated-args'
|
||||
|
||||
const eslintOptions = (args: arg.Spec, defaultCacheLocation: string) => ({
|
||||
overrideConfigFile: args['--config'] || null,
|
||||
|
@ -93,15 +93,8 @@ const nextLint: CliCommand = async (argv) => {
|
|||
'-o': '--output-file',
|
||||
}
|
||||
|
||||
let args: arg.Result<arg.Spec>
|
||||
try {
|
||||
args = arg({ ...validArgs, ...validEslintArgs }, { argv })
|
||||
} catch (error) {
|
||||
if (isError(error) && error.code === 'ARG_UNKNOWN_OPTION') {
|
||||
return printAndExit(error.message, 1)
|
||||
}
|
||||
throw error
|
||||
}
|
||||
const args = getValidatedArgs({ ...validArgs, ...validEslintArgs }, argv)
|
||||
|
||||
if (args['--help']) {
|
||||
printAndExit(
|
||||
`
|
||||
|
|
|
@ -3,12 +3,12 @@
|
|||
import arg from 'next/dist/compiled/arg/index.js'
|
||||
import { startServer } from '../server/lib/start-server'
|
||||
import { getPort, printAndExit } from '../server/lib/utils'
|
||||
import isError from '../lib/is-error'
|
||||
import { getProjectDir } from '../lib/get-project-dir'
|
||||
import { CliCommand } from '../lib/commands'
|
||||
import { resolve } from 'path'
|
||||
import { PHASE_PRODUCTION_SERVER } from '../shared/lib/constants'
|
||||
import loadConfig from '../server/config'
|
||||
import { getValidatedArgs } from '../lib/get-validated-args'
|
||||
|
||||
const nextStart: CliCommand = async (argv) => {
|
||||
const validArgs: arg.Spec = {
|
||||
|
@ -23,15 +23,7 @@ const nextStart: CliCommand = async (argv) => {
|
|||
'-p': '--port',
|
||||
'-H': '--hostname',
|
||||
}
|
||||
let args: arg.Result<arg.Spec>
|
||||
try {
|
||||
args = arg(validArgs, { argv })
|
||||
} catch (error) {
|
||||
if (isError(error) && error.code === 'ARG_UNKNOWN_OPTION') {
|
||||
return printAndExit(error.message, 1)
|
||||
}
|
||||
throw error
|
||||
}
|
||||
const args = getValidatedArgs(validArgs, argv)
|
||||
if (args['--help']) {
|
||||
console.log(`
|
||||
Description
|
||||
|
|
|
@ -1,10 +1,9 @@
|
|||
#!/usr/bin/env node
|
||||
import chalk from 'next/dist/compiled/chalk'
|
||||
import arg from 'next/dist/compiled/arg/index.js'
|
||||
import { printAndExit } from '../server/lib/utils'
|
||||
import { CliCommand } from '../lib/commands'
|
||||
import { Telemetry } from '../telemetry/storage'
|
||||
import isError from '../lib/is-error'
|
||||
import { getValidatedArgs } from '../lib/get-validated-args'
|
||||
|
||||
const nextTelemetry: CliCommand = (argv) => {
|
||||
const validArgs: arg.Spec = {
|
||||
|
@ -15,15 +14,7 @@ const nextTelemetry: CliCommand = (argv) => {
|
|||
// Aliases
|
||||
'-h': '--help',
|
||||
}
|
||||
let args: arg.Result<arg.Spec>
|
||||
try {
|
||||
args = arg(validArgs, { argv })
|
||||
} catch (error) {
|
||||
if (isError(error) && error.code === 'ARG_UNKNOWN_OPTION') {
|
||||
return printAndExit(error.message, 1)
|
||||
}
|
||||
throw error
|
||||
}
|
||||
const args = getValidatedArgs(validArgs, argv)
|
||||
|
||||
if (args['--help']) {
|
||||
console.log(
|
||||
|
|
16
packages/next/src/lib/get-validated-args.ts
Normal file
16
packages/next/src/lib/get-validated-args.ts
Normal file
|
@ -0,0 +1,16 @@
|
|||
import arg from 'next/dist/compiled/arg/index.js'
|
||||
import { printAndExit } from '../server/lib/utils'
|
||||
import isError from './is-error'
|
||||
|
||||
export function getValidatedArgs(validArgs: arg.Spec, argv?: string[]) {
|
||||
let args: arg.Result<arg.Spec>
|
||||
try {
|
||||
args = arg(validArgs, { argv })
|
||||
} catch (error) {
|
||||
if (isError(error) && error.code === 'ARG_UNKNOWN_OPTION') {
|
||||
printAndExit(error.message, 1)
|
||||
}
|
||||
throw error
|
||||
}
|
||||
return args
|
||||
}
|
Loading…
Reference in a new issue