23 lines
938 B
JavaScript
23 lines
938 B
JavaScript
|
|
#!/usr/bin/env node
|
||
|
|
// Fix: generate-stats.js composable 计数正则不精确
|
||
|
|
// /composable:/ 会把 composable: false 也计入
|
||
|
|
// 修正为 /composable:\s*true/ 精确匹配
|
||
|
|
const fs = require('fs');
|
||
|
|
const path = require('path');
|
||
|
|
const SENTINEL = '// COMPOSABLE_REGEX_FIX_v1';
|
||
|
|
const fp = path.join(__dirname, '..', 'generate-stats.js');
|
||
|
|
|
||
|
|
let code = fs.readFileSync(fp, 'utf8');
|
||
|
|
if (code.includes(SENTINEL)) { console.log('SKIP: already patched'); process.exit(0); }
|
||
|
|
|
||
|
|
const old = "if (/composable:/.test(content)) composable++;";
|
||
|
|
const idx = code.indexOf(old);
|
||
|
|
if (idx === -1) { console.error('FAIL: cannot find composable regex line'); process.exit(1); }
|
||
|
|
|
||
|
|
fs.copyFileSync(fp, fp + '.bak');
|
||
|
|
code = code.slice(0, idx) +
|
||
|
|
`if (/composable:\\s*true/.test(content)) composable++; ${SENTINEL}` +
|
||
|
|
code.slice(idx + old.length);
|
||
|
|
fs.writeFileSync(fp, code, 'utf8');
|
||
|
|
console.log('PATCHED: composable regex now requires explicit true value');
|