21 lines
1015 B
JavaScript
21 lines
1015 B
JavaScript
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.');
|