|  | /** | 
						
						
							|  |  * @fileoverview Expose out ESLint and CLI to require. | 
						
						
							|  |  * @author Ian Christian Myers | 
						
						
							|  |  */ | 
						
						
							|  | 
 | 
						
						
							|  | "use strict"; | 
						
						
							|  | 
 | 
						
						
							|  | //----------------------------------------------------------------------------- | 
						
						
							|  | // Requirements | 
						
						
							|  | //----------------------------------------------------------------------------- | 
						
						
							|  |  | 
						
						
							|  | const { ESLint, FlatESLint } = require("./eslint"); | 
						
						
							|  | const { shouldUseFlatConfig } = require("./eslint/flat-eslint"); | 
						
						
							|  | const { Linter } = require("./linter"); | 
						
						
							|  | const { RuleTester } = require("./rule-tester"); | 
						
						
							|  | const { SourceCode } = require("./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 | 
						
						
							|  |  * @param {string} [options.cwd] The current working directory | 
						
						
							|  |  * @returns {Promise<ESLint|LegacyESLint>} The ESLint constructor | 
						
						
							|  |  */ | 
						
						
							|  | async function loadESLint({ useFlatConfig, cwd = process.cwd() } = {}) { | 
						
						
							|  | 
 | 
						
						
							|  |     /* | 
						
						
							|  |      * Note: The v9.x version of this function doesn't have a cwd option | 
						
						
							|  |      * because it's not used. It's only used in the v8.x version of this | 
						
						
							|  |      * function. | 
						
						
							|  |      */ | 
						
						
							|  | 
 | 
						
						
							|  |     const shouldESLintUseFlatConfig = typeof useFlatConfig === "boolean" | 
						
						
							|  |         ? useFlatConfig | 
						
						
							|  |         : await shouldUseFlatConfig({ cwd }); | 
						
						
							|  | 
 | 
						
						
							|  |     return shouldESLintUseFlatConfig ? FlatESLint : ESLint; | 
						
						
							|  | } | 
						
						
							|  | 
 | 
						
						
							|  | //----------------------------------------------------------------------------- | 
						
						
							|  | // Exports | 
						
						
							|  | //----------------------------------------------------------------------------- | 
						
						
							|  |  | 
						
						
							|  | module.exports = { | 
						
						
							|  |     Linter, | 
						
						
							|  |     loadESLint, | 
						
						
							|  |     ESLint, | 
						
						
							|  |     RuleTester, | 
						
						
							|  |     SourceCode | 
						
						
							|  | };
 |