Skip to content

Commit d019f0e

Browse files
committed
Add support for newer pnpm lock files
1 parent d07a284 commit d019f0e

File tree

1 file changed

+12
-19
lines changed

1 file changed

+12
-19
lines changed

src/commands/optimize.ts

Lines changed: 12 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -33,20 +33,13 @@ const availableOverrides = getManifestData('npm')!.filter(({ 1: d }) =>
3333
type NpmOverrides = { [key: string]: string | StringKeyValueObject }
3434
type PnpmOrYarnOverrides = { [key: string]: string }
3535
type Overrides = NpmOverrides | PnpmOrYarnOverrides
36-
type GetOverrides = (
37-
pkgJson: PackageJsonContent
38-
) => GetOverridesResult | undefined
36+
type GetOverrides = (pkgJson: PackageJsonContent) => GetOverridesResult
3937
type GetOverridesResult = {
4038
type: Agent
4139
overrides: Overrides
4240
}
4341

44-
const getOverridesDataByAgent: {
45-
npm: (pkgJson: PackageJsonContent) => GetOverridesResult
46-
yarn: (pkgJson: PackageJsonContent) => GetOverridesResult
47-
} & {
48-
[key in Exclude<Agent, 'npm' | 'yarn'>]: GetOverrides
49-
} = {
42+
const getOverridesDataByAgent: Record<Agent, GetOverrides> = {
5043
// npm overrides documentation:
5144
// https://docs.npmjs.com/cli/v10/configuring-npm/package-json#overrides
5245
npm: (pkgJson: PackageJsonContent) => {
@@ -56,8 +49,8 @@ const getOverridesDataByAgent: {
5649
// pnpm overrides documentation:
5750
// https://pnpm.io/package_json#pnpmoverrides
5851
pnpm: (pkgJson: PackageJsonContent) => {
59-
const overrides = (pkgJson as any)?.pnpm?.overrides ?? undefined
60-
return overrides ? { type: 'pnpm', overrides } : undefined
52+
const overrides = (pkgJson as any)?.pnpm?.overrides ?? {}
53+
return { type: 'pnpm', overrides }
6154
},
6255
// Yarn resolutions documentation:
6356
// https://yarnpkg.com/configuration/manifest#resolutions
@@ -79,10 +72,11 @@ const lockIncludesByAgent: Record<Agent, LockIncludes> = {
7972
const escapedName = escapeRegExp(name)
8073
return new RegExp(
8174
// Detects the package name in the following cases:
82-
// /name/version:
83-
// 'name': version
84-
// name: version
85-
`(?<=^\\s*)(?:(['/])${escapedName}\\1|${escapedName}(?=:))`,
75+
// /name/
76+
// 'name'
77+
// name:
78+
// name@
79+
`(?<=^\\s*)(?:(['/])${escapedName}\\1|${escapedName}(?=[:@]))`,
8680
'm'
8781
).test(lockSrc)
8882
},
@@ -190,10 +184,9 @@ async function addOverrides(
190184
].filter(({ 1: o }) => o)
191185
const overridesDataObjects = <GetOverridesResult[]>[]
192186
if (isPrivate || isWorkspace) {
193-
const data = getOverridesDataByAgent[agent](editablePkgJson.content)
194-
if (data) {
195-
overridesDataObjects.push(data)
196-
}
187+
overridesDataObjects.push(
188+
getOverridesDataByAgent[agent](editablePkgJson.content)
189+
)
197190
} else {
198191
overridesDataObjects.push(
199192
getOverridesDataByAgent['npm'](editablePkgJson.content),

0 commit comments

Comments
 (0)