Skip to content

Commit 8beaa89

Browse files
authored
PackageJson: Add overrides (#1287)
1 parent 133258b commit 8beaa89

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

source/package-json.d.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -208,6 +208,13 @@ export namespace PackageJson {
208208
*/
209209
type Dependency = Partial<Record<string, string>>;
210210

211+
/**
212+
Recursive map describing selective dependency version overrides supported by npm.
213+
*/
214+
type DependencyOverrides = {
215+
[packageName: string]: string | undefined | DependencyOverrides;
216+
};
217+
211218
/**
212219
Specifies requirements for development environment components such as operating systems, runtimes, or package managers. Used to ensure consistent development environments across the team.
213220
*/
@@ -510,6 +517,11 @@ export namespace PackageJson {
510517
*/
511518
bundleDependencies?: string[];
512519

520+
/**
521+
Overrides is used to support selective version overrides using npm, which lets you define custom package versions or ranges inside your dependencies.
522+
*/
523+
overrides?: DependencyOverrides;
524+
513525
/**
514526
Engines that this package runs on.
515527
*/

test-d/package-json.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,11 @@ expectType<string[] | undefined>(packageJson.bundleDependencies);
3737
expectType<string[] | undefined>(packageJson.bundledDependencies);
3838
expectType<PackageJson.Dependency | undefined>(packageJson.resolutions);
3939
expectType<PackageJson.WorkspaceConfig | string[] | undefined>(packageJson.workspaces);
40+
expectAssignable<PackageJson['overrides']>({foo: '1.0.0'});
41+
expectAssignable<PackageJson['overrides']>({foo: {'.': '1.0.0', bar: '1.0.0'}});
42+
expectAssignable<PackageJson['overrides']>({baz: {bar: {foo: '1.0.0'}}});
43+
expectAssignable<PackageJson['overrides']>({foo: undefined});
44+
expectAssignable<PackageJson['overrides']>({foo: {bar: undefined}});
4045
expectAssignable<PackageJson.DevEngineDependency>({
4146
name: 'unicorn',
4247
version: '>= 1.0.0',

0 commit comments

Comments
 (0)