refactor(read-package-hook): type checking perf (#7900)
This commit is contained in:
4 files changed
+9
-18
No files matched your search
@@ -24,14 +24,14 @@ export function createPackageExtender (
|
||||
return extendPkgHook.bind(null, extensionsByPkgName) as ReadPackageHook
|
||||
}
|
||||
|
||||
function extendPkgHook (extensionsByPkgName: ExtensionsByPkgName, manifest: PackageManifest) {
|
||||
function extendPkgHook (extensionsByPkgName: ExtensionsByPkgName, manifest: PackageManifest): PackageManifest {
|
||||
const extensions = extensionsByPkgName.get(manifest.name)
|
||||
if (extensions == null) return manifest
|
||||
extendPkg(manifest, extensions)
|
||||
return manifest
|
||||
}
|
||||
|
||||
function extendPkg (manifest: PackageManifest, extensions: PackageExtensionMatch[]) {
|
||||
function extendPkg (manifest: PackageManifest, extensions: PackageExtensionMatch[]): void {
|
||||
for (const { range, packageExtension } of extensions) {
|
||||
if (range != null && !semver.satisfies(manifest.version, range)) continue
|
||||
for (const field of ['dependencies', 'optionalDependencies', 'peerDependencies', 'peerDependenciesMeta'] as const) {
|
||||
|
||||
@@ -3,7 +3,7 @@ import semver from 'semver'
|
||||
import partition from 'ramda/src/partition'
|
||||
import { type Dependencies, type PackageManifest, type ReadPackageHook } from '@pnpm/types'
|
||||
import { PnpmError } from '@pnpm/error'
|
||||
import { parseOverrides } from '@pnpm/parse-overrides'
|
||||
import { parseOverrides, type VersionOverride as VersionOverrideBase } from '@pnpm/parse-overrides'
|
||||
import normalizePath from 'normalize-path'
|
||||
import { isIntersectingRange } from './isIntersectingRange'
|
||||
|
||||
@@ -45,7 +45,7 @@ export function createVersionsOverrider (
|
||||
}) as ReadPackageHook
|
||||
}
|
||||
|
||||
function tryParseOverrides (overrides: Record<string, string>) {
|
||||
function tryParseOverrides (overrides: Record<string, string>): VersionOverrideBase[] {
|
||||
try {
|
||||
return parseOverrides(overrides)
|
||||
} catch (e) {
|
||||
@@ -53,16 +53,7 @@ function tryParseOverrides (overrides: Record<string, string>) {
|
||||
}
|
||||
}
|
||||
|
||||
interface VersionOverride {
|
||||
parentPkg?: {
|
||||
name: string
|
||||
pref?: string
|
||||
}
|
||||
targetPkg: {
|
||||
name: string
|
||||
pref?: string
|
||||
}
|
||||
newPref: string
|
||||
interface VersionOverride extends VersionOverrideBase {
|
||||
linkTarget?: string
|
||||
linkFileTarget?: string
|
||||
}
|
||||
@@ -78,7 +69,7 @@ function overrideDepsOfPkg (
|
||||
{ manifest, dir }: { manifest: PackageManifest, dir: string | undefined },
|
||||
versionOverrides: VersionOverrideWithParent[],
|
||||
genericVersionOverrides: VersionOverride[]
|
||||
) {
|
||||
): void {
|
||||
if (manifest.dependencies != null) overrideDeps(versionOverrides, genericVersionOverrides, manifest.dependencies, dir)
|
||||
if (manifest.optionalDependencies != null) overrideDeps(versionOverrides, genericVersionOverrides, manifest.optionalDependencies, dir)
|
||||
if (manifest.devDependencies != null) overrideDeps(versionOverrides, genericVersionOverrides, manifest.devDependencies, dir)
|
||||
@@ -90,7 +81,7 @@ function overrideDeps (
|
||||
genericVersionOverrides: VersionOverride[],
|
||||
deps: Dependencies,
|
||||
dir: string | undefined
|
||||
) {
|
||||
): void {
|
||||
for (const [name, pref] of Object.entries(deps)) {
|
||||
const versionOverride =
|
||||
pickMostSpecificVersionOverride(
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import semver from 'semver'
|
||||
|
||||
export function isIntersectingRange (range1: string | undefined, range2: string) {
|
||||
export function isIntersectingRange (range1: string | undefined, range2: string): boolean {
|
||||
return !range1 ||
|
||||
range2 === range1 ||
|
||||
semver.validRange(range2) != null &&
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import semver from 'semver'
|
||||
|
||||
export function isSubRange (superRange: string | undefined, subRange: string) {
|
||||
export function isSubRange (superRange: string | undefined, subRange: string): boolean {
|
||||
return !superRange ||
|
||||
subRange === superRange ||
|
||||
semver.validRange(subRange) != null &&
|
||||
|
||||
Reference in new issue
Block a user