Skip to content

Commit 516b2b8

Browse files
committed
refactor: convert validate-npm-package-name to wrapper
Adds validate-npm-package-name to npm-core bundle and converts the standalone module to a thin wrapper that re-exports from npm-core for better deduplication. Changes: - Add validate-npm-package-name to src/external/npm-core.js and .d.ts - Convert src/external/validate-npm-package-name.js to wrapper - Update build-externals config to set validate-npm-package-name bundle: false Bundle size impact: - Before: 3.6KB standalone - After: 171B wrapper (validate-npm-package-name now bundled in npm-core) - Savings: ~3.4KB (94% reduction in wrapper overhead)
1 parent 19b3362 commit 516b2b8

4 files changed

Lines changed: 10 additions & 4 deletions

File tree

scripts/build-externals/config.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ export const externalPackages = [
3636
{ name: 'spdx-correct', bundle: false },
3737
{ name: 'spdx-expression-parse', bundle: false },
3838
{ name: 'streaming-iterables', bundle: true },
39-
{ name: 'validate-npm-package-name', bundle: true },
39+
{ name: 'validate-npm-package-name', bundle: false },
4040
{ name: 'which', bundle: true },
4141
{ name: 'yargs-parser', bundle: true },
4242
{ name: 'yoctocolors-cjs', bundle: true },

src/external/npm-core.d.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
import type npmPackageArg from 'npm-package-arg'
22
import type normalizePackageData from 'normalize-package-data'
33
import type * as semver from 'semver'
4+
import type validateNpmPackageName from 'validate-npm-package-name'
45

56
export interface NpmCore {
67
npmPackageArg: typeof npmPackageArg
78
normalizePackageData: typeof normalizePackageData
89
semver: typeof semver
10+
validateNpmPackageName: typeof validateNpmPackageName
911
}
1012

1113
declare const npmCore: NpmCore

src/external/npm-core.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
11
'use strict'
22

3-
// npm-core: Bundle npm-package-arg, normalize-package-data, and semver together
4-
// These packages share dependencies and are commonly used together for package spec parsing
3+
// npm-core: Bundle npm-package-arg, normalize-package-data, semver, and validate-npm-package-name together.
4+
// These packages share dependencies and are commonly used together for package spec parsing.
55

66
const npmPackageArg = require('npm-package-arg/lib/npa.js')
77
const normalizePackageData = require('normalize-package-data/lib/normalize.js')
88
const semver = require('semver')
9+
const validateNpmPackageName = require('validate-npm-package-name')
910

1011
module.exports = {
1112
npmPackageArg,
1213
normalizePackageData,
1314
semver,
15+
validateNpmPackageName,
1416
}
Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
'use strict'
22

3-
module.exports = require('validate-npm-package-name')
3+
// Re-export from npm-core bundle for better deduplication.
4+
const { validateNpmPackageName } = require('./npm-core')
5+
module.exports = validateNpmPackageName

0 commit comments

Comments
 (0)