midscene/apps/chrome-extension/scripts/build-report-template.js

54 lines
1.5 KiB
JavaScript
Raw Permalink Normal View History

#!/usr/bin/env node
import fs from 'node:fs';
import path from 'node:path';
import { fileURLToPath } from 'node:url';
// Get the directory path of the current file
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
// Project root directory
const projectRoot = path.resolve(__dirname, '../../..');
// Path configuration
const visualizerReportPath = path.join(
projectRoot,
'apps/report/dist/index.html',
);
const outputDir = path.join(__dirname, '../dist/scripts');
const outputFile = path.join(outputDir, 'report-template.js');
// Ensure the output directory exists
console.log(`Creating output directory: ${outputDir}`);
fs.mkdirSync(outputDir, {
recursive: true,
});
// Check if the visualizer has been built
if (!fs.existsSync(visualizerReportPath)) {
console.error(
`ERROR: Report template file not found at ${visualizerReportPath}`,
);
console.error(
'Make sure to build the visualizer package first with: npm run build -w @midscene/visualizer',
);
process.exit(1);
}
// Read the report template HTML
console.log(`Reading report template from: ${visualizerReportPath}`);
const reportHtml = fs.readFileSync(visualizerReportPath, 'utf8');
// Create JavaScript function
const jsContent = `
// Generated report template from visualizer
window.get_midscene_report_tpl = function() {
return ${JSON.stringify(reportHtml)};
};
`;
// Write to file
fs.writeFileSync(outputFile, jsContent);
console.log(`Report template successfully written to: ${outputFile}`);