pnpm
Version:
A fast implementation of npm install
65 lines (64 loc) • 1.69 kB
TypeScript
import { ResolveResult } from '../resolve';
import { InstallContext } from '../api/install';
import { Package } from '../types';
export declare type PackageMeta = {
rawSpec: string;
optional: boolean;
};
export declare type InstallationOptions = {
optional?: boolean;
keypath?: string[];
parentRoot?: string;
linkLocal: boolean;
force: boolean;
root: string;
store: string;
depth: number;
tag: string;
};
export declare type PackageSpec = {
raw: string;
name: string;
scope: string;
type: string;
spec: string;
rawSpec: string;
};
export declare type InstalledPackage = {
pkg: Package;
optional: boolean;
id: string;
keypath: string[];
name: string;
fromCache: boolean;
dependencies: InstalledPackage[];
};
export declare type PackageContext = ResolveResult & {
optional: boolean;
linkLocal: boolean;
keypath: string[];
id: string;
installationRoot: string;
store: string;
force: boolean;
depth: number;
tag: string;
};
export declare type InstallLog = (msg: string, data?: Object) => void;
/**
* Installs a package.
*
* What it does:
*
* - resolve() - resolve from registry.npmjs.org
* - fetch() - download tarball into node_modules/.store/{name}@{version}
* - recurse into its dependencies
* - symlink node_modules/{name}
*
* @param {Object} ctx - the context.
* @param {Object} pkgMeta - meta info about the package to install.
*
* @example
* install(ctx, 'rimraf@2', './node_modules')
*/
export default function install(ctx: InstallContext, pkgMeta: PackageMeta, modules: string, options: InstallationOptions): Promise<InstalledPackage>;