fix(video-pipeline): 修正清单字段存在性校验逻辑

将 `cmd-init.js` 和 `cmd-validate.js` 中的虚值校验(`!item[f]`、`!item.script && !item.text`)改为更精确的字段存在性校验(`!(f in item) || item[f] == null`、`!('script' in item || 'text' in item)`),避免因空字符串或零值等合法空输入导致误报错误。
This commit is contained in:
2026-05-04 03:20:34 +08:00
parent 45e0169010
commit 49329379ad
8 changed files with 18 additions and 17 deletions

View File

@@ -49,7 +49,7 @@ function initManifest(options) {
for (let i = 0; i < rawItems.length; i++) {
const item = rawItems[i]
for (const f of requiredFields) {
if (!item[f]) {
if (!(f in item) || item[f] == null) {
console.error(`错误: items[${i}] 缺少必填字段 "${f}"`)
process.exit(1)
}

View File

@@ -32,7 +32,7 @@ function validateManifest(manifestPath) {
if (manifest.items && Array.isArray(manifest.items)) {
manifest.items.forEach((item, i) => {
const prefix = `items[${i}]`
if (!item.script && !item.text) issues.push(`${prefix} 缺少 script 或 text中文文案`)
if (!('script' in item || 'text' in item)) issues.push(`${prefix} 缺少 script 或 text中文文案`)
if (!item.shotDesc) issues.push(`${prefix} 缺少 shotDesc分镜描述`)
if (!item.imagePrompt) issues.push(`${prefix} 缺少 imagePrompt`)
if (manifest.mode === 'framePair' && !item.lastFramePrompt) {