64 lines
1.9 KiB
JavaScript
Executable File
64 lines
1.9 KiB
JavaScript
Executable File
#!/usr/bin/env node
|
|
const fs = require('node:fs');
|
|
const path = require('node:path');
|
|
|
|
const repoRoot = path.resolve(__dirname, '..');
|
|
const commonPlatRoot =
|
|
process.env.BYTELYST_COMMON_PLAT_ROOT ||
|
|
path.resolve(repoRoot, '..', 'learning_ai_common_plat');
|
|
const commonPackagesRoot = path.join(commonPlatRoot, 'packages');
|
|
|
|
const manifests = [
|
|
path.join(repoRoot, 'package.json'),
|
|
path.join(repoRoot, 'web', 'package.json'),
|
|
path.join(repoRoot, 'backend', 'package.json'),
|
|
path.join(repoRoot, 'mobile', 'package.json'),
|
|
];
|
|
|
|
function readJson(filePath) {
|
|
return JSON.parse(fs.readFileSync(filePath, 'utf8'));
|
|
}
|
|
|
|
function bytelystDependencies(manifestPath) {
|
|
const manifest = readJson(manifestPath);
|
|
const sections = [
|
|
manifest.dependencies,
|
|
manifest.devDependencies,
|
|
manifest.optionalDependencies,
|
|
];
|
|
|
|
return sections
|
|
.flatMap((section) => Object.keys(section || {}))
|
|
.filter((name) => name.startsWith('@bytelyst/'));
|
|
}
|
|
|
|
if (!fs.existsSync(commonPackagesRoot)) {
|
|
console.error(`Missing common platform packages directory: ${commonPackagesRoot}`);
|
|
console.error('Set BYTELYST_COMMON_PLAT_ROOT if your sibling checkout lives elsewhere.');
|
|
process.exit(1);
|
|
}
|
|
|
|
const missing = new Set();
|
|
|
|
for (const manifestPath of manifests) {
|
|
if (!fs.existsSync(manifestPath)) continue;
|
|
|
|
for (const packageName of bytelystDependencies(manifestPath)) {
|
|
const packageDir = packageName.replace('@bytelyst/', '');
|
|
const packageJsonPath = path.join(commonPackagesRoot, packageDir, 'package.json');
|
|
if (!fs.existsSync(packageJsonPath)) {
|
|
missing.add(`${packageName} -> ${packageJsonPath}`);
|
|
}
|
|
}
|
|
}
|
|
|
|
if (missing.size > 0) {
|
|
console.error('Missing local ByteLyst package checkouts:');
|
|
for (const item of missing) {
|
|
console.error(`- ${item}`);
|
|
}
|
|
process.exit(1);
|
|
}
|
|
|
|
console.log(`Local ByteLyst packages resolved from ${commonPackagesRoot}`);
|