mirror of
https://github.com/pnpm/pnpm.git
synced 2026-07-20 12:42:38 -04:00
refactor: always send projects array to agent, remove legacy single-project fields
This commit is contained in:
@@ -63,12 +63,14 @@ export async function fetchFromPnpmRegistry (
|
||||
): Promise<FetchFromPnpmRegistryResult> {
|
||||
const storeIntegrities = readStoreIntegrities(opts.storeIndex)
|
||||
|
||||
const projects = opts.projects ?? [{
|
||||
dir: '.',
|
||||
dependencies: opts.dependencies,
|
||||
devDependencies: opts.devDependencies,
|
||||
}]
|
||||
|
||||
const requestBody = JSON.stringify({
|
||||
projects: opts.projects ?? [{
|
||||
dir: '.',
|
||||
dependencies: opts.dependencies,
|
||||
devDependencies: opts.devDependencies,
|
||||
}],
|
||||
projects,
|
||||
overrides: opts.overrides,
|
||||
nodeVersion: opts.nodeVersion ?? process.version.slice(1),
|
||||
os: process.platform,
|
||||
|
||||
@@ -133,7 +133,11 @@ interface InstallRequestProject {
|
||||
}
|
||||
|
||||
interface InstallRequest {
|
||||
projects: InstallRequestProject[]
|
||||
/** Single project (legacy) */
|
||||
dependencies?: Record<string, string>
|
||||
devDependencies?: Record<string, string>
|
||||
/** Multiple projects (workspace) */
|
||||
projects?: InstallRequestProject[]
|
||||
overrides?: Record<string, string>
|
||||
peerDependencyRules?: Record<string, unknown>
|
||||
nodeVersion?: string
|
||||
@@ -193,7 +197,12 @@ async function handleInstall (
|
||||
const tmpDir = await fs.mkdtemp(path.join(os.tmpdir(), 'pnpm-agent-'))
|
||||
|
||||
try {
|
||||
const { projects } = request
|
||||
// Build project list — support both single-project and workspace
|
||||
const projects = request.projects ?? [{
|
||||
dir: '.',
|
||||
dependencies: request.dependencies,
|
||||
devDependencies: request.devDependencies,
|
||||
}]
|
||||
|
||||
// Create package.json for each project
|
||||
await Promise.all(projects.map(async (project) => {
|
||||
|
||||
@@ -1883,16 +1883,21 @@ async function installFromPnpmRegistry (
|
||||
// Open the store index to read integrities and write new entries
|
||||
const storeIndex = new StoreIndex(opts.storeDir)
|
||||
|
||||
const projectsList = (allInstallProjects ?? [{ rootDir, manifest }]).map(p => ({
|
||||
dir: path.relative(lockfileDir, p.rootDir) || '.',
|
||||
dependencies: p.manifest.dependencies,
|
||||
devDependencies: p.manifest.devDependencies,
|
||||
}))
|
||||
// Build projects list for workspace support
|
||||
const projectsList = allInstallProjects && allInstallProjects.length > 1
|
||||
? allInstallProjects.map(p => ({
|
||||
dir: path.relative(lockfileDir, p.rootDir) || '.',
|
||||
dependencies: p.manifest.dependencies,
|
||||
devDependencies: p.manifest.devDependencies,
|
||||
}))
|
||||
: undefined
|
||||
|
||||
const { lockfile, stats, fileDownloads, indexEntries } = await fetchFromPnpmRegistry({
|
||||
registryUrl: opts.agent!,
|
||||
storeDir: opts.storeDir,
|
||||
storeIndex,
|
||||
dependencies: projectsList ? undefined : manifest.dependencies,
|
||||
devDependencies: projectsList ? undefined : manifest.devDependencies,
|
||||
projects: projectsList,
|
||||
overrides: opts.overrides,
|
||||
minimumReleaseAge: opts.minimumReleaseAge,
|
||||
|
||||
Reference in New Issue
Block a user