/** * @fileoverview The FileContext class. * @author Nicholas C. Zakas */ "use strict"; /** * Represents a file context that the linter can use to lint a file. */ class FileContext { /** * The current working directory. * @type {string} */ cwd; /** * The filename of the file being linted. * @type {string} */ filename; /** * The physical filename of the file being linted. * @type {string} */ physicalFilename; /** * The source code of the file being linted. * @type {SourceCode} */ sourceCode; /** * The parser options for the file being linted. * @type {Record} * @deprecated Use `languageOptions` instead. */ parserOptions; /** * The path to the parser used to parse this file. * @type {string} * @deprecated No longer supported. */ parserPath; /** * The language options used when parsing this file. * @type {Record} */ languageOptions; /** * The settings for the file being linted. * @type {Record} */ settings; /** * Creates a new instance. * @param {Object} config The configuration object for the file context. * @param {string} config.cwd The current working directory. * @param {string} config.filename The filename of the file being linted. * @param {string} config.physicalFilename The physical filename of the file being linted. * @param {SourceCode} config.sourceCode The source code of the file being linted. * @param {Record} config.parserOptions The parser options for the file being linted. * @param {string} config.parserPath The path to the parser used to parse this file. * @param {Record} config.languageOptions The language options used when parsing this file. * @param {Record} config.settings The settings for the file being linted. */ constructor({ cwd, filename, physicalFilename, sourceCode, parserOptions, parserPath, languageOptions, settings }) { this.cwd = cwd; this.filename = filename; this.physicalFilename = physicalFilename; this.sourceCode = sourceCode; this.parserOptions = parserOptions; this.parserPath = parserPath; this.languageOptions = languageOptions; this.settings = settings; Object.freeze(this); } /** * Gets the current working directory. * @returns {string} The current working directory. * @deprecated Use `cwd` instead. */ getCwd() { return this.cwd; } /** * Gets the filename of the file being linted. * @returns {string} The filename of the file being linted. * @deprecated Use `filename` instead. */ getFilename() { return this.filename; } /** * Gets the physical filename of the file being linted. * @returns {string} The physical filename of the file being linted. * @deprecated Use `physicalFilename` instead. */ getPhysicalFilename() { return this.physicalFilename; } /** * Gets the source code of the file being linted. * @returns {SourceCode} The source code of the file being linted. * @deprecated Use `sourceCode` instead. */ getSourceCode() { return this.sourceCode; } } exports.FileContext = FileContext;