'use strict'; /** * 将 LLM 生成的创建请求体写回 crudFlow,提取主键供删除步骤使用。 */ return storeCreateResult(msg, node); function storeCreateResult(message, node) { if (!message.crudFlow || !message.crudFlow.create) { return message; } const identityField = message.crudFlow.identityField || message.identityField || 'dsid'; const mockBody = extractMockBody(message); if (mockBody) { message.crudFlow.create.payload = clone(mockBody); } else if (!message.crudFlow.create.payload) { node.warn('未从模型生成创建参数,继续使用默认样例', message); message.crudFlow.create.payload = clone(message.crudFlow.create.samplePayload || {}); } const payload = message.crudFlow.create.payload || {}; const primaryKeyValue = payload[identityField]; if (primaryKeyValue !== undefined) { message.primaryKeyValue = primaryKeyValue; message.crudFlow.delete = message.crudFlow.delete || {}; message.crudFlow.delete.actualKey = primaryKeyValue; } delete message.mock; delete message.mockCandidates; delete message.mockPrompt; delete message.mockSource; delete message.mockAutoSelected; delete message.llmContext; delete message.llmRaw; delete message.prompt; delete message.method; delete message.path; delete message.url; delete message.headers; delete message.statusCode; delete message.payload; return message; } function extractMockBody(message) { if (message && message.mock && typeof message.mock === 'object' && message.mock.body && typeof message.mock.body === 'object') { return message.mock.body; } if (message && message.payload && typeof message.payload === 'object' && !Array.isArray(message.payload)) { return message.payload; } return null; } function clone(value) { return value == null ? value : JSON.parse(JSON.stringify(value)); }