~ knotless Search/
↑↓ move↵ open⇧↵ all results

chadtmiller.com/pds.js

An atproto PDS in JavaScript, for Cloudflare Workers and Node

0
0
main
26 lines · 1.2 KB Raw History
// 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}`);