chore(deps): update dependency execa to v9 (#16662)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: sapphi-red <49056869+sapphi-red@users.noreply.github.com>
This commit is contained in:
renovate[bot] 2024-05-13 15:29:57 +08:00 committed by GitHub
parent 6583ad25a1
commit 76d1642c3c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 108 additions and 15 deletions

View File

@ -67,7 +67,7 @@
"eslint-plugin-i": "^2.29.1", "eslint-plugin-i": "^2.29.1",
"eslint-plugin-n": "^17.6.0", "eslint-plugin-n": "^17.6.0",
"eslint-plugin-regexp": "^2.5.0", "eslint-plugin-regexp": "^2.5.0",
"execa": "^8.0.1", "execa": "^9.0.2",
"feed": "^4.2.2", "feed": "^4.2.2",
"fs-extra": "^11.2.0", "fs-extra": "^11.2.0",
"lint-staged": "^15.2.2", "lint-staged": "^15.2.2",

View File

@ -1,5 +1,5 @@
import { join } from 'node:path' import { join } from 'node:path'
import type { ExecaSyncReturnValue, SyncOptions } from 'execa' import type { SyncOptions, SyncResult } from 'execa'
import { execaCommandSync } from 'execa' import { execaCommandSync } from 'execa'
import fs from 'fs-extra' import fs from 'fs-extra'
import { afterEach, beforeAll, expect, test } from 'vitest' import { afterEach, beforeAll, expect, test } from 'vitest'
@ -9,10 +9,10 @@ const CLI_PATH = join(__dirname, '..')
const projectName = 'test-app' const projectName = 'test-app'
const genPath = join(__dirname, projectName) const genPath = join(__dirname, projectName)
const run = ( const run = <SO extends SyncOptions>(
args: string[], args: string[],
options: SyncOptions = {}, options?: SO,
): ExecaSyncReturnValue => { ): SyncResult<SO> => {
return execaCommandSync(`node ${CLI_PATH} ${args.join(' ')}`, options) return execaCommandSync(`node ${CLI_PATH} ${args.join(' ')}`, options)
} }

View File

@ -70,6 +70,7 @@ export async function serve() {
const serverProcess = execaCommand(serverCommand, { const serverProcess = execaCommand(serverCommand, {
cwd: rootDir, cwd: rootDir,
stdio: 'pipe', stdio: 'pipe',
forceKillAfterDelay: 3000,
}) })
collectStreams('server', serverProcess) collectStreams('server', serverProcess)

View File

@ -73,6 +73,7 @@ export async function serve() {
const serverProcess = execaCommand(serverCommand, { const serverProcess = execaCommand(serverCommand, {
cwd: rootDir, cwd: rootDir,
stdio: 'pipe', stdio: 'pipe',
forceKillAfterDelay: 3000,
}) })
collectStreams('server', serverProcess) collectStreams('server', serverProcess)

View File

@ -14,7 +14,7 @@ import { normalizePath } from 'vite'
import { fromComment } from 'convert-source-map' import { fromComment } from 'convert-source-map'
import type { Assertion } from 'vitest' import type { Assertion } from 'vitest'
import { expect } from 'vitest' import { expect } from 'vitest'
import type { ExecaChildProcess } from 'execa' import type { ResultPromise as ExecaResultPromise } from 'execa'
import { isBuild, isWindows, page, testDir } from './vitestSetup' import { isBuild, isWindows, page, testDir } from './vitestSetup'
export * from './vitestSetup' export * from './vitestSetup'
@ -380,7 +380,7 @@ export const formatSourcemapForSnapshot = (map: any): any => {
// helper function to kill process, uses taskkill on windows to ensure child process is killed too // helper function to kill process, uses taskkill on windows to ensure child process is killed too
export async function killProcess( export async function killProcess(
serverProcess: ExecaChildProcess, serverProcess: ExecaResultPromise,
): Promise<void> { ): Promise<void> {
if (isWindows) { if (isWindows) {
try { try {
@ -390,7 +390,7 @@ export async function killProcess(
console.error('failed to taskkill:', e) console.error('failed to taskkill:', e)
} }
} else { } else {
serverProcess.kill('SIGTERM', { forceKillAfterTimeout: 2000 }) serverProcess.kill('SIGTERM')
} }
} }

View File

@ -103,8 +103,8 @@ importers:
specifier: ^2.5.0 specifier: ^2.5.0
version: 2.5.0(eslint@8.57.0) version: 2.5.0(eslint@8.57.0)
execa: execa:
specifier: ^8.0.1 specifier: ^9.0.2
version: 8.0.1 version: 9.0.2
feed: feed:
specifier: ^4.2.2 specifier: ^4.2.2
version: 4.2.2 version: 4.2.2
@ -4368,6 +4368,10 @@ packages:
requiresBuild: true requiresBuild: true
optional: true optional: true
/@sec-ant/readable-stream@0.4.1:
resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==}
dev: true
/@shikijs/core@1.3.0: /@shikijs/core@1.3.0:
resolution: {integrity: sha512-7fedsBfuILDTBmrYZNFI8B6ATTxhQAasUHllHmjvSZPnoq4bULWoTpHwmuQvZ8Aq03/tAa2IGo6RXqWtHdWaCA==} resolution: {integrity: sha512-7fedsBfuILDTBmrYZNFI8B6ATTxhQAasUHllHmjvSZPnoq4bULWoTpHwmuQvZ8Aq03/tAa2IGo6RXqWtHdWaCA==}
dev: true dev: true
@ -4414,6 +4418,11 @@ packages:
resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==}
dev: true dev: true
/@sindresorhus/merge-streams@4.0.0:
resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==}
engines: {node: '>=18'}
dev: true
/@tsconfig/node10@1.0.8: /@tsconfig/node10@1.0.8:
resolution: {integrity: sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==} resolution: {integrity: sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==}
@ -6638,6 +6647,24 @@ packages:
strip-final-newline: 3.0.0 strip-final-newline: 3.0.0
dev: true dev: true
/execa@9.0.2:
resolution: {integrity: sha512-oO281GF7ksH/Ogv1xyDf1prvFta/6/XkGKxRUvA3IB2MU1rCJGlFs86HRZhdooow1ISkR0Np0rOxUCIJVw36Rg==}
engines: {node: '>=18'}
dependencies:
'@sindresorhus/merge-streams': 4.0.0
cross-spawn: 7.0.3
figures: 6.1.0
get-stream: 9.0.1
human-signals: 7.0.0
is-plain-obj: 4.1.0
is-stream: 4.0.1
npm-run-path: 5.3.0
pretty-ms: 9.0.0
signal-exit: 4.1.0
strip-final-newline: 4.0.0
yoctocolors: 2.0.0
dev: true
/exit-hook@2.2.1: /exit-hook@2.2.1:
resolution: {integrity: sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==} resolution: {integrity: sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==}
engines: {node: '>=6'} engines: {node: '>=6'}
@ -6729,6 +6756,13 @@ packages:
web-streams-polyfill: 3.2.1 web-streams-polyfill: 3.2.1
dev: true dev: true
/figures@6.1.0:
resolution: {integrity: sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==}
engines: {node: '>=18'}
dependencies:
is-unicode-supported: 2.0.0
dev: true
/file-entry-cache@6.0.1: /file-entry-cache@6.0.1:
resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
engines: {node: ^10.12.0 || >=12.0.0} engines: {node: ^10.12.0 || >=12.0.0}
@ -6949,6 +6983,14 @@ packages:
engines: {node: '>=16'} engines: {node: '>=16'}
dev: true dev: true
/get-stream@9.0.1:
resolution: {integrity: sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==}
engines: {node: '>=18'}
dependencies:
'@sec-ant/readable-stream': 0.4.1
is-stream: 4.0.1
dev: true
/get-them-args@1.3.2: /get-them-args@1.3.2:
resolution: {integrity: sha512-LRn8Jlk+DwZE4GTlDbT3Hikd1wSHgLMme/+7ddlqKd7ldwR6LjJgTVWzBnR01wnYGe4KgrXjg287RaI22UHmAw==} resolution: {integrity: sha512-LRn8Jlk+DwZE4GTlDbT3Hikd1wSHgLMme/+7ddlqKd7ldwR6LjJgTVWzBnR01wnYGe4KgrXjg287RaI22UHmAw==}
dev: true dev: true
@ -7208,6 +7250,11 @@ packages:
engines: {node: '>=16.17.0'} engines: {node: '>=16.17.0'}
dev: true dev: true
/human-signals@7.0.0:
resolution: {integrity: sha512-74kytxOUSvNbjrT9KisAbaTZ/eJwD/LrbM/kh5j0IhPuJzwuA19dWvniFGwBzN9rVjg+O/e+F310PjObDXS+9Q==}
engines: {node: '>=18.18.0'}
dev: true
/iconv-lite@0.4.24: /iconv-lite@0.4.24:
resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}
engines: {node: '>=0.10.0'} engines: {node: '>=0.10.0'}
@ -7370,6 +7417,11 @@ packages:
engines: {node: '>=8'} engines: {node: '>=8'}
dev: true dev: true
/is-plain-obj@4.1.0:
resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==}
engines: {node: '>=12'}
dev: true
/is-promise@2.2.2: /is-promise@2.2.2:
resolution: {integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==} resolution: {integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==}
dev: true dev: true
@ -7399,6 +7451,16 @@ packages:
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
dev: true dev: true
/is-stream@4.0.1:
resolution: {integrity: sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==}
engines: {node: '>=18'}
dev: true
/is-unicode-supported@2.0.0:
resolution: {integrity: sha512-FRdAyx5lusK1iHG0TWpVtk9+1i+GjrzRffhDg4ovQ7mcidMQ6mj+MhKPmvh7Xwyv5gIS06ns49CA7Sqg7lC22Q==}
engines: {node: '>=18'}
dev: true
/is-what@3.14.1: /is-what@3.14.1:
resolution: {integrity: sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==} resolution: {integrity: sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==}
dev: true dev: true
@ -8517,6 +8579,13 @@ packages:
path-key: 4.0.0 path-key: 4.0.0
dev: true dev: true
/npm-run-path@5.3.0:
resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
dependencies:
path-key: 4.0.0
dev: true
/npmlog@5.0.1: /npmlog@5.0.1:
resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==}
dependencies: dependencies:
@ -8632,6 +8701,11 @@ packages:
type-fest: 4.18.1 type-fest: 4.18.1
dev: true dev: true
/parse-ms@4.0.0:
resolution: {integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==}
engines: {node: '>=18'}
dev: true
/parse-node-version@1.0.1: /parse-node-version@1.0.1:
resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==} resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==}
engines: {node: '>= 0.10'} engines: {node: '>= 0.10'}
@ -8961,6 +9035,13 @@ packages:
react-is: 18.2.0 react-is: 18.2.0
dev: true dev: true
/pretty-ms@9.0.0:
resolution: {integrity: sha512-E9e9HJ9R9NasGOgPaPE8VMeiPKAyWR5jcFpNnwIejslIhWqdqOrb2wShBsncMPUb+BcCd2OPYfh7p2W6oemTng==}
engines: {node: '>=18'}
dependencies:
parse-ms: 4.0.0
dev: true
/printable-characters@1.0.42: /printable-characters@1.0.42:
resolution: {integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==} resolution: {integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==}
dev: true dev: true
@ -9777,6 +9858,11 @@ packages:
engines: {node: '>=12'} engines: {node: '>=12'}
dev: true dev: true
/strip-final-newline@4.0.0:
resolution: {integrity: sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==}
engines: {node: '>=18'}
dev: true
/strip-json-comments@3.1.1: /strip-json-comments@3.1.1:
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
engines: {node: '>=8'} engines: {node: '>=8'}
@ -10663,6 +10749,11 @@ packages:
engines: {node: '>=12.20'} engines: {node: '>=12.20'}
dev: true dev: true
/yoctocolors@2.0.0:
resolution: {integrity: sha512-esbDnt0Z1zI1KgvOZU90hJbL6BkoUbrP9yy7ArNZ6TmxBxydMJTYMf9FZjmwwcA8ZgEQzriQ3hwZ0NYXhlFo8Q==}
engines: {node: '>=18'}
dev: true
/youch@3.2.3: /youch@3.2.3:
resolution: {integrity: sha512-ZBcWz/uzZaQVdCvfV4uk616Bbpf2ee+F/AvuKDR5EwX/Y4v06xWdtMluqTD7+KlZdM93lLm9gMZYo0sKBS0pgw==} resolution: {integrity: sha512-ZBcWz/uzZaQVdCvfV4uk616Bbpf2ee+F/AvuKDR5EwX/Y4v06xWdtMluqTD7+KlZdM93lLm9gMZYo0sKBS0pgw==}
dependencies: dependencies:

View File

@ -2,16 +2,16 @@ import { readdirSync, writeFileSync } from 'node:fs'
import path from 'node:path' import path from 'node:path'
import semver from 'semver' import semver from 'semver'
import colors from 'picocolors' import colors from 'picocolors'
import type { Options as ExecaOptions, ExecaReturnValue } from 'execa' import type { Options as ExecaOptions, ResultPromise } from 'execa'
import { execa } from 'execa' import { execa } from 'execa'
import fs from 'fs-extra' import fs from 'fs-extra'
export async function run( export function run<EO extends ExecaOptions>(
bin: string, bin: string,
args: string[], args: string[],
opts: ExecaOptions = {}, opts?: EO,
): Promise<ExecaReturnValue> { ): ResultPromise<EO & (keyof EO extends 'stdio' ? {} : { stdio: 'inherit' })> {
return execa(bin, args, { stdio: 'inherit', ...opts }) return execa(bin, args, { stdio: 'inherit', ...opts }) as any
} }
export async function getLatestTag(pkgName: string): Promise<string> { export async function getLatestTag(pkgName: string): Promise<string> {