refactor(npm-resolver): remove options.metaCache

This commit is contained in:
Zoltan Kochan
2020-08-17 00:59:42 +03:00
parent 6b8e1c7c9c
commit a1cdae3dc7
22 changed files with 24 additions and 112 deletions

View File

@@ -0,0 +1,7 @@
---
"@pnpm/npm-resolver": major
"@pnpm/default-resolver": major
"@pnpm/client": major
---
Does not accept a `metaCache` option anymore. Caching happens internally, using `lru-cache`.

View File

@@ -5,7 +5,6 @@ import test = require('tape')
test('createClient()', t => {
const client = createClient({
authConfig: { registry: 'https://registry.npmjs.org/' },
metaCache: new Map(),
storeDir: '',
})
t.equal(typeof client, 'object')

View File

@@ -6,7 +6,6 @@ import test = require('tape')
test('createResolver()', t => {
const getCredentials = () => ({ authHeaderValue: '', alwaysAuth: false })
const resolve = createResolver(createFetchFromRegistry({}), getCredentials, {
metaCache: new Map(),
storeDir: '.store',
})
t.equal(typeof resolve, 'function')

View File

@@ -37,7 +37,6 @@ export default async function testDefaults (
const authConfig = { registry }
const { resolve, fetchers } = createClient({
authConfig,
metaCache: new Map(),
retry: retryOpts,
storeDir,
...resolveOpts,

View File

@@ -20,7 +20,6 @@
const createResolveFromNpm = require('@pnpm/npm-resolver').default
const resolveFromNpm = createResolveFromNpm({
metaCache: new Map(),
store: '.store',
offline: false,
rawConfig: {

View File

@@ -2,7 +2,6 @@
const createResolveFromNpm = require('@pnpm/npm-resolver').default
const resolveFromNpm = createResolveFromNpm({
metaCache: new Map(),
storeDir: '.store',
offline: false,
rawConfig: {

View File

@@ -41,6 +41,7 @@
"@pnpm/types": "workspace:6.2.0",
"encode-registry": "^2.0.2",
"load-json-file": "^6.2.0",
"lru-cache": "^6.0.0",
"mz": "^2.7.0",
"normalize-path": "^3.0.0",
"p-limit": "^3.0.2",
@@ -56,6 +57,7 @@
"@pnpm/fetch": "workspace:^2.1.3",
"@pnpm/logger": "^3.2.2",
"@pnpm/npm-resolver": "link:",
"@types/lru-cache": "^5.1.0",
"@types/mz": "^2.7.1",
"@types/normalize-path": "^3.0.0",
"@types/semver": "^7.3.1",

View File

@@ -12,6 +12,7 @@ import {
WorkspacePackages,
} from '@pnpm/resolver-base'
import { DependencyManifest } from '@pnpm/types'
import LRU = require('lru-cache')
import normalize = require('normalize-path')
import pMemoize = require('p-memoize')
import path = require('path')
@@ -50,7 +51,6 @@ const META_DIR = 'metadata'
const FULL_META_DIR = 'metadata-full'
export interface ResolverFactoryOptions {
metaCache: PackageMetaCache,
storeDir: string,
fullMetadata?: boolean,
offline?: boolean,
@@ -63,9 +63,6 @@ export default function createResolver (
getCredentials: GetCredentials,
opts: ResolverFactoryOptions
) {
if (typeof opts.metaCache !== 'object') { // tslint:disable-line
throw new TypeError('`opts.metaCache` is required and needs to be an object')
}
if (typeof opts.storeDir !== 'string') { // tslint:disable-line
throw new TypeError('`opts.storeDir` is required and needs to be a string')
}
@@ -74,11 +71,15 @@ export default function createResolver (
maxAge: 1000 * 20, // 20 seconds
})
const getAuthHeaderValueByURI = (registry: string) => getCredentials(registry).authHeaderValue
const metaCache = new LRU({
max: 10000,
maxAge: 120 * 1000, // 2 minutes
}) as any // tslint:disable-line:no-any
return resolveNpm.bind(null, {
getAuthHeaderValueByURI,
pickPackage: pickPackage.bind(null, {
fetch,
metaCache: opts.metaCache,
metaCache,
metaDir: opts.fullMetadata ? FULL_META_DIR : META_DIR,
offline: opts.offline,
preferOffline: opts.preferOffline,

View File

@@ -44,7 +44,6 @@ test('resolveFromNpm()', async t => {
const storeDir = tempy.directory()
const resolve = createResolveFromNpm({
metaCache: new Map(),
rawConfig: { registry },
storeDir,
})
@@ -80,7 +79,6 @@ test('dry run', async t => {
const storeDir = tempy.directory()
const resolve = createResolveFromNpm({
metaCache: new Map(),
rawConfig: { registry },
storeDir,
})
@@ -114,7 +112,6 @@ test('resolve to latest when no pref specified', async t => {
.reply(200, isPositiveMeta)
const resolveFromNpm = createResolveFromNpm({
metaCache: new Map(),
rawConfig: { registry },
storeDir: tempy.directory(),
})
@@ -131,7 +128,6 @@ test('resolve to defaultTag when no pref specified', async t => {
.reply(200, isPositiveMeta)
const resolveFromNpm = createResolveFromNpm({
metaCache: new Map(),
rawConfig: { registry },
storeDir: tempy.directory(),
})
@@ -149,7 +145,6 @@ test('resolve to biggest non-deprecated version that satisfies the range', async
.reply(200, isPositiveMetaWithDeprecated)
const resolveFromNpm = createResolveFromNpm({
metaCache: new Map(),
rawConfig: { registry },
storeDir: tempy.directory(),
})
@@ -166,7 +161,6 @@ test('resolve to a deprecated version if there are no non-deprecated ones that s
.reply(200, isPositiveMetaWithDeprecated)
const resolveFromNpm = createResolveFromNpm({
metaCache: new Map(),
rawConfig: { registry },
storeDir: tempy.directory(),
})
@@ -183,7 +177,6 @@ test('can resolve aliased dependency', async t => {
.reply(200, isPositiveMeta)
const resolveFromNpm = createResolveFromNpm({
metaCache: new Map(),
rawConfig: { registry },
storeDir: tempy.directory(),
})
@@ -200,7 +193,6 @@ test('can resolve aliased dependency w/o version specifier', async t => {
.reply(200, isPositiveMeta)
const resolveFromNpm = createResolveFromNpm({
metaCache: new Map(),
rawConfig: { registry },
storeDir: tempy.directory(),
})
@@ -217,7 +209,6 @@ test('can resolve aliased dependency w/o version specifier to default tag', asyn
.reply(200, isPositiveMeta)
const resolveFromNpm = createResolveFromNpm({
metaCache: new Map(),
rawConfig: { registry },
storeDir: tempy.directory(),
})
@@ -235,7 +226,6 @@ test('can resolve aliased scoped dependency', async t => {
.reply(200, sindresorhusIsMeta)
const resolveFromNpm = createResolveFromNpm({
metaCache: new Map(),
rawConfig: { registry },
storeDir: tempy.directory(),
})
@@ -252,7 +242,6 @@ test('can resolve aliased scoped dependency w/o version specifier', async t => {
.reply(200, sindresorhusIsMeta)
const resolveFromNpm = createResolveFromNpm({
metaCache: new Map(),
rawConfig: { registry },
storeDir: tempy.directory(),
})
@@ -269,7 +258,6 @@ test('can resolve package with version prefixed with v', async t => {
.reply(200, isPositiveMeta)
const resolveFromNpm = createResolveFromNpm({
metaCache: new Map(),
rawConfig: { registry },
storeDir: tempy.directory(),
})
@@ -286,7 +274,6 @@ test('can resolve package version loosely', async t => {
.reply(200, isPositiveMeta)
const resolveFromNpm = createResolveFromNpm({
metaCache: new Map(),
rawConfig: { registry },
storeDir: tempy.directory(),
})
@@ -306,7 +293,6 @@ test("resolves to latest if it's inside the wanted range. Even if there are newe
})
const resolveFromNpm = createResolveFromNpm({
metaCache: new Map(),
rawConfig: { registry },
storeDir: tempy.directory(),
})
@@ -331,7 +317,6 @@ test("resolves to latest if it's inside the preferred range. Even if there are n
})
const resolveFromNpm = createResolveFromNpm({
metaCache: new Map(),
rawConfig: { registry },
storeDir: tempy.directory(),
})
@@ -359,7 +344,6 @@ test("resolve using the wanted range, when it doesn't intersect with the preferr
})
const resolveFromNpm = createResolveFromNpm({
metaCache: new Map(),
rawConfig: { registry },
storeDir: tempy.directory(),
})
@@ -386,7 +370,6 @@ test("use the preferred version if it's inside the wanted range", async t => {
})
const resolveFromNpm = createResolveFromNpm({
metaCache: new Map(),
rawConfig: { registry },
storeDir: tempy.directory(),
})
@@ -414,7 +397,6 @@ test("ignore the preferred version if it's not inside the wanted range", async t
})
const resolveFromNpm = createResolveFromNpm({
metaCache: new Map(),
rawConfig: { registry },
storeDir: tempy.directory(),
})
@@ -440,7 +422,6 @@ test('use the preferred range if it intersects with the wanted range', async t =
})
const resolveFromNpm = createResolveFromNpm({
metaCache: new Map(),
rawConfig: { registry },
storeDir: tempy.directory(),
})
@@ -468,7 +449,6 @@ test('use the preferred range if it intersects with the wanted range (an array o
})
const resolveFromNpm = createResolveFromNpm({
metaCache: new Map(),
rawConfig: { registry },
storeDir: tempy.directory(),
})
@@ -499,7 +479,6 @@ test("ignore the preferred range if it doesn't intersect with the wanted range",
})
const resolveFromNpm = createResolveFromNpm({
metaCache: new Map(),
rawConfig: { registry },
storeDir: tempy.directory(),
})
@@ -528,7 +507,6 @@ test("use the preferred dist-tag if it's inside the wanted range", async t => {
})
const resolveFromNpm = createResolveFromNpm({
metaCache: new Map(),
rawConfig: { registry },
storeDir: tempy.directory(),
})
@@ -557,7 +535,6 @@ test("ignore the preferred dist-tag if it's not inside the wanted range", async
})
const resolveFromNpm = createResolveFromNpm({
metaCache: new Map(),
rawConfig: { registry },
storeDir: tempy.directory(),
})
@@ -585,7 +562,6 @@ test("prefer a version that is both inside the wanted and preferred ranges. Even
})
const resolveFromNpm = createResolveFromNpm({
metaCache: new Map(),
rawConfig: { registry },
storeDir: tempy.directory(),
})
@@ -604,7 +580,6 @@ test("prefer a version that is both inside the wanted and preferred ranges. Even
test('offline resolution fails when package meta not found in the store', async t => {
const resolve = createResolveFromNpm({
metaCache: new Map(),
offline: true,
rawConfig: { registry },
storeDir: tempy.directory(),
@@ -628,7 +603,6 @@ test('offline resolution succeeds when package meta is found in the store', asyn
{
const resolve = createResolveFromNpm({
metaCache: new Map(),
offline: false,
rawConfig: { registry },
storeDir,
@@ -640,7 +614,6 @@ test('offline resolution succeeds when package meta is found in the store', asyn
{
const resolve = createResolveFromNpm({
metaCache: new Map(),
offline: true,
rawConfig: { registry },
storeDir,
@@ -659,7 +632,6 @@ test('prefer offline resolution does not fail when package meta not found in the
.reply(200, isPositiveMeta)
const resolve = createResolveFromNpm({
metaCache: new Map(),
preferOffline: true,
rawConfig: { registry },
storeDir: tempy.directory(),
@@ -683,7 +655,6 @@ test('when prefer offline is used, meta from store is used, where latest might b
{
const resolve = createResolveFromNpm({
metaCache: new Map(),
rawConfig: { registry },
storeDir,
})
@@ -701,7 +672,6 @@ test('when prefer offline is used, meta from store is used, where latest might b
{
const resolve = createResolveFromNpm({
metaCache: new Map(),
preferOffline: true,
rawConfig: { registry },
storeDir,
@@ -723,7 +693,6 @@ test('error is thrown when package is not found in the registry', async t => {
.reply(404, {})
const resolveFromNpm = createResolveFromNpm({
metaCache: new Map(),
rawConfig: { registry },
storeDir: tempy.directory(),
})
@@ -748,7 +717,6 @@ test('extra info is shown if package has valid semver appended', async t => {
.reply(404, {})
const resolveFromNpm = createResolveFromNpm({
metaCache: new Map(),
rawConfig: { registry },
storeDir: tempy.directory(),
})
@@ -771,7 +739,6 @@ test('error is thrown when there is no package found for the requested version',
.reply(200, isPositiveMeta)
const resolveFromNpm = createResolveFromNpm({
metaCache: new Map(),
rawConfig: { registry },
storeDir: tempy.directory(),
})
@@ -792,7 +759,6 @@ test('error is thrown when package needs authorization', async t => {
.reply(403)
const resolveFromNpm = createResolveFromNpm({
metaCache: new Map(),
rawConfig: { registry },
storeDir: tempy.directory(),
})
@@ -815,7 +781,6 @@ test('error is thrown when there is no package found for the requested range', a
.reply(200, isPositiveMeta)
const resolveFromNpm = createResolveFromNpm({
metaCache: new Map(),
rawConfig: { registry },
storeDir: tempy.directory(),
})
@@ -834,7 +799,6 @@ test('error is thrown when there is no package found for the requested tag', asy
.reply(200, isPositiveMeta)
const resolveFromNpm = createResolveFromNpm({
metaCache: new Map(),
rawConfig: { registry },
storeDir: tempy.directory(),
})
@@ -860,7 +824,6 @@ test('resolveFromNpm() loads full metadata even if non-full metadata is alread c
{
const resolve = createResolveFromNpm({
fullMetadata: false,
metaCache: new Map(),
rawConfig: { registry },
storeDir,
})
@@ -873,7 +836,6 @@ test('resolveFromNpm() loads full metadata even if non-full metadata is alread c
{
const resolve = createResolveFromNpm({
fullMetadata: true,
metaCache: new Map(),
rawConfig: { registry },
storeDir,
})
@@ -893,7 +855,6 @@ test('resolve when tarball URL is requested from the registry', async t => {
const storeDir = tempy.directory()
const resolve = createResolveFromNpm({
metaCache: new Map(),
rawConfig: { registry },
storeDir,
})
@@ -930,7 +891,6 @@ test('resolve when tarball URL is requested from the registry and alias is not s
const storeDir = tempy.directory()
const resolve = createResolveFromNpm({
metaCache: new Map(),
rawConfig: { registry },
storeDir,
})
@@ -967,7 +927,6 @@ test('resolve from local directory when it matches the latest version of the pac
const storeDir = tempy.directory()
const resolve = createResolveFromNpm({
metaCache: new Map(),
rawConfig: { registry },
storeDir,
})
@@ -1008,7 +967,6 @@ test('do not resolve from local directory when alwaysTryWorkspacePackages is fal
const storeDir = tempy.directory()
const resolve = createResolveFromNpm({
metaCache: new Map(),
rawConfig: { registry },
storeDir,
})
@@ -1047,7 +1005,6 @@ test('do not resolve from local directory when alwaysTryWorkspacePackages is fal
test('resolve from local directory when alwaysTryWorkspacePackages is false but workspace: is used', async t => {
const storeDir = tempy.directory()
const resolve = createResolveFromNpm({
metaCache: new Map(),
rawConfig: { registry },
storeDir,
})
@@ -1090,7 +1047,6 @@ test('use version from the registry if it is newer than the local one', async t
})
const resolveFromNpm = createResolveFromNpm({
metaCache: new Map(),
rawConfig: { registry },
storeDir: tempy.directory(),
})
@@ -1137,7 +1093,6 @@ test('use local version if it is newer than the latest in the registry', async t
})
const resolveFromNpm = createResolveFromNpm({
metaCache: new Map(),
rawConfig: { registry },
storeDir: tempy.directory(),
})
@@ -1181,7 +1136,6 @@ test('resolve from local directory when package is not found in the registry', a
const storeDir = tempy.directory()
const resolve = createResolveFromNpm({
metaCache: new Map(),
rawConfig: { registry },
storeDir,
})
@@ -1236,7 +1190,6 @@ test('resolve from local directory when package is not found in the registry and
const storeDir = tempy.directory()
const resolve = createResolveFromNpm({
metaCache: new Map(),
rawConfig: { registry },
storeDir,
})
@@ -1291,7 +1244,6 @@ test('resolve from local directory when package is not found in the registry and
const storeDir = tempy.directory()
const resolve = createResolveFromNpm({
metaCache: new Map(),
rawConfig: { registry },
storeDir,
})
@@ -1346,7 +1298,6 @@ test('resolve from local directory when the requested version is not found in th
const storeDir = tempy.directory()
const resolve = createResolveFromNpm({
metaCache: new Map(),
rawConfig: { registry },
storeDir,
})
@@ -1383,7 +1334,6 @@ test('resolve from local directory when the requested version is not found in th
test('workspace protocol: resolve from local directory even when it does not match the latest version of the package', async t => {
const storeDir = tempy.directory()
const resolve = createResolveFromNpm({
metaCache: new Map(),
rawConfig: { registry },
storeDir,
})
@@ -1420,7 +1370,6 @@ test('workspace protocol: resolve from local directory even when it does not mat
test('workspace protocol: resolve from local package that has a pre-release version', async t => {
const storeDir = tempy.directory()
const resolve = createResolveFromNpm({
metaCache: new Map(),
rawConfig: { registry },
storeDir,
})
@@ -1461,7 +1410,6 @@ test("workspace protocol: don't resolve from local package that has a pre-releas
const storeDir = tempy.directory()
const resolve = createResolveFromNpm({
metaCache: new Map(),
rawConfig: { registry },
storeDir,
})
@@ -1494,7 +1442,6 @@ test("workspace protocol: don't resolve from local package that has a pre-releas
test('workspace protocol: resolution fails if there is no matching local package', async t => {
const storeDir = tempy.directory()
const resolve = createResolveFromNpm({
metaCache: new Map(),
rawConfig: { registry },
storeDir,
})
@@ -1521,7 +1468,6 @@ test('workspace protocol: resolution fails if there is no matching local package
test('workspace protocol: resolution fails if there are no local packages', async t => {
const storeDir = tempy.directory()
const resolve = createResolveFromNpm({
metaCache: new Map(),
rawConfig: { registry },
storeDir,
})
@@ -1544,7 +1490,6 @@ test('workspace protocol: resolution fails if there are no local packages', asyn
test('throws error when package name has "/" but not starts with @scope', async t => {
const resolveFromNpm = createResolveFromNpm({
metaCache: new Map(),
rawConfig: { registry },
storeDir: tempy.directory(),
})
@@ -1565,7 +1510,6 @@ test('resolveFromNpm() should always return the name of the package that is spec
const storeDir = tempy.directory()
const resolve = createResolveFromNpm({
metaCache: new Map(),
rawConfig: { registry },
storeDir,
})

View File

@@ -49,7 +49,6 @@
"@pnpm/types": "workspace:6.2.0",
"credentials-by-uri": "^2.0.0",
"dependency-path": "workspace:5.0.3",
"lru-cache": "^6.0.0",
"mem": "^6.1.0",
"ramda": "^0.27.1",
"semver": "^7.3.2"
@@ -57,7 +56,6 @@
"devDependencies": {
"@pnpm/logger": "^3.2.2",
"@pnpm/outdated": "link:",
"@types/lru-cache": "^5.1.0",
"@types/ramda": "^0.27.14",
"@types/semver": "^7.3.1",
"npm-run-all": "^4.1.5"

View File

@@ -3,7 +3,6 @@ import { createFetchFromRegistry } from '@pnpm/fetch'
import pickRegistryForPackage from '@pnpm/pick-registry-for-package'
import { DependencyManifest, Registries } from '@pnpm/types'
import getCredentialsByURI = require('credentials-by-uri')
import LRU = require('lru-cache')
import mem = require('mem')
type GetManifestOpts = {
@@ -13,19 +12,14 @@ type GetManifestOpts = {
registries: Registries,
}
export type ManifestGetterOptions = Omit<ResolverFactoryOptions, 'metaCache'> & GetManifestOpts
export type ManifestGetterOptions = ResolverFactoryOptions & GetManifestOpts
export function createManifestGetter (
opts: ManifestGetterOptions
): (packageName: string, pref: string) => Promise<DependencyManifest | null> {
const fetch = createFetchFromRegistry(opts)
const getCredentials = mem((registry: string) => getCredentialsByURI(opts.rawConfig, registry))
const resolve = createResolver(fetch, getCredentials, Object.assign(opts, {
metaCache: new LRU({
max: 10000,
maxAge: 120 * 1000, // 2 minutes
}) as any, // tslint:disable-line:no-any
}))
const resolve = createResolver(fetch, getCredentials, opts)
return getManifest.bind(null, resolve, opts)
}

View File

@@ -24,7 +24,6 @@ const authConfig = { registry }
const { resolve, fetchers } = createClient({
authConfig,
metaCache: new Map(),
storeDir: '.store',
})
@@ -473,7 +472,6 @@ test('fetchPackageToStore() does not cache errors', async (t) => {
const noRetry = createClient({
authConfig,
metaCache: new Map(),
retry: { retries: 0 },
storeDir: '.pnpm',
})

View File

@@ -12,7 +12,6 @@ test('store.importPackage()', async (t) => {
const authConfig = { registry }
const { resolve, fetchers } = createClient({
authConfig,
metaCache: new Map(),
storeDir,
})
const storeController = await createStore(resolve, fetchers, {
@@ -45,7 +44,6 @@ test('store.importPackage() by copying', async (t) => {
const authConfig = { registry }
const { resolve, fetchers } = createClient({
authConfig,
metaCache: new Map(),
storeDir,
})
const storeController = await createStore(resolve, fetchers, {

View File

@@ -38,7 +38,6 @@
"@pnpm/plugin-commands-publishing": "link:",
"@pnpm/prepare": "workspace:0.0.9",
"@types/cross-spawn": "^6.0.2",
"@types/lru-cache": "^5.1.0",
"@types/mz": "^2.7.1",
"@types/proxyquire": "^1.3.28",
"@types/ramda": "^0.27.14",
@@ -70,7 +69,6 @@
"credentials-by-uri": "^2.0.0",
"enquirer": "^2.3.6",
"fast-glob": "^3.2.4",
"lru-cache": "^6.0.0",
"mem": "^6.1.0",
"mz": "^2.7.0",
"p-filter": "^2.1.0",

View File

@@ -8,7 +8,6 @@ import sortPackages from '@pnpm/sort-packages'
import storePath from '@pnpm/store-path'
import { Registries } from '@pnpm/types'
import getCredentialsByURI = require('credentials-by-uri')
import LRU = require('lru-cache')
import mem = require('mem')
import pFilter = require('p-filter')
import { handler as publish } from './publish'
@@ -58,10 +57,6 @@ export default async function (
const fetch = createFetchFromRegistry(opts)
const getCredentials = mem((registry: string) => getCredentialsByURI(opts.rawConfig, registry))
const resolve = createResolver(fetch, getCredentials, Object.assign(opts, {
metaCache: new LRU({
max: 10000,
maxAge: 120 * 1000, // 2 minutes
}) as any, // tslint:disable-line:no-any
storeDir,
})) as unknown as ResolveFunction
const pkgsToPublish = await pFilter(pkgs, async (pkg) => {

View File

@@ -15,7 +15,6 @@ async function main() {
const resolve = createResolver({
rawConfig,
store,
metaCache: new Map(),
})
const fetchers = createFetcher({
alwaysAuth: true,

View File

@@ -21,7 +21,6 @@ async function createStoreController (storeDir?: string) {
const authConfig = { registry }
const { resolve, fetchers } = createClient({
authConfig,
metaCache: new Map(),
storeDir,
})
return createStore(resolve, fetchers, {

View File

@@ -31,7 +31,6 @@
"devDependencies": {
"@pnpm/logger": "^3.2.2",
"@pnpm/store-connection-manager": "link:",
"@types/lru-cache": "^5.1.0",
"@types/mz": "^2.7.1"
},
"dependencies": {
@@ -45,7 +44,6 @@
"@zkochan/diable": "^1.0.2",
"delay": "^4.4.0",
"dir-is-case-sensitive": "^1.0.2",
"lru-cache": "^6.0.0",
"mz": "^2.7.0"
},
"peerDependencies": {

View File

@@ -1,7 +1,6 @@
import createClient from '@pnpm/client'
import { Config } from '@pnpm/config'
import createStore from '@pnpm/package-store'
import LRU = require('lru-cache')
import fs = require('mz/fs')
import path = require('path')
@@ -48,10 +47,6 @@ export default async (
httpsProxy: opts.httpsProxy,
key: opts.key,
localAddress: opts.localAddress,
metaCache: new LRU({
max: 10000,
maxAge: 120 * 1000, // 2 minutes
}) as any, // tslint:disable-line:no-any
noProxy: opts.noProxy,
offline: opts.offline,
preferOffline: opts.preferOffline,

View File

@@ -12,17 +12,17 @@ const test = promisifyTape(tape)
test('should fail to update when requests are cached', async (t) => {
const project = prepareEmpty(t)
const metaCache = new Map()
const opts = await testDefaults()
await addDistTag('dep-of-pkg-with-1-dep', '100.0.0', 'latest')
const manifest = await addDependenciesToPackage({}, ['pkg-with-1-dep'], await testDefaults({ save: true, metaCache }))
const manifest = await addDependenciesToPackage({}, ['pkg-with-1-dep'], opts)
await project.storeHas('dep-of-pkg-with-1-dep', '100.0.0')
await addDistTag('dep-of-pkg-with-1-dep', '100.1.0', 'latest')
await install(manifest, await testDefaults({ depth: 1, metaCache, update: true }))
await install(manifest, { ...opts, depth: 1, update: true })
await project.storeHas('dep-of-pkg-with-1-dep', '100.0.0')
})

View File

@@ -39,7 +39,6 @@ export default async function testDefaults<T> (
const authConfig = { registry }
const { resolve, fetchers } = createClient({
authConfig,
metaCache: new Map(),
retry: retryOpts,
storeDir,
...resolveOpts,

16
pnpm-lock.yaml generated
View File

@@ -1168,6 +1168,7 @@ importers:
'@pnpm/types': 'link:../types'
encode-registry: 2.0.2
load-json-file: 6.2.0
lru-cache: 6.0.0
mz: 2.7.0
normalize-path: 3.0.0
p-limit: 3.0.2
@@ -1182,6 +1183,7 @@ importers:
'@pnpm/fetch': 'link:../fetch'
'@pnpm/logger': 3.2.2
'@pnpm/npm-resolver': 'link:'
'@types/lru-cache': 5.1.0
'@types/mz': 2.7.1
'@types/normalize-path': 3.0.0
'@types/semver': 7.3.1
@@ -1198,12 +1200,14 @@ importers:
'@pnpm/resolve-workspace-range': 'workspace:1.0.1'
'@pnpm/resolver-base': 'workspace:7.0.3'
'@pnpm/types': 'workspace:6.2.0'
'@types/lru-cache': ^5.1.0
'@types/mz': ^2.7.1
'@types/normalize-path': ^3.0.0
'@types/semver': ^7.3.1
'@types/ssri': ^6.0.3
encode-registry: ^2.0.2
load-json-file: ^6.2.0
lru-cache: ^6.0.0
mz: ^2.7.0
nock: 12.0.3
normalize-path: ^3.0.0
@@ -1233,14 +1237,12 @@ importers:
'@pnpm/types': 'link:../types'
credentials-by-uri: 2.0.0
dependency-path: 'link:../dependency-path'
lru-cache: 6.0.0
mem: 6.1.0
ramda: 0.27.1
semver: 7.3.2
devDependencies:
'@pnpm/logger': 3.2.2
'@pnpm/outdated': 'link:'
'@types/lru-cache': 5.1.0
'@types/ramda': 0.27.14
'@types/semver': 7.3.1
npm-run-all: 4.1.5
@@ -1259,12 +1261,10 @@ importers:
'@pnpm/pick-registry-for-package': 'workspace:1.0.3'
'@pnpm/store-path': ^4.0.2
'@pnpm/types': 'workspace:6.2.0'
'@types/lru-cache': ^5.1.0
'@types/ramda': ^0.27.14
'@types/semver': ^7.3.1
credentials-by-uri: ^2.0.0
dependency-path: 'workspace:5.0.3'
lru-cache: ^6.0.0
mem: ^6.1.0
npm-run-all: ^4.1.5
ramda: ^0.27.1
@@ -1807,7 +1807,6 @@ importers:
credentials-by-uri: 2.0.0
enquirer: 2.3.6
fast-glob: 3.2.4
lru-cache: 6.0.0
mem: 6.1.0
mz: 2.7.0
p-filter: 2.1.0
@@ -1820,7 +1819,6 @@ importers:
'@pnpm/plugin-commands-publishing': 'link:'
'@pnpm/prepare': 'link:../../privatePackages/prepare'
'@types/cross-spawn': 6.0.2
'@types/lru-cache': 5.1.0
'@types/mz': 2.7.1
'@types/proxyquire': 1.3.28
'@types/ramda': 0.27.14
@@ -1850,7 +1848,6 @@ importers:
'@pnpm/store-path': ^4.0.2
'@pnpm/types': 'workspace:6.2.0'
'@types/cross-spawn': ^6.0.2
'@types/lru-cache': ^5.1.0
'@types/mz': ^2.7.1
'@types/proxyquire': ^1.3.28
'@types/ramda': ^0.27.14
@@ -1862,7 +1859,6 @@ importers:
enquirer: ^2.3.6
execa: ^4.0.3
fast-glob: ^3.2.4
lru-cache: ^6.0.0
mem: ^6.1.0
mz: ^2.7.0
p-filter: ^2.1.0
@@ -2596,12 +2592,10 @@ importers:
'@zkochan/diable': 1.0.2
delay: 4.4.0
dir-is-case-sensitive: 1.0.2
lru-cache: 6.0.0
mz: 2.7.0
devDependencies:
'@pnpm/logger': 3.2.2
'@pnpm/store-connection-manager': 'link:'
'@types/lru-cache': 5.1.0
'@types/mz': 2.7.1
specifiers:
'@pnpm/cli-meta': 'workspace:1.0.1'
@@ -2613,12 +2607,10 @@ importers:
'@pnpm/server': 'workspace:8.0.8'
'@pnpm/store-connection-manager': 'link:'
'@pnpm/store-path': ^4.0.2
'@types/lru-cache': ^5.1.0
'@types/mz': ^2.7.1
'@zkochan/diable': ^1.0.2
delay: ^4.4.0
dir-is-case-sensitive: ^1.0.2
lru-cache: ^6.0.0
mz: ^2.7.0
packages/store-controller-types:
dependencies: