UNPKG

eslint-rule-benchmark

Version:

Benchmark ESLint rules with detailed performance metrics for CI and plugin development

36 lines (35 loc) 1.02 kB
import path from 'node:path' async function loadRuleFromFile(jiti, options) { let result = {} let { configDirectory, rulePath, ruleId } = options try { let absolutePath = path.isAbsolute(rulePath) ? rulePath : path.resolve(configDirectory, rulePath) let moduleExport = await jiti.import(absolutePath) result.rule = extractRule(moduleExport, ruleId) } catch (error) { let errorValue = error result.error = errorValue.message } return result } function extractRule(moduleExport, ruleId) { if (moduleExport.meta && moduleExport.create) { return moduleExport } if (moduleExport.rules?.[ruleId]) { return moduleExport.rules[ruleId] } let defaultExport = moduleExport.default if (defaultExport) { if ('meta' in defaultExport && 'create' in defaultExport) { return defaultExport } if ('rules' in defaultExport && defaultExport.rules?.[ruleId]) { return defaultExport.rules[ruleId] } } return void 0 } export { loadRuleFromFile }