From bcc8eb26220fe7620cd692158482bdd62bfc5026 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kh=E1=BA=A3i?= Date: Thu, 11 Apr 2024 20:39:13 +0700 Subject: [PATCH] refactor(read-package-hook): type checking perf (#7900) --- .../src/createPackageExtender.ts | 4 ++-- .../src/createVersionsOverrider.ts | 19 +++++-------------- .../src/isIntersectingRange.ts | 2 +- hooks/read-package-hook/src/isSubRange.ts | 2 +- 4 files changed, 9 insertions(+), 18 deletions(-) diff --git a/hooks/read-package-hook/src/createPackageExtender.ts b/hooks/read-package-hook/src/createPackageExtender.ts index 04638b6b72..ae1c080583 100644 --- a/hooks/read-package-hook/src/createPackageExtender.ts +++ b/hooks/read-package-hook/src/createPackageExtender.ts @@ -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) { diff --git a/hooks/read-package-hook/src/createVersionsOverrider.ts b/hooks/read-package-hook/src/createVersionsOverrider.ts index fe9c8f6f6e..d509abb15a 100644 --- a/hooks/read-package-hook/src/createVersionsOverrider.ts +++ b/hooks/read-package-hook/src/createVersionsOverrider.ts @@ -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) { +function tryParseOverrides (overrides: Record): VersionOverrideBase[] { try { return parseOverrides(overrides) } catch (e) { @@ -53,16 +53,7 @@ function tryParseOverrides (overrides: Record) { } } -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( diff --git a/hooks/read-package-hook/src/isIntersectingRange.ts b/hooks/read-package-hook/src/isIntersectingRange.ts index 828b233196..85690818e0 100644 --- a/hooks/read-package-hook/src/isIntersectingRange.ts +++ b/hooks/read-package-hook/src/isIntersectingRange.ts @@ -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 && diff --git a/hooks/read-package-hook/src/isSubRange.ts b/hooks/read-package-hook/src/isSubRange.ts index cbf2fcf858..583cd196af 100644 --- a/hooks/read-package-hook/src/isSubRange.ts +++ b/hooks/read-package-hook/src/isSubRange.ts @@ -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 &&