|
import * as eslint from 'eslint'; |
|
import * as semver from 'semver'; |
|
import { c as convertConfigToRc } from './shared/eslint-compat-utils.1a5060cf.mjs'; |
|
import { g as getUnsupported } from './shared/eslint-compat-utils.3ecba7ac.mjs'; |
|
import { c as convertOptionToLegacy } from './shared/eslint-compat-utils.cb6790c2.mjs'; |
|
import 'module'; |
|
|
|
var __defProp = Object.defineProperty; |
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; |
|
var __publicField = (obj, key, value) => { |
|
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); |
|
return value; |
|
}; |
|
let cacheRuleTester; |
|
let cachePrefix = ""; |
|
function getRuleTester() { |
|
return cacheRuleTester != null ? cacheRuleTester : cacheRuleTester = getRuleTesterInternal(); |
|
function getRuleTesterInternal() { |
|
if (semver.gte(eslint.Linter.version, "9.0.0-0")) { |
|
cachePrefix = "rule-to-test/"; |
|
return eslint.RuleTester; |
|
} |
|
const flatRuleTester = getUnsupported().FlatRuleTester; |
|
if (flatRuleTester) { |
|
cachePrefix = "rule-to-test/"; |
|
return patchForV8FlatRuleTester(flatRuleTester); |
|
} |
|
return getRuleTesterClassFromLegacyRuleTester(); |
|
} |
|
} |
|
function getRuleIdPrefix() { |
|
getRuleTester(); |
|
return cachePrefix; |
|
} |
|
function patchForV8FlatRuleTester(flatRuleTester) { |
|
return class RuleTesterWithPatch extends flatRuleTester { |
|
constructor(options) { |
|
super(patchConfig(options)); |
|
} |
|
}; |
|
function patchConfig(config) { |
|
return { |
|
files: ["**/*.*"], |
|
...config |
|
}; |
|
} |
|
} |
|
function getRuleTesterClassFromLegacyRuleTester() { |
|
return class RuleTesterForV8 extends eslint.RuleTester { |
|
constructor(options) { |
|
var _a; |
|
const defineRules = []; |
|
const { processor, ...others } = options; |
|
super( |
|
convertConfigToRc(others, { |
|
defineRule(...args) { |
|
defineRules.push(args); |
|
} |
|
}) |
|
); |
|
__publicField(this, "defaultProcessor"); |
|
for (const args of defineRules) { |
|
(_a = this.linter) == null ? void 0 : _a.defineRule(...args); |
|
} |
|
this.defaultProcessor = processor; |
|
} |
|
run(name, rule, tests) { |
|
super.run(name, rule, { |
|
valid: (tests.valid || []).map( |
|
(test) => typeof test === "string" ? test : convert(test, this.defaultProcessor) |
|
), |
|
invalid: (tests.invalid || []).map( |
|
(test) => convert(test, this.defaultProcessor) |
|
) |
|
}); |
|
} |
|
}; |
|
function convert(config, defaultProcessor) { |
|
const { processor: configProcessor, ...otherConfig } = config; |
|
const processor = configProcessor || defaultProcessor; |
|
const converted = convertConfigToRc(otherConfig); |
|
if (!processor) { |
|
return converted; |
|
} |
|
return { |
|
...converted, |
|
filename: convertOptionToLegacy(processor, config.filename, config) |
|
}; |
|
} |
|
} |
|
|
|
export { getRuleIdPrefix, getRuleTester }; |
|
|