mirror of
https://github.com/pnpm/pnpm.git
synced 2026-02-02 19:22:52 -05:00
refactor(npm-resolver): remove options.metaCache
This commit is contained in:
7
.changeset/weak-toes-behave.md
Normal file
7
.changeset/weak-toes-behave.md
Normal 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`.
|
||||
@@ -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')
|
||||
|
||||
@@ -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')
|
||||
|
||||
@@ -37,7 +37,6 @@ export default async function testDefaults (
|
||||
const authConfig = { registry }
|
||||
const { resolve, fetchers } = createClient({
|
||||
authConfig,
|
||||
metaCache: new Map(),
|
||||
retry: retryOpts,
|
||||
storeDir,
|
||||
...resolveOpts,
|
||||
|
||||
@@ -20,7 +20,6 @@
|
||||
const createResolveFromNpm = require('@pnpm/npm-resolver').default
|
||||
|
||||
const resolveFromNpm = createResolveFromNpm({
|
||||
metaCache: new Map(),
|
||||
store: '.store',
|
||||
offline: false,
|
||||
rawConfig: {
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
const createResolveFromNpm = require('@pnpm/npm-resolver').default
|
||||
|
||||
const resolveFromNpm = createResolveFromNpm({
|
||||
metaCache: new Map(),
|
||||
storeDir: '.store',
|
||||
offline: false,
|
||||
rawConfig: {
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
})
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
|
||||
@@ -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',
|
||||
})
|
||||
|
||||
@@ -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, {
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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) => {
|
||||
|
||||
@@ -15,7 +15,6 @@ async function main() {
|
||||
const resolve = createResolver({
|
||||
rawConfig,
|
||||
store,
|
||||
metaCache: new Map(),
|
||||
})
|
||||
const fetchers = createFetcher({
|
||||
alwaysAuth: true,
|
||||
|
||||
@@ -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, {
|
||||
|
||||
@@ -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": {
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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')
|
||||
})
|
||||
|
||||
@@ -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
16
pnpm-lock.yaml
generated
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user