820af97859
No diagram change needed: this change only makes generated reference-app timestamps deterministic and adds an override flag.
47 lines
1.5 KiB
TypeScript
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;
|
|
});
|