Files
sam-hotfix/e2e/runner/create_chunks.js

39 lines
1.2 KiB
JavaScript
Raw Normal View History

const fs = require('fs');
const src = fs.readFileSync(__dirname + '/step-executor.js', 'utf8');
// Escape for embedding in JS single-quoted string
let escaped = '';
for (let i = 0; i < src.length; i++) {
const ch = src[i];
if (ch === '\\') escaped += '\\\\';
else if (ch === "'") escaped += "\\'";
else if (ch === '\n') escaped += '\\n';
else if (ch === '\r') continue;
else escaped += ch;
}
// Split into chunks of ~12000 chars
const CHUNK_SIZE = 12000;
const chunks = [];
for (let i = 0; i < escaped.length; i += CHUNK_SIZE) {
chunks.push(escaped.substring(i, i + CHUNK_SIZE));
}
console.log('Total escaped length:', escaped.length);
console.log('Number of chunks:', chunks.length);
// Write each chunk
for (let i = 0; i < chunks.length; i++) {
let script;
if (i === 0) {
script = "window.__C = '" + chunks[i] + "';";
} else if (i < chunks.length - 1) {
script = "window.__C += '" + chunks[i] + "';";
} else {
script = "window.__C += '" + chunks[i] + "'; eval(window.__C); delete window.__C; JSON.stringify({ok:!!window.__E2E__})";
}
fs.writeFileSync(__dirname + '/eval_chunk_' + i + '.js', script, 'utf8');
console.log('Chunk ' + i + ': ' + script.length + ' chars');
}
console.log('Done - ' + chunks.length + ' files created');