mirror of
https://github.com/pnpm/pnpm.git
synced 2026-03-31 05:22:00 -04:00
27 lines
875 B
TypeScript
27 lines
875 B
TypeScript
import { type Config } from '@pnpm/config'
|
|
import {
|
|
createStoreController,
|
|
type CreateStoreControllerOptions,
|
|
} from '@pnpm/store-connection-manager'
|
|
import type { ParseWantedDependencyResult } from '@pnpm/parse-wanted-dependency'
|
|
|
|
export type WritePackageOptions = CreateStoreControllerOptions & Pick<Config, 'registries'>
|
|
|
|
export async function writePackage (dep: ParseWantedDependencyResult, dest: string, opts: WritePackageOptions): Promise<void> {
|
|
const store = await createStoreController({
|
|
...opts,
|
|
packageImportMethod: 'clone-or-copy',
|
|
})
|
|
const pkgResponse = await store.ctrl.requestPackage(dep, {
|
|
downloadPriority: 1,
|
|
lockfileDir: opts.dir,
|
|
preferredVersions: {},
|
|
projectDir: opts.dir,
|
|
})
|
|
const { files } = await pkgResponse.fetching!()
|
|
await store.ctrl.importPackage(dest, {
|
|
filesResponse: files,
|
|
force: true,
|
|
})
|
|
}
|