@pnpm/npm-resolver
Advanced tools
Comparing version 4.0.0 to 5.0.0
@@ -7,3 +7,3 @@ import { LocalPackages, ResolveResult, WantedDependency } from '@pnpm/resolver-base'; | ||
metaCache: PackageMetaCache; | ||
store: string; | ||
storeDir: string; | ||
cert?: string; | ||
@@ -37,7 +37,7 @@ fullMetadata?: boolean; | ||
} & ({ | ||
prefix?: string; | ||
importerDir?: string; | ||
localPackages?: undefined; | ||
} | { | ||
prefix: string; | ||
importerDir: string; | ||
localPackages: LocalPackages; | ||
}); |
@@ -36,4 +36,4 @@ "use strict"; | ||
} | ||
if (typeof opts.store !== 'string') { // tslint:disable-line | ||
throw new TypeError('`opts.store` is required and needs to be a string'); | ||
if (typeof opts.storeDir !== 'string') { // tslint:disable-line | ||
throw new TypeError('`opts.storeDir` is required and needs to be a string'); | ||
} | ||
@@ -64,3 +64,3 @@ const fetch = fetch_from_npm_registry_1.default({ | ||
preferOffline: opts.preferOffline, | ||
storePath: opts.store, | ||
storeDir: opts.storeDir, | ||
}), | ||
@@ -71,7 +71,8 @@ }); | ||
async function resolveNpm(ctx, wantedDependency, opts) { | ||
var _a, _b; | ||
const defaultTag = opts.defaultTag || 'latest'; | ||
const resolvedFromWorkspace = tryResolveFromWorkspace(wantedDependency, { | ||
defaultTag, | ||
importerDir: opts.importerDir, | ||
localPackages: opts.localPackages, | ||
prefix: opts.prefix, | ||
registry: opts.registry, | ||
@@ -93,3 +94,3 @@ }); | ||
dryRun: opts.dryRun === true, | ||
preferredVersionSelector: opts.preferredVersions && opts.preferredVersions[spec.name], | ||
preferredVersionSelector: (_a = opts.preferredVersions) === null || _a === void 0 ? void 0 : _a[spec.name], | ||
registry: opts.registry, | ||
@@ -100,3 +101,3 @@ }); | ||
if (opts.localPackages) { | ||
const resolvedFromLocal = tryResolveFromLocalPackages(opts.localPackages, spec, opts.prefix); | ||
const resolvedFromLocal = tryResolveFromLocalPackages(opts.localPackages, spec, opts.importerDir); | ||
if (resolvedFromLocal) | ||
@@ -111,3 +112,3 @@ return resolvedFromLocal; | ||
if (opts.localPackages) { | ||
const resolvedFromLocal = tryResolveFromLocalPackages(opts.localPackages, spec, opts.prefix); | ||
const resolvedFromLocal = tryResolveFromLocalPackages(opts.localPackages, spec, opts.importerDir); | ||
if (resolvedFromLocal) | ||
@@ -118,6 +119,6 @@ return resolvedFromLocal; | ||
} | ||
if (opts.localPackages && opts.localPackages[pickedPackage.name]) { | ||
if ((_b = opts.localPackages) === null || _b === void 0 ? void 0 : _b[pickedPackage.name]) { | ||
if (opts.localPackages[pickedPackage.name][pickedPackage.version]) { | ||
return { | ||
...resolveFromLocalPackage(opts.localPackages[pickedPackage.name][pickedPackage.version], spec.normalizedPref, opts.prefix), | ||
...resolveFromLocalPackage(opts.localPackages[pickedPackage.name][pickedPackage.version], spec.normalizedPref, opts.importerDir), | ||
latest: meta['dist-tags'].latest, | ||
@@ -129,3 +130,3 @@ }; | ||
return { | ||
...resolveFromLocalPackage(opts.localPackages[pickedPackage.name][localVersion], spec.normalizedPref, opts.prefix), | ||
...resolveFromLocalPackage(opts.localPackages[pickedPackage.name][localVersion], spec.normalizedPref, opts.importerDir), | ||
latest: meta['dist-tags'].latest, | ||
@@ -144,4 +145,4 @@ }; | ||
latest: meta['dist-tags'].latest, | ||
manifest: pickedPackage, | ||
normalizedPref: spec.normalizedPref, | ||
package: pickedPackage, | ||
resolution, | ||
@@ -152,3 +153,4 @@ resolvedVia: 'npm-registry', | ||
function tryResolveFromWorkspace(wantedDependency, opts) { | ||
if (!wantedDependency.pref || !wantedDependency.pref.startsWith('workspace:')) { | ||
var _a; | ||
if (!((_a = wantedDependency.pref) === null || _a === void 0 ? void 0 : _a.startsWith('workspace:'))) { | ||
return null; | ||
@@ -163,6 +165,6 @@ } | ||
} | ||
if (!opts.prefix) { | ||
throw new Error('Cannot resolve package from workspace because opts.prefix is not defined'); | ||
if (!opts.importerDir) { | ||
throw new Error('Cannot resolve package from workspace because opts.importerDir is not defined'); | ||
} | ||
const resolvedFromLocal = tryResolveFromLocalPackages(opts.localPackages, spec, opts.prefix); | ||
const resolvedFromLocal = tryResolveFromLocalPackages(opts.localPackages, spec, opts.importerDir); | ||
if (!resolvedFromLocal) { | ||
@@ -173,3 +175,3 @@ throw new error_1.default('NO_MATCHING_VERSION_INSIDE_WORKSPACE', `No matching version found for ${wantedDependency.alias}@${pref} inside the workspace`); | ||
} | ||
function tryResolveFromLocalPackages(localPackages, spec, prefix) { | ||
function tryResolveFromLocalPackages(localPackages, spec, importerDir) { | ||
if (!localPackages[spec.name]) | ||
@@ -180,3 +182,3 @@ return null; | ||
return null; | ||
return resolveFromLocalPackage(localPackages[spec.name][localVersion], spec.normalizedPref, prefix); | ||
return resolveFromLocalPackage(localPackages[spec.name][localVersion], spec.normalizedPref, importerDir); | ||
} | ||
@@ -196,9 +198,9 @@ function pickMatchingLocalVersionOrNull(versions, spec) { | ||
} | ||
function resolveFromLocalPackage(localPackage, normalizedPref, prefix) { | ||
function resolveFromLocalPackage(localPackage, normalizedPref, importerDir) { | ||
return { | ||
id: `link:${normalize(path.relative(prefix, localPackage.directory))}`, | ||
id: `link:${normalize(path.relative(importerDir, localPackage.dir))}`, | ||
manifest: localPackage.manifest, | ||
normalizedPref, | ||
package: localPackage.package, | ||
resolution: { | ||
directory: localPackage.directory, | ||
directory: localPackage.dir, | ||
type: 'directory', | ||
@@ -205,0 +207,0 @@ }, |
@@ -39,3 +39,3 @@ import { PackageManifest } from '@pnpm/types'; | ||
metaCache: PackageMetaCache; | ||
storePath: string; | ||
storeDir: string; | ||
offline?: boolean | undefined; | ||
@@ -42,0 +42,0 @@ preferOffline?: boolean | undefined; |
@@ -19,2 +19,3 @@ "use strict"; | ||
exports.default = async (ctx, spec, opts) => { | ||
var _a, _b; | ||
opts = opts || {}; | ||
@@ -29,3 +30,3 @@ const cachedMeta = ctx.metaCache.get(spec.name); | ||
const registryName = getRegistryName(opts.registry); | ||
const pkgMirror = path.join(ctx.storePath, registryName, spec.name); | ||
const pkgMirror = path.join(ctx.storeDir, registryName, spec.name); | ||
const limit = metafileOperationLimits[pkgMirror] = metafileOperationLimits[pkgMirror] || p_limit_1.default(1); | ||
@@ -57,3 +58,3 @@ let metaCachedInStore; | ||
// otherwise it is probably out of date | ||
if (metaCachedInStore && metaCachedInStore.versions && metaCachedInStore.versions[spec.fetchSpec]) { | ||
if ((_b = (_a = metaCachedInStore) === null || _a === void 0 ? void 0 : _a.versions) === null || _b === void 0 ? void 0 : _b[spec.fetchSpec]) { | ||
return { | ||
@@ -60,0 +61,0 @@ meta: metaCachedInStore, |
{ | ||
"name": "@pnpm/npm-resolver", | ||
"version": "4.0.0", | ||
"version": "5.0.0", | ||
"description": "Resolver for npm-hosted packages", | ||
@@ -36,3 +36,3 @@ "main": "lib/index.js", | ||
"@pnpm/error": "1.0.0", | ||
"@pnpm/resolver-base": "4.0.0", | ||
"@pnpm/resolver-base": "5.0.0", | ||
"@pnpm/types": "4.0.0", | ||
@@ -56,5 +56,5 @@ "credentials-by-uri": "1.0.0", | ||
"@types/normalize-path": "^3.0.0", | ||
"@types/semver": "6", | ||
"@types/ssri": "^6.0.0", | ||
"nock": "11.3.6", | ||
"@types/semver": "^6.2.0", | ||
"@types/ssri": "^6.0.1", | ||
"nock": "11.7.0", | ||
"path-exists": "4.0.0", | ||
@@ -61,0 +61,0 @@ "rimraf": "3.0.0", |
26120
571
+ Added@pnpm/resolver-base@5.0.0(transitive)
- Removed@pnpm/resolver-base@4.0.0(transitive)
Updated@pnpm/resolver-base@5.0.0