Skip to content

Commit 59ecc3f

Browse files
committed
refactor: use goTry in PackageTypesResolver.getExportsMapTypes()
1 parent 3a89488 commit 59ecc3f

File tree

3 files changed

+19
-14
lines changed

3 files changed

+19
-14
lines changed

bun.lock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
"@microsoft/tsdoc": "^0.15.1",
99
"effect": "^3.18.4",
1010
"execa": "^9.6.0",
11+
"go-go-try": "^6.2.0",
1112
"memoize": "^10.2.0",
1213
"natural-orderby": "^5.0.0",
1314
"pathe": "^2.0.3",
@@ -23,7 +24,6 @@
2324
"@types/node": "^24.9.1",
2425
"@types/validate-npm-package-name": "^4.0.2",
2526
"@vitest/coverage-v8": "^4.0.3",
26-
"go-go-try": "^6.2.0",
2727
"np": "^10.2.0",
2828
"prettier-plugin-organize-imports": "^4.3.0",
2929
"ts-dedent": "^2.2.0",

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@
7070
"@microsoft/tsdoc": "^0.15.1",
7171
"effect": "^3.18.4",
7272
"execa": "^9.6.0",
73+
"go-go-try": "^6.2.0",
7374
"memoize": "^10.2.0",
7475
"natural-orderby": "^5.0.0",
7576
"pathe": "^2.0.3",
@@ -85,7 +86,6 @@
8586
"@types/node": "^24.9.1",
8687
"@types/validate-npm-package-name": "^4.0.2",
8788
"@vitest/coverage-v8": "^4.0.3",
88-
"go-go-try": "^6.2.0",
8989
"np": "^10.2.0",
9090
"prettier-plugin-organize-imports": "^4.3.0",
9191
"ts-dedent": "^2.2.0",

src/package-types-resolver.ts

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { exports } from "@es-joy/resolve.exports";
2+
import { goTry } from "go-go-try";
23
import type { NormalizedPackageJson } from "read-pkg";
34

45
export class PackageTypesResolver {
@@ -15,18 +16,22 @@ export class PackageTypesResolver {
1516
}
1617

1718
getExportsMapTypes(): string | undefined {
18-
try {
19-
const entries =
20-
exports(this.#pkgJson, this.#subpath, {
21-
conditions: ["!default", "!node", "import", "types"],
22-
}) ?? [];
23-
const entry = entries.at(0);
24-
if (!entry || !this.#isTypesFile(entry)) return undefined;
25-
return entry;
26-
} catch {
27-
// The package may not have an `exports` map.
28-
return undefined;
29-
}
19+
// Try to resolve the `exports` map in `package.json`
20+
// with conditions `import` and `types` enabled to find
21+
// a valid TypeScript type definitions file.
22+
const [err, entries = []] = goTry(() =>
23+
exports(this.#pkgJson, this.#subpath, {
24+
conditions: ["!default", "!node", "import", "types"],
25+
}),
26+
);
27+
28+
// The package may not have an `exports` map.
29+
if (err !== undefined) return undefined;
30+
31+
// Return first entry, if valid.
32+
const entry = entries.at(0);
33+
if (!entry || !this.#isTypesFile(entry)) return undefined;
34+
return entry;
3035
}
3136

3237
getTypesOrTypings(): string | undefined {

0 commit comments

Comments
 (0)