34 lines
1.2 KiB
JavaScript
34 lines
1.2 KiB
JavaScript
import { readFileSync, writeFileSync } from 'fs';
|
|
import { resolve } from 'path';
|
|
import { fileURLToPath } from 'url';
|
|
|
|
const workspaceLink = 'workspaces:*';
|
|
const __dirname = fileURLToPath(new URL('.', import.meta.url));
|
|
|
|
// Update target package.json
|
|
const targetPath = resolve(__dirname, '../dist/out/package.json');
|
|
const targetPackage = JSON.parse(readFileSync(targetPath, 'utf8'));
|
|
|
|
// Process all cm- dependencies
|
|
Object.keys(targetPackage.dependencies).forEach((dependency) => {
|
|
if (dependency.startsWith('cwap-cm-')) {
|
|
// Read source version from the corresponding package
|
|
const sourcePath = resolve(__dirname, `../../${dependency}/package.json`);
|
|
try {
|
|
const sourcePackage = JSON.parse(readFileSync(sourcePath, 'utf8'));
|
|
const sourceVersion = sourcePackage.version;
|
|
|
|
if (targetPackage.dependencies[dependency] === workspaceLink) {
|
|
targetPackage.dependencies[dependency] = sourceVersion;
|
|
} else {
|
|
targetPackage.dependencies[dependency] = workspaceLink;
|
|
}
|
|
} catch (err) {
|
|
console.warn(`Warning: Could not read package.json for ${dependency} at ${sourcePath}: ${err.message}`);
|
|
}
|
|
}
|
|
});
|
|
|
|
// Write back the updated package.json
|
|
writeFileSync(targetPath, JSON.stringify(targetPackage, null, 2));
|