46 lines
1.2 KiB
JavaScript
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));
|
|
}
|