Skip to content

Commit ff7ec0f

Browse files
committed
Relax not-needed version condition
1 parent 4d924b2 commit ff7ec0f

File tree

3 files changed

+20
-32
lines changed

3 files changed

+20
-32
lines changed

packages/definitions-parser/src/check-parse-results.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ async function checkNpm(
139139
log(" yarn not-needed " + yarnargs.join(" "));
140140
log(` git add --all && git commit -m "${name}: Provides its own types" && git push -u origin not-needed-${name}`);
141141
log(` And comment PR: This will deprecate \`@types/${name}\` in favor of just \`${name}\`. CC ${contributorUrls}`);
142-
if (semver.gt(`${major}.${minor}.0`, firstTypedVersion)) {
142+
if (semver.gte(`${major}.${minor}.0`, firstTypedVersion)) {
143143
log(" WARNING: our version is greater!");
144144
}
145145
if (dependedOn.has(name)) {

packages/definitions-parser/src/git.ts

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import assert from "assert";
21
import { sourceBranch } from "./lib/settings";
32
import {
43
PackageId,
@@ -20,7 +19,6 @@ import {
2019
cacheDir,
2120
} from "@definitelytyped/utils";
2221
import * as pacote from "pacote";
23-
import * as semver from "semver";
2422
import { getAffectedPackages } from "./get-affected-packages";
2523

2624
export interface GitDiff {
@@ -127,10 +125,14 @@ export async function getAffectedPackagesFromDiff(
127125

128126
/**
129127
* 1. libraryName must exist on npm (SKIPPED and preferably/optionally have been the libraryName in just-deleted header)
130-
* 2. asOfVersion must be newer than `@types/name@latest` on npm
131-
* 3. `name@asOfVersion` must exist on npm
128+
* 2. `name@asOfVersion` must exist on npm
132129
*/
133130
export async function checkNotNeededPackage(unneeded: NotNeededPackage) {
131+
await pacote.manifest(unneeded.fullNpmName, { cache: cacheDir }).catch((reason) => {
132+
throw reason.code === "E404"
133+
? new Error(`Unexpected error: @types package not found for ${unneeded.fullNpmName}`, { cause: reason })
134+
: reason;
135+
}); // eg @types/babel__parser
134136
await pacote.manifest(`${unneeded.libraryName}@${unneeded.version}`, { cache: cacheDir }).catch((reason) => {
135137
throw reason.code === "E404"
136138
? new Error(
@@ -145,16 +147,6 @@ Unneeded packages have to be replaced with a package on npm.`,
145147
})
146148
: reason;
147149
}); // eg @babel/parser
148-
const typings = await pacote.manifest(unneeded.fullNpmName, { cache: cacheDir }).catch((reason) => {
149-
throw reason.code === "E404"
150-
? new Error(`Unexpected error: @types package not found for ${unneeded.fullNpmName}`, { cause: reason })
151-
: reason;
152-
}); // eg @types/babel__parser
153-
assert(
154-
semver.gt(unneeded.version, typings.version),
155-
`The specified version ${unneeded.version} of ${unneeded.libraryName} must be newer than the version
156-
it is supposed to replace, ${typings.version} of ${unneeded.fullNpmName}.`
157-
);
158150
}
159151

160152
/**

packages/definitions-parser/test/git.test.ts

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -96,32 +96,28 @@ const nonexistentReplacementPackage = new NotNeededPackage("jest", "nonexistent"
9696
const nonexistentTypesPackage = new NotNeededPackage("nonexistent", "jest", "100.0.0");
9797

9898
testo({
99-
missingSource() {
100-
return expect(checkNotNeededPackage(nonexistentReplacementPackage)).rejects.toThrow(
101-
"The entry for @types/jest in notNeededPackages.json"
102-
);
103-
},
104-
missingTypings() {
99+
nonexistentTypesPackage() {
105100
return expect(checkNotNeededPackage(nonexistentTypesPackage)).rejects.toThrow(
106101
"@types package not found for @types/nonexistent"
107102
);
108103
},
109-
deprecatedSameVersion() {
110-
return expect(checkNotNeededPackage(sameVersion)).rejects
111-
.toThrow(`The specified version 50.0.0 of jest must be newer than the version
112-
it is supposed to replace, 50.0.0 of @types/jest.`);
113-
},
114-
deprecatedOlderVersion() {
115-
return expect(checkNotNeededPackage(olderReplacement)).rejects
116-
.toThrow(`The specified version 4.0.0 of jest must be newer than the version
117-
it is supposed to replace, 50.0.0 of @types/jest.`);
104+
nonexistentReplacementPackage() {
105+
return expect(checkNotNeededPackage(nonexistentReplacementPackage)).rejects.toThrow(
106+
"The entry for @types/jest in notNeededPackages.json"
107+
);
118108
},
119-
missingNpmVersion() {
109+
nonexistentReplacementVersion() {
120110
return expect(checkNotNeededPackage(nonexistentReplacementVersion)).rejects.toThrow(
121111
"The specified version 999.0.0 of jest is not on npm."
122112
);
123113
},
124-
ok() {
114+
newerReplacement() {
125115
return checkNotNeededPackage(newerReplacement);
126116
},
117+
olderReplacement() {
118+
return checkNotNeededPackage(olderReplacement);
119+
},
120+
sameVersion() {
121+
return checkNotNeededPackage(sameVersion);
122+
},
127123
});

0 commit comments

Comments
 (0)