const js = require('@eslint/js'); const globals = require('globals'); const prettier = require('eslint-plugin-prettier'); const eslintPluginPrettierRecommended = require('eslint-plugin-prettier/recommended'); const jest = require('eslint-plugin-jest'); module.exports = [ js.configs.recommended, eslintPluginPrettierRecommended, { plugins: { prettier }, rules: { 'prettier/prettier': ['error'], 'no-var': ['error'], 'no-unused-vars': [ 'warn', { argsIgnorePattern: '^_', varsIgnorePattern: '^_' } ] }, languageOptions: { ecmaVersion: 'latest', sourceType: 'module', globals: { ...globals.browser, ...globals.webextensions, ...globals.es2021, ...globals.jquery, ...globals.serviceworker } } }, { files: [ 'functional-samples/tutorial.puppeteer/**/*', 'functional-samples/tutorial.terminate-sw/**/*' ], plugins: { jest }, rules: { ...jest.configs['flat/recommended'].rules }, languageOptions: { globals: { ...globals.jest } }, settings: { jest: { version: '29.7.0' } } }, { // Ignores must be in a separate block to apply globally: // https://eslint.org/docs/latest/use/configure/configuration-files#globally-ignoring-files-with-ignores ignores: [ 'eslint.config.js', '.repo/**/*', '_archive/**/*', '**/third-party/**', '**/node_modules/**/*', '**/dist/**/*', // These are autogenerated files that we shouldn't lint 'functional-samples/cookbook.wasm-helloworld-print/wasm/pkg/**/*', 'functional-samples/cookbook.wasm-helloworld-print-nomodule/wasm/pkg/**/*' ] } ];