mp-lens
Version:
微信小程序分析工具 (Unused Code, Dependencies, Visualization)
60 lines • 2.37 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.HtmlGeneratorPreact = void 0;
// import { TreeNodeData } from '../ui/types'; // No longer needed here
const asset_resolver_1 = require("../../utils/asset-resolver");
/**
* Generates a static HTML file with embedded data and pre-built UI assets.
*/
class HtmlGeneratorPreact {
constructor(structure, reachableNodeIds, unusedFiles) {
this.structure = structure;
// this.reachableNodeIds = reachableNodeIds; // No longer directly used here for tree building
this.unusedFiles = unusedFiles;
}
/**
* Generates the static HTML page.
*/
async generate(options) {
// 1. 定义资源文件的相对路径
const jsAssetRelative = 'assets/main.js';
const cssAssetRelative = 'assets/style.css';
// 2. 使用AssetResolver获取资源内容
const jsContent = asset_resolver_1.AssetResolver.getJsAsset(jsAssetRelative) || 'console.error("无法加载UI资源");';
const cssContent = asset_resolver_1.AssetResolver.getCssAsset(cssAssetRelative) || '/* 无法加载样式 */';
// 3. 准备数据
// 完整结构数据(用于图形视图)
const graphDataJson = JSON.stringify(this.structure).replace(/</g, '\\u003c');
// Prepare unused files data
const unusedFilesJson = JSON.stringify(this.unusedFiles).replace(/</g, '\\u003c');
// 4. 定义HTML模板
const htmlTemplate = `<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>${options.title || '依赖可视化'}</title>
<style>
${cssContent}
</style>
</head>
<body>
<div id="app"><noscript>You need to enable JavaScript to run this app.</noscript></div>
<script>
// Embed full graph data for DependencyGraph component
window.__MP_LENS_GRAPH_DATA__ = ${graphDataJson};
// Embed unused files list
window.__MP_LENS_UNUSED_FILES__ = ${unusedFilesJson};
// Set title for UI components
window.__MP_LENS_TITLE__ = "${options.title || '依赖可视化'}";
</script>
<script type="module">
${jsContent}
</script>
</body>
</html>`;
return htmlTemplate;
}
}
exports.HtmlGeneratorPreact = HtmlGeneratorPreact;
//# sourceMappingURL=html-renderer.js.map