23 lines
833 B
JavaScript
23 lines
833 B
JavaScript
#!/usr/bin/env node
|
|
/**
|
|
* npm/pnpm `postversion`: push the current branch (set upstream if missing) and
|
|
* only the new version tag — avoids \`git push --tags\` publishing unrelated tags.
|
|
*/
|
|
import { readFileSync } from 'node:fs';
|
|
import { execFileSync } from 'node:child_process';
|
|
import { dirname, join } from 'node:path';
|
|
import { fileURLToPath } from 'node:url';
|
|
|
|
const root = join(dirname(fileURLToPath(import.meta.url)), '..');
|
|
|
|
function readPackageVersion() {
|
|
const raw = readFileSync(join(root, 'package.json'), 'utf8');
|
|
return JSON.parse(raw).version;
|
|
}
|
|
|
|
const version = process.env.npm_package_version || readPackageVersion();
|
|
const tag = `v${version}`;
|
|
|
|
execFileSync('git', ['push', '-u', 'origin', 'HEAD'], { stdio: 'inherit' });
|
|
execFileSync('git', ['push', 'origin', `refs/tags/${tag}`], { stdio: 'inherit' });
|