You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.6 KiB
50 lines
1.6 KiB
/** |
|
* @fileoverview Expose out ESLint and CLI to require. |
|
* @author Ian Christian Myers |
|
*/ |
|
|
|
"use strict"; |
|
|
|
//----------------------------------------------------------------------------- |
|
// Requirements |
|
//----------------------------------------------------------------------------- |
|
|
|
const { ESLint, shouldUseFlatConfig } = require("./eslint/eslint"); |
|
const { LegacyESLint } = require("./eslint/legacy-eslint"); |
|
const { Linter } = require("./linter"); |
|
const { RuleTester } = require("./rule-tester"); |
|
const { SourceCode } = require("./languages/js/source-code"); |
|
|
|
//----------------------------------------------------------------------------- |
|
// Functions |
|
//----------------------------------------------------------------------------- |
|
|
|
/** |
|
* Loads the correct ESLint constructor given the options. |
|
* @param {Object} [options] The options object |
|
* @param {boolean} [options.useFlatConfig] Whether or not to use a flat config |
|
* @returns {Promise<ESLint|LegacyESLint>} The ESLint constructor |
|
*/ |
|
async function loadESLint({ useFlatConfig } = {}) { |
|
|
|
/* |
|
* Note: The v8.x version of this function also accepted a `cwd` option, but |
|
* it is not used in this implementation so we silently ignore it. |
|
*/ |
|
|
|
const shouldESLintUseFlatConfig = useFlatConfig ?? (await shouldUseFlatConfig()); |
|
|
|
return shouldESLintUseFlatConfig ? ESLint : LegacyESLint; |
|
} |
|
|
|
//----------------------------------------------------------------------------- |
|
// Exports |
|
//----------------------------------------------------------------------------- |
|
|
|
module.exports = { |
|
Linter, |
|
loadESLint, |
|
ESLint, |
|
RuleTester, |
|
SourceCode |
|
};
|
|
|