Skip to content

Commit 33e9521

Browse files
authored
Merge pull request #94 from arethetypeswrong/cli-dt
Infer --from-npm version from DT package when provided
2 parents 1a1d194 + 26f89d1 commit 33e9521

File tree

4 files changed

+38
-13
lines changed

4 files changed

+38
-13
lines changed

.changeset/gold-nails-dream.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@arethetypeswrong/cli": minor
3+
---
4+
5+
Infer `--from-npm` version from a locally-provided DefinitelyTyped package

package-lock.json

Lines changed: 14 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/cli/package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
"@types/marked-terminal": "^3.1.3",
4343
"@types/node": "^20.2.5",
4444
"@types/node-fetch": "^2.6.4",
45+
"@types/semver": "^7.5.3",
4546
"typescript": "^5.0.0-dev.20230207"
4647
},
4748
"dependencies": {
@@ -51,6 +52,7 @@
5152
"commander": "^10.0.1",
5253
"marked": "^5.1.0",
5354
"marked-terminal": "^5.2.0",
54-
"node-fetch": "^2.6.4"
55+
"node-fetch": "^2.6.4",
56+
"semver": "^7.5.4"
5557
}
5658
}

packages/cli/src/index.ts

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import readline from "readline";
1414
import { problemFlags } from "./problemUtils.js";
1515
import { readConfig } from "./readConfig.js";
1616
import * as render from "./render/index.js";
17+
import { major, minor } from "semver";
1718

1819
const packageJson = createRequire(import.meta.url)("../package.json");
1920
const version = packageJson.version;
@@ -111,13 +112,21 @@ particularly ESM-related module resolution issues.`
111112
if (result.status === "error") {
112113
program.error(result.error);
113114
} else {
114-
const pkg = dtIsPath
115-
? (await core.createPackageFromNpm(`${result.data.name}@${result.data.version}`)).mergedWithTypes(
116-
core.createPackageFromTarballData(new Uint8Array(await readFile(opts.definitelyTyped as string)))
117-
)
118-
: await core.createPackageFromNpm(`${result.data.name}@${result.data.version}`, {
119-
definitelyTyped: opts.definitelyTyped,
120-
});
115+
let pkg;
116+
if (dtIsPath) {
117+
const dtPackage = core.createPackageFromTarballData(
118+
new Uint8Array(await readFile(opts.definitelyTyped as string))
119+
);
120+
const pkgVersion =
121+
result.data.versionKind === "none"
122+
? `${major(dtPackage.packageVersion)}.${minor(dtPackage.packageVersion)}`
123+
: result.data.version;
124+
pkg = (await core.createPackageFromNpm(`${result.data.name}@${pkgVersion}`)).mergedWithTypes(dtPackage);
125+
} else {
126+
pkg = await core.createPackageFromNpm(`${result.data.name}@${result.data.version}`, {
127+
definitelyTyped: opts.definitelyTyped,
128+
});
129+
}
121130
analysis = await core.checkPackage(pkg, {
122131
entrypoints: opts.entrypoints,
123132
includeEntrypoints: opts.includeEntrypoints,

0 commit comments

Comments
 (0)