Files
Toju/tools/sync-server-build-version.js
2026-03-10 23:56:53 +01:00

50 lines
1.4 KiB
JavaScript

const fs = require('fs');
const path = require('path');
const rootDir = path.resolve(__dirname, '..');
const serverPackageJsonPath = path.join(rootDir, 'server', 'package.json');
const outputFilePath = path.join(rootDir, 'server', 'src', 'generated', 'build-version.ts');
function readServerVersion() {
const packageJson = JSON.parse(fs.readFileSync(serverPackageJsonPath, 'utf8'));
if (typeof packageJson.version === 'string' && packageJson.version.trim().length > 0) {
return packageJson.version.trim();
}
return '0.0.0';
}
function syncServerBuildVersion(version = readServerVersion()) {
const nextContents = `export const SERVER_BUILD_VERSION = ${JSON.stringify(version)};\n`;
fs.mkdirSync(path.dirname(outputFilePath), { recursive: true });
if (!fs.existsSync(outputFilePath) || fs.readFileSync(outputFilePath, 'utf8') !== nextContents) {
fs.writeFileSync(outputFilePath, nextContents, 'utf8');
}
return version;
}
function main() {
const version = syncServerBuildVersion();
console.log(`[server-build-version] Synced ${outputFilePath} -> ${version}`);
}
if (require.main === module) {
try {
main();
} catch (error) {
const message = error instanceof Error ? error.message : String(error);
console.error(`[server-build-version] ${message}`);
process.exitCode = 1;
}
}
module.exports = {
syncServerBuildVersion
};