feat(runner): pass sceneInfoJson to Rust CLI for enhanced template rendering

This commit is contained in:
木炎
2026-04-17 10:39:36 +08:00
parent 7289cc5779
commit bb15d14749
2 changed files with 8 additions and 3 deletions

View File

@@ -2,7 +2,7 @@ const { spawn } = require("child_process");
const path = require("path"); const path = require("path");
function runGenerator(params, sseWriter, projectRoot) { function runGenerator(params, sseWriter, projectRoot) {
const { sourceDir, sceneId, sceneName, sceneKind, targetUrl, outputRoot, lessons } = params; const { sourceDir, sceneId, sceneName, sceneKind, targetUrl, outputRoot, lessons, sceneInfoJson } = params;
const normalize = (p) => p.replace(/\\/g, "/"); const normalize = (p) => p.replace(/\\/g, "/");
@@ -35,6 +35,11 @@ function runGenerator(params, sseWriter, projectRoot) {
args.push("--lessons", normalize(lessons)); args.push("--lessons", normalize(lessons));
} }
// Pass scene info JSON if available
if (sceneInfoJson) {
args.push("--scene-info-json", sceneInfoJson);
}
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
sseWriter.write( sseWriter.write(
`event: status\ndata: ${JSON.stringify({ `event: status\ndata: ${JSON.stringify({

View File

@@ -176,7 +176,7 @@ async function handleGenerate(req, res) {
return; return;
} }
const { sourceDir, sceneId, sceneName, sceneKind, targetUrl, outputRoot, lessons } = body; const { sourceDir, sceneId, sceneName, sceneKind, targetUrl, outputRoot, lessons, sceneInfoJson } = body;
if (!sourceDir || !sceneId || !sceneName || !outputRoot) { if (!sourceDir || !sceneId || !sceneName || !outputRoot) {
res.writeHead(400, { "Content-Type": "application/json" }); res.writeHead(400, { "Content-Type": "application/json" });
res.end( res.end(
@@ -192,7 +192,7 @@ async function handleGenerate(req, res) {
try { try {
await runGenerator( await runGenerator(
{ sourceDir, sceneId, sceneName, sceneKind, targetUrl, outputRoot, lessons }, { sourceDir, sceneId, sceneName, sceneKind, targetUrl, outputRoot, lessons, sceneInfoJson },
sseWriter, sseWriter,
config.projectRoot config.projectRoot
); );