Skip to content

Commit 26703f8

Browse files
committed
feat: added monorepo handling of checkVersion
1 parent ed5c693 commit 26703f8

File tree

4 files changed

+29
-21
lines changed

4 files changed

+29
-21
lines changed

package-lock.json

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

ts-force-gen/package-lock.json

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

ts-force-gen/src/index.ts

Lines changed: 23 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -30,27 +30,35 @@ function run () {
3030
}
3131

3232
// Checks that the installed version ts-force matches this package
33-
async function checkVersion () {
33+
async function checkVersion(): Promise<void> {
34+
let genVersion: string;
35+
let tsforceVersion: string;
3436

35-
let tsforce: string;
36-
let gen: string;
37+
// Resolve ts-force-gen/package.json using Node's resolution algorithm.
3738
try {
38-
gen = JSON.parse(fs.readFileSync(path.join(__dirname, '..', 'package.json'), 'utf8')).version;
39-
} catch (e) {
40-
console.warn('Failed to detect package version of ts-force-gen');
39+
const genPackagePath = require.resolve('ts-force-gen/package.json', {paths: [process.cwd()]});
40+
const genPackage = JSON.parse(fs.readFileSync(genPackagePath, 'utf8'));
41+
genVersion = genPackage.version;
42+
} catch (error) {
43+
console.warn('Failed to detect package version of ts-force-gen using Node resolution:', error);
4144
return;
4245
}
4346

44-
for (let dir of fs.readdirSync('node_modules')) {
45-
try {
46-
if (dir === 'ts-force') {
47-
let json = JSON.parse(fs.readFileSync(path.join('node_modules', dir, 'package.json'), 'utf8'));
48-
tsforce = json.version;
49-
}
50-
} catch (err) { }
47+
// Resolve ts-force/package.json using Node's resolution algorithm.
48+
try {
49+
const tsforcePackagePath = require.resolve('ts-force/package.json', {paths: [process.cwd()]});
50+
const tsforcePackage = JSON.parse(fs.readFileSync(tsforcePackagePath, 'utf8'));
51+
tsforceVersion = tsforcePackage.version;
52+
} catch (error) {
53+
console.warn('Failed to locate ts-force package using Node resolution:', error);
54+
return;
5155
}
52-
if (gen !== tsforce) {
53-
console.warn(`The version of ts-force-gen (${gen}) should match ts-force (${tsforce}). It is recommended that you run \`npm install -D ts-force-gen@${tsforce}\` and regenerate classes`);
56+
57+
if (genVersion !== tsforceVersion) {
58+
console.warn(
59+
`The version of ts-force-gen (${genVersion}) should match ts-force (${tsforceVersion}). It is recommended that you run ` +
60+
`npm install -D ts-force-gen@${tsforceVersion} and regenerate classes`
61+
);
5462
}
5563
}
5664

ts-force/package-lock.json

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

0 commit comments

Comments
 (0)