Skip to content

Commit 79c7982

Browse files
author
Heiner Pöpping
committed
🐛 Fix resolving of latest versions for internal packages
1 parent cc0d20b commit 79c7982

File tree

3 files changed

+32
-5
lines changed

3 files changed

+32
-5
lines changed

package-lock.json

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

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@
5555
"ora": "^8.1.1",
5656
"prettier": "^3.4.2",
5757
"prettier-plugin-packagejson": "^2.5.8",
58+
"semver": "^7.7.1",
5859
"validate-npm-package-name": "^6.0.0"
5960
},
6061
"publishConfig": {

src/util/resolvePackageVersion.js

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,30 @@
11
import { exec } from 'node:child_process';
22
import chalk from 'chalk';
3+
import semver from 'semver';
4+
import { internalDeps } from '../constants/dependencies.js';
35

46
export const resolvePackageVersion = async (pkg, tag) => {
57
const target = tag ? `${pkg}@${tag}` : pkg;
8+
if (pkg in internalDeps) {
9+
try {
10+
const res = await fetch(`https://repo.tobit.ag/repository/npm/${pkg}`);
11+
if (res.ok) {
12+
const json = await res.json();
13+
14+
if (tag in json['dist-tags']) {
15+
console.log('version', json);
16+
return `^${json['dist-tags'][tag]}`;
17+
}
18+
19+
const version = semver.maxSatisfying(Object.keys(json.versions), tag)
20+
console.log('version', version);
21+
return `^${version}`;
22+
}
23+
} catch {
24+
//
25+
}
26+
}
27+
628
try {
729
const result = await new Promise((resolve, reject) => {
830
exec(`npm view ${target} version --json`, (error, out) => {
@@ -17,7 +39,9 @@ export const resolvePackageVersion = async (pkg, tag) => {
1739
const version = Array.isArray(parsedResult) ? parsedResult.pop() : parsedResult;
1840
return `^${version}`;
1941
} catch {
20-
console.warn(`\n Could not resolve ${chalk.yellow(target)}`);
21-
return tag || 'latest';
42+
//
2243
}
44+
45+
console.warn(`\n Could not resolve ${chalk.yellow(target)}`);
46+
return tag || 'latest';
2347
};

0 commit comments

Comments
 (0)