Skip to content

erisu/cordova-eslint

 
 

Repository files navigation

@cordova/eslint-config

NPM

Node CI Release Audit codecov.io

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:

npm i -D @cordova/eslint-config

Usage

# In package.json
{
  "scripts": {
    "lint": "eslint"
  }
}
// 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.

About

Apache Cordova - ESLint

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy