node-red/compiliance-js/flow2-store-create-result.js
ruoyunbai d9b08c89ee js
2025-11-17 10:55:25 +08:00

63 lines
1.9 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

'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));
}