mirror of
https://github.com/glittercowboy/get-shit-done
synced 2026-05-13 18:46:38 +02:00
88 lines
3.5 KiB
JavaScript
88 lines
3.5 KiB
JavaScript
#!/usr/bin/env node
|
|
import { createRequire } from 'node:module';
|
|
import { resolve, dirname } from 'node:path';
|
|
import { fileURLToPath } from 'node:url';
|
|
|
|
const require = createRequire(import.meta.url);
|
|
const here = dirname(fileURLToPath(import.meta.url));
|
|
|
|
const {
|
|
STATE_COMMAND_MANIFEST,
|
|
} = await import('../dist/query/command-manifest.state.js');
|
|
const {
|
|
VERIFY_COMMAND_MANIFEST,
|
|
} = await import('../dist/query/command-manifest.verify.js');
|
|
const {
|
|
INIT_COMMAND_MANIFEST,
|
|
} = await import('../dist/query/command-manifest.init.js');
|
|
const {
|
|
PHASE_COMMAND_MANIFEST,
|
|
} = await import('../dist/query/command-manifest.phase.js');
|
|
const {
|
|
PHASES_COMMAND_MANIFEST,
|
|
} = await import('../dist/query/command-manifest.phases.js');
|
|
const {
|
|
VALIDATE_COMMAND_MANIFEST,
|
|
} = await import('../dist/query/command-manifest.validate.js');
|
|
const {
|
|
ROADMAP_COMMAND_MANIFEST,
|
|
} = await import('../dist/query/command-manifest.roadmap.js');
|
|
|
|
const {
|
|
STATE_COMMAND_ALIASES,
|
|
VERIFY_COMMAND_ALIASES,
|
|
INIT_COMMAND_ALIASES,
|
|
PHASE_COMMAND_ALIASES,
|
|
PHASES_COMMAND_ALIASES,
|
|
VALIDATE_COMMAND_ALIASES,
|
|
ROADMAP_COMMAND_ALIASES,
|
|
} = await import('../dist/query/command-aliases.generated.js');
|
|
|
|
const cjsAliases = require(resolve(here, '..', '..', 'get-shit-done', 'bin', 'lib', 'command-aliases.generated.cjs'));
|
|
|
|
function toAliasEntries(manifest, family) {
|
|
const prefix = `${family}.`;
|
|
return manifest.map((entry) => ({
|
|
canonical: entry.canonical,
|
|
aliases: [...entry.aliases],
|
|
subcommand: entry.canonical.slice(prefix.length),
|
|
mutation: entry.mutation,
|
|
}));
|
|
}
|
|
|
|
function assertEqual(label, actual, expected) {
|
|
const a = JSON.stringify(actual);
|
|
const e = JSON.stringify(expected);
|
|
if (a !== e) {
|
|
throw new Error(
|
|
`${label} drift detected. Regenerate command alias artifacts and commit them.`,
|
|
);
|
|
}
|
|
}
|
|
|
|
const expectedState = toAliasEntries(STATE_COMMAND_MANIFEST, 'state');
|
|
const expectedVerify = toAliasEntries(VERIFY_COMMAND_MANIFEST, 'verify');
|
|
const expectedInit = toAliasEntries(INIT_COMMAND_MANIFEST, 'init');
|
|
const expectedPhase = toAliasEntries(PHASE_COMMAND_MANIFEST, 'phase');
|
|
const expectedPhases = toAliasEntries(PHASES_COMMAND_MANIFEST, 'phases');
|
|
const expectedValidate = toAliasEntries(VALIDATE_COMMAND_MANIFEST, 'validate');
|
|
const expectedRoadmap = toAliasEntries(ROADMAP_COMMAND_MANIFEST, 'roadmap');
|
|
|
|
assertEqual('TS STATE_COMMAND_ALIASES', STATE_COMMAND_ALIASES, expectedState);
|
|
assertEqual('TS VERIFY_COMMAND_ALIASES', VERIFY_COMMAND_ALIASES, expectedVerify);
|
|
assertEqual('TS INIT_COMMAND_ALIASES', INIT_COMMAND_ALIASES, expectedInit);
|
|
assertEqual('TS PHASE_COMMAND_ALIASES', PHASE_COMMAND_ALIASES, expectedPhase);
|
|
assertEqual('TS PHASES_COMMAND_ALIASES', PHASES_COMMAND_ALIASES, expectedPhases);
|
|
assertEqual('TS VALIDATE_COMMAND_ALIASES', VALIDATE_COMMAND_ALIASES, expectedValidate);
|
|
assertEqual('TS ROADMAP_COMMAND_ALIASES', ROADMAP_COMMAND_ALIASES, expectedRoadmap);
|
|
|
|
assertEqual('CJS STATE_COMMAND_ALIASES', cjsAliases.STATE_COMMAND_ALIASES, expectedState);
|
|
assertEqual('CJS VERIFY_COMMAND_ALIASES', cjsAliases.VERIFY_COMMAND_ALIASES, expectedVerify);
|
|
assertEqual('CJS INIT_COMMAND_ALIASES', cjsAliases.INIT_COMMAND_ALIASES, expectedInit);
|
|
assertEqual('CJS PHASE_COMMAND_ALIASES', cjsAliases.PHASE_COMMAND_ALIASES, expectedPhase);
|
|
assertEqual('CJS PHASES_COMMAND_ALIASES', cjsAliases.PHASES_COMMAND_ALIASES, expectedPhases);
|
|
assertEqual('CJS VALIDATE_COMMAND_ALIASES', cjsAliases.VALIDATE_COMMAND_ALIASES, expectedValidate);
|
|
assertEqual('CJS ROADMAP_COMMAND_ALIASES', cjsAliases.ROADMAP_COMMAND_ALIASES, expectedRoadmap);
|
|
|
|
console.log('command alias artifacts are fresh');
|