@elsikora/eslint-config
Version:
ESLint configuration vision of ElsiKora
26 lines (22 loc) • 1.25 kB
JavaScript
;
var applyPluginRuleDocumentationUrls_utility = require('./apply-plugin-rule-documentation-urls.utility.js');
/**
* Returns a cached decorated plugin while preserving plugin object identity across config blocks.
* @param {TRuleDocumentationPluginCache} pluginCache - Cache scoped to one config formatting pass
* @param {ESLint.Plugin} plugin - Original plugin object
* @param {string} pluginName - Final plugin name from the flat config
* @returns {ESLint.Plugin} Cached plugin with decorated rule metadata
*/
function getPluginWithRuleDocumentationUrls(pluginCache, plugin, pluginName) {
const cacheByPluginName = pluginCache.get(pluginName) ?? new WeakMap();
const cachedPlugin = cacheByPluginName.get(plugin);
if (cachedPlugin) {
return cachedPlugin;
}
const pluginWithDocumentationUrls = applyPluginRuleDocumentationUrls_utility.applyPluginRuleDocumentationUrls(plugin, pluginName);
cacheByPluginName.set(plugin, pluginWithDocumentationUrls);
pluginCache.set(pluginName, cacheByPluginName);
return pluginWithDocumentationUrls;
}
exports.getPluginWithRuleDocumentationUrls = getPluginWithRuleDocumentationUrls;
//# sourceMappingURL=get-plugin-with-rule-documentation-urls.utility.js.map