chadtmiller.com/pds.js
An atproto PDS in JavaScript, for Cloudflare Workers and Node
0
0
// Rewrites the VERSION constant in @pdsjs/core to match its package.json.
//
// changeset version bumps manifests but never touches source, and core carries
// its version as a literal because it cannot import package.json on Workers or
// Deno. Left to a human, the two drift: the constant sat at 0.7.0 across two
// releases, then at 1.0.0 through the 1.0.1 release. This runs as part of
// `npm run version-packages`; test/version.test.js is the backstop.
import { readFileSync, writeFileSync } from 'node:fs';
const pkgUrl = new URL('../packages/core/package.json', import.meta.url);
const srcUrl = new URL('../packages/core/src/pds.js', import.meta.url);
const { version } = JSON.parse(readFileSync(pkgUrl, 'utf8'));
const source = readFileSync(srcUrl, 'utf8');
const pattern = /^const VERSION = '[^']*';$/m;
if (!pattern.test(source)) {
console.error(
'sync-version: no VERSION constant in packages/core/src/pds.js — it was ' +
'renamed or reformatted, and the version can no longer be kept in step.',
);
process.exit(1);
}
writeFileSync(srcUrl, source.replace(pattern, `const VERSION = '${version}';`));
console.log(`sync-version: VERSION -> ${version}`);