'use strict'; var plugins = require('./plugins.json'); for (var pluginName of Object.keys(plugins)) { var url = plugins[pluginName]; if (!url.includes('/')) { url += '/eslint-plugin-' + pluginName; } if (url.split('/').length === 2) { url = 'https://github.com/' + url + '/blob/master/docs/rules/RULENAME.md'; } plugins[pluginName] = url; } function getRuleURI(ruleId) { if (typeof ruleId !== 'string') { throw new TypeError(`ruleId must be a string, got ${typeof ruleId}`); } var ruleParts = ruleId.split('/'); if (ruleParts.length === 1) { return { found: true, url: 'https://eslint.org/docs/rules/' + ruleId }; } var pluginName = ruleParts[0]; var ruleName = ruleParts[1]; var url = plugins[pluginName]; if (!url) { return { found: false, url: 'https://github.com/jfmengels/eslint-rule-documentation/blob/master/contributing.md' }; } return { found: true, url: url.replace('RULENAME', ruleName) }; } module.exports = getRuleURI;