node-red/compiliance-js/flow1-compose-list-request.js
ruoyunbai d9b08c89ee js
2025-11-17 10:55:25 +08:00

46 lines
1.2 KiB
JavaScript

'use strict';
/**
* 根据 msg.crudFlow.list 设置查询请求,兼容旧的手工注入流程。
*/
return configureListRequest(msg, node);
function configureListRequest(message, node) {
if (!message.crudFlow || !message.crudFlow.list) {
return message;
}
const list = message.crudFlow.list;
const baseUrl = message.crudFlow.baseUrl || '';
message.method = (list.method || 'GET').toUpperCase();
message.url = mergeUrl(baseUrl, list.path || '');
message.headers = Object.assign({}, message.crudFlow.headers || {}, list.headers || {});
if (list.payload !== undefined) {
message.payload = clone(list.payload);
} else if (message.payload !== undefined) {
delete message.payload;
}
message.listRequestConfigured = true;
return message;
}
function mergeUrl(base, path) {
const prefix = (base || '').replace(/\/+$/, '');
const suffix = (path || '').replace(/^\/+/, '');
if (!prefix) {
return `/${suffix}`;
}
if (!suffix) {
return prefix;
}
return `${prefix}/${suffix}`;
}
function clone(value) {
return value == null ? value : JSON.parse(JSON.stringify(value));
}