https://github.com/apache/cordova-eslint
Apache Cordova - ESLint
https://github.com/apache/cordova-eslint
cordova eslint javascript
Last synced: 8 days ago
JSON representation
Apache Cordova - ESLint
- Host: GitHub
- URL: https://github.com/apache/cordova-eslint
- Owner: apache
- License: apache-2.0
- Created: 2019-10-21T17:34:10.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2024-11-18T22:46:07.000Z (11 months ago)
- Last Synced: 2025-01-30T10:34:33.607Z (9 months ago)
- Topics: cordova, eslint, javascript
- Language: JavaScript
- Homepage: https://cordova.apache.org/
- Size: 344 KB
- Stars: 6
- Watchers: 10
- Forks: 6
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# @cordova/eslint-config
[](https://www.npmjs.com/package/@cordova/eslint-config)
[](https://github.com/apache/cordova-eslint/actions/workflows/ci.yml?query=branch%3Amaster)
[](https://github.com/apache/cordova-eslint/actions/workflows/release-audit.yml?query=branch%3Amaster)
[](https://codecov.io/github/apache/cordova-eslint?branch=master)
This repository centralizes the ESLint configuration used for Cordova's development, specifically repositories that start with `apache/cordova-`.
## Installation
`@cordova/eslint-config` comes with all plugins configs and even `eslint` itself. So all you need to do to get started is:
```shell
npm i -D @cordova/eslint-config
```
## Usage
```yml
# In package.json
{
"scripts": {
"lint": "eslint"
}
}
```
```javascript
// In eslint.config.js
const { defineConfig, globalIgnores } = require('eslint/config');
const nodeConfig = require('@cordova/eslint-config/node');
const nodeTestConfig = require('@cordova/eslint-config/node-tests');
const browserConfig = require('@cordova/eslint-config/browser');
module.exports = defineConfig([
globalIgnores([
// Add files or folders to ignore...
// For example: exclude everything in the "coverage" directory.
'coverage'
]),
// Node Linting
...nodeConfig.map(config => ({
files: [
// Add files or folders to check...
// For example: include everything in the "lib" directory.
// By default, ESLint lints files with extensions .js, .mjs & .cjs.
'lib'
],
// Spread each shared config to preserve its settings while extending or overriding specific properties
...config
})),
// Node Test Linting
...nodeTestConfig.map(config => ({
// Add files or folders to check...
// For example: include everything in the "spec" directory.
// By default, ESLint lints files with extensions .js, .mjs & .cjs.
files: [
'spec'
],
// Spread each shared config to preserve its settings while extending or overriding specific properties
...config,
// Overriding Rules
rules: {
// Make sure the original rules are applied
...(config.rules || {}),
// Then append or update rules
'prefer-promise-reject-errors': 'off'
}
})),
// Browser Linting
...browserConfig.map(config => ({
files: [
// Add files or folders to check...
// For Example: Platforms usuall has "cordova-js-src" that comiles down into a cordova.js file to runs in the app's WebView.
'cordova-js-src'
],
// Spread each shared config to preserve its settings while extending or overriding specific properties
...config,
// Overriding Language Options
languageOptions: {
// Make sure the original languageOptions are applied if existing
...(config?.languageOptions || {}),
// Overriding Global
globals: {
// Make sure the original languageOptions.globals are applied
...(config.languageOptions?.globals || {})
// Then append or update globals
require: 'readonly',
module: 'readonly',
}
}
}))
]);
```
## Reference
This package exposes the following shareable ESLint configurations:
### `@cordova/eslint-config/node` (or simply `@cordova`)
For linting scripts intended to be run with Node.js.
### `@cordova/eslint-config/node-tests`
For linting Jasmine tests of Cordova's Node.js scripts.
### `@cordova/eslint-config/browser`
For linting cordova-style CommonJS modules intended to be run in the browser (before they are bundled).
### `@cordova/eslint-config/browser-tests`
For linting Jasmine tests of Cordova's browser code.