diff --git a/lib/core.js b/lib/core.js index eb797ee1a..bd7ed512f 100644 --- a/lib/core.js +++ b/lib/core.js @@ -1195,10 +1195,33 @@ function getSourcesParams(_sources, _sources_params, method_name) { for(var key in _sources) { - var pluginId = _sources[key]; - var plugin = plugins[pluginId]; - var params = plugin.methods[method_name]; - _sources_params[key] = params.filter(param => param in result._debug.data); + var pluginIds = _sources[key]; + if (!Array.isArray(pluginIds)) { + pluginIds = [pluginIds]; + } + + var mergedParams = []; + + for(var i = 0; i < pluginIds.length; i++) { + var plugin = plugins[pluginIds[i]]; + var params = plugin.methods[method_name]; + + if (!params && method_name === 'getVars' && CONFIG.GET_VARS_METHODS) { + // Var may come from an aliased getVars method, e.g. `getContent` -> `content`. + var aliasMethod = Object.keys(CONFIG.GET_VARS_METHODS).find(m => CONFIG.GET_VARS_METHODS[m] === key); + if (aliasMethod) { + params = plugin.methods[aliasMethod]; + } + } + + if (params && params.filter) { + mergedParams = mergedParams.concat(params.filter(param => param in result._debug.data)); + } + } + + if (mergedParams.length) { + _sources_params[key] = [...new Set(mergedParams)]; + } } }