Files
flynn/scripts/export-companion-reference-apps.ts
T
William Valentin 820af97859 fix(companion): make reference-app exports reproducible by default
No diagram change needed: this change only makes generated reference-app timestamps deterministic and adds an override flag.
2026-02-26 20:58:31 -08:00

47 lines
1.5 KiB
TypeScript

import { resolve } from 'node:path';
import { generateReferenceCompanionApps } from '../src/companion/index.js';
const DEFAULT_GENERATED_AT = '2026-02-27T00:00:00.000Z';
function getArg(name: string): string | undefined {
const idx = process.argv.indexOf(name);
if (idx < 0) {
return undefined;
}
const value = process.argv[idx + 1];
if (!value || value.startsWith('--')) {
return undefined;
}
return value;
}
async function main(): Promise<void> {
const outputDir = resolve(getArg('--output') ?? 'apps/companion');
const gatewayUrl = getArg('--url') ?? 'ws://127.0.0.1:18800';
const generatedAtArg = getArg('--generated-at');
const generatedAt = new Date(generatedAtArg ?? DEFAULT_GENERATED_AT);
if (Number.isNaN(generatedAt.getTime())) {
throw new Error(`Invalid --generated-at value: ${generatedAtArg}`);
}
const result = await generateReferenceCompanionApps({
outputDir,
gatewayUrl,
generatedAt,
});
console.log(`Generated companion reference apps in ${result.rootDir}`);
for (const entry of result.generated) {
console.log(`- ${entry.platform}: ${entry.outputDir}`);
}
console.log(`- macos-app: ${result.macosMenuBarAppDir}`);
console.log(`- readme: ${result.readmePath}`);
console.log(`- generatedAt: ${generatedAt.toISOString()}`);
}
main().catch((error: unknown) => {
const message = error instanceof Error ? error.message : String(error);
console.error(`companion:reference-apps failed: ${message}`);
process.exitCode = 1;
});