Revalidate Docs / Revalidate Docs (push) Failing after 2s
E2E CI / Check Duplicate Run (push) Failing after 5s
Test CI / Check Duplicate Run (push) Failing after 6s
E2E CI / Test Web App (push) Has been skipped
Test CI / Test Packages (push) Has been skipped
Test CI / Test App (shard 1/3) (push) Has been skipped
Test CI / Test App (shard 2/3) (push) Has been skipped
Test CI / Test App (shard 3/3) (push) Has been skipped
Test CI / Test Desktop App (push) Has been skipped
🔄 Branch Synchronization / sync-branches (push) Failing after 11s
Test CI / Test Database (push) Has been skipped
Test CI / Merge and Upload App Coverage (push) Has been skipped
Database Schema Visualization CI / build (push) Failing after 4m14s
48 lines
1.5 KiB
TypeScript
48 lines
1.5 KiB
TypeScript
import { existsSync, readFileSync, writeFileSync } from 'node:fs';
|
|
import { resolve } from 'node:path';
|
|
|
|
const root = resolve(import.meta.dirname, '..');
|
|
|
|
const desktopHtml = readFileSync(resolve(root, 'dist/desktop/index.html'), 'utf8');
|
|
|
|
const mobileHtmlPath = resolve(root, 'dist/mobile/index.mobile.html');
|
|
const mobileHtmlFallbackPath = resolve(root, 'dist/mobile/index.html');
|
|
const hasMobileBuild = existsSync(mobileHtmlPath) || existsSync(mobileHtmlFallbackPath);
|
|
|
|
let output: string;
|
|
|
|
if (hasMobileBuild) {
|
|
// Docker: mobile build exists locally, inline the template
|
|
const mobileHtml = readFileSync(
|
|
existsSync(mobileHtmlPath) ? mobileHtmlPath : mobileHtmlFallbackPath,
|
|
'utf8',
|
|
);
|
|
|
|
output = `// Auto-generated by scripts/generateSpaTemplates.mts after vite build
|
|
// Do not edit manually
|
|
|
|
export const desktopHtmlTemplate = ${JSON.stringify(desktopHtml)};
|
|
|
|
export const mobileHtmlTemplate = ${JSON.stringify(mobileHtml)};
|
|
`;
|
|
} else {
|
|
// Vercel: no mobile build, import from pre-committed source file
|
|
output = `// Auto-generated by scripts/generateSpaTemplates.mts after vite build
|
|
// Do not edit manually
|
|
|
|
import { mobileHtmlTemplate } from './mobileHtmlTemplate.source';
|
|
|
|
export const desktopHtmlTemplate = ${JSON.stringify(desktopHtml)};
|
|
|
|
export { mobileHtmlTemplate };
|
|
`;
|
|
}
|
|
|
|
writeFileSync(
|
|
resolve(root, 'src/app/spa/[variants]/[[...path]]/spaHtmlTemplates.ts'),
|
|
output,
|
|
'utf8',
|
|
);
|
|
|
|
console.log(`Generated spaHtmlTemplates.ts (mobile from ${hasMobileBuild ? 'build' : 'source'})`);
|