feat: scaffold tenant site builder demo

This commit is contained in:
2026-08-01 15:09:11 +08:00
commit 015d6649a1
48 changed files with 7434 additions and 0 deletions

View File

@@ -0,0 +1,20 @@
import { readdir, readFile } from 'node:fs/promises';
import { join } from 'node:path';
import { fileURLToPath } from 'node:url';
async function files(directory) {
const entries = await readdir(directory, { withFileTypes: true });
return (await Promise.all(entries.map(entry => entry.isDirectory() ? files(join(directory, entry.name)) : [join(directory, entry.name)]))).flat();
}
const forbidden = ['/__demo', 'tiku-saas-demo:v1:', 'mockServiceWorker', 'PocketBase', 's3AccessKeySecret', 'X-Demo-Host'];
const violations = [];
for (const file of await files(fileURLToPath(new URL('../dist', import.meta.url)))) {
const content = await readFile(file, 'utf8').catch(() => '');
for (const marker of forbidden) if (content.includes(marker)) violations.push(`${file}: ${marker}`);
}
if (violations.length) {
console.error(`Production bundle contains development-only markers:\n${violations.join('\n')}`);
process.exit(1);
}
console.log('Production bundle contains no development-only or secret markers.');