feat: scaffold tenant site builder demo
This commit is contained in:
20
scripts/check-production-bundle.mjs
Normal file
20
scripts/check-production-bundle.mjs
Normal 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.');
|
||||
Reference in New Issue
Block a user