mirror of
https://github.com/pnpm/action-setup.git
synced 2024-11-10 09:39:11 +08:00
chore: resolve review
This commit is contained in:
parent
1d51e20937
commit
a576a70bc6
@ -9,21 +9,7 @@ import { Inputs } from '../inputs'
|
||||
export async function runSelfInstaller(inputs: Inputs): Promise<number> {
|
||||
const { version, dest } = inputs
|
||||
const pkgJson = path.join(dest, 'package.json')
|
||||
let target: string
|
||||
|
||||
if (!version) {
|
||||
const packageManager = JSON.parse(await readFile(pkgJson, 'utf8')).packageManager
|
||||
if (packageManager) {
|
||||
if (!packageManager.startsWith('pnpm@')) {
|
||||
throw new Error('packageManager field is not pnpm')
|
||||
}
|
||||
target = packageManager
|
||||
} else {
|
||||
throw new Error('None of packageManager (in package.json) or version (in action config) is defined')
|
||||
}
|
||||
} else {
|
||||
target = `pnpm@${version}`
|
||||
}
|
||||
const target = await readTarget(pkgJson, version)
|
||||
|
||||
await remove(dest)
|
||||
await ensureFile(pkgJson)
|
||||
@ -50,4 +36,21 @@ export async function runSelfInstaller(inputs: Inputs): Promise<number> {
|
||||
return exitCode
|
||||
}
|
||||
|
||||
async function readTarget(packageJsonPath: string, version?: string | undefined) {
|
||||
if (version) return `pnpm@${version}`
|
||||
|
||||
const { packageManager } = JSON.parse(await readFile(packageJsonPath, 'utf8'))
|
||||
if (typeof packageManager !== 'string') {
|
||||
throw new Error(`No pnpm version is specified.
|
||||
Please specify it by one of the following way:
|
||||
- in the GitHub Action config with the key "version"
|
||||
- in the package.json with the key "packageManager" (See https://nodejs.org/api/corepack.html)`)
|
||||
}
|
||||
|
||||
if (!packageManager.startsWith('pnpm@')) {
|
||||
throw new Error('Invalid packageManager field in package.json')
|
||||
}
|
||||
return packageManager
|
||||
}
|
||||
|
||||
export default runSelfInstaller
|
||||
|
Loading…
Reference in New Issue
Block a user