File size: 1,394 Bytes
bc20498 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# 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 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.
|