You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

49 lines
1.4 KiB
Markdown

# eslint-compat-utils
***This package is still in the experimental stage.***
Provides an API for ESLint custom rules that is compatible with the latest ESLint even when using older ESLint.
## Installation
```bash
npm install --save-dev eslint-compat-utils
```
## Usage
```js
const { getSourceCode } = require("eslint-compat-utils");
module.exports = {
meta: { /* ... */ },
create(context) {
const sourceCode = getSourceCode(context)
return {
"Program"(node) {
const scope = sourceCode.getScope(node);
},
};
},
}
```
### API
#### `getSourceCode(context)`
Returns an extended instance of `context.sourceCode` or the result of `context.getSourceCode()`. Extended instances can use new APIs such as `getScope(node)` even with old ESLint.
#### `getCwd(context)`
Gets the value of `context.cwd`, but for older ESLint it returns the result of `context.getCwd()`.
Versions older than v6.6.0 return a value from the result of `process.cwd()`.
#### `getFilename(context)`
Gets the value of `context.filename`, but for older ESLint it returns the result of `context.getFilename()`.
#### `getPhysicalFilename(context)`
Gets the value of `context.physicalFilename`, but for older ESLint it returns the result of `context.getPhysicalFilename()`.
Versions older than v7.28.0 return a value guessed from the result of `context.getFilename()`, but it may be incorrect.