Skip to content

Commit

Permalink
Migrate ESLint to use new flat config (Fixes #42)
Browse files Browse the repository at this point in the history
  • Loading branch information
alexgibson committed Nov 14, 2023
1 parent e43de00 commit 8e8144e
Show file tree
Hide file tree
Showing 7 changed files with 171 additions and 64 deletions.
2 changes: 0 additions & 2 deletions .eslintignore

This file was deleted.

52 changes: 0 additions & 52 deletions .eslintrc.js

This file was deleted.

2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# HEAD

- **js:** Migrate JS tests to jasmine-browser-runner (#40).
- **js:** Migrate JS tests to jasmine-browser-runner (#40).

# 2.0.1

Expand Down
94 changes: 94 additions & 0 deletions eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
const js = require('@eslint/js');
const globals = require('globals');
const eslintConfigPrettier = require('eslint-config-prettier');

const rules = {
// Use type-safe equality operators
// https://eslint.org/docs/rules/eqeqeq
eqeqeq: ['error', 'always'],

// Treat var statements as if they were block scoped
// https://eslint.org/docs/rules/block-scoped-var
'block-scoped-var': 'error',

// Disallow Use of alert, confirm, prompt
// https://eslint.org/docs/rules/no-alert
'no-alert': 'error',

// Disallow eval()
// https://eslint.org/docs/rules/no-eval
'no-eval': 'error',

// Disallow empty functions
// https://eslint.org/docs/rules/no-empty-function
'no-empty-function': 'error',

// Require radix parameter
// https://eslint.org/docs/rules/radix
radix: 'error',

// Disallow the use of `console`
// https://eslint.org/docs/rules/no-console
'no-console': 'error'
};

module.exports = [
js.configs.recommended,
eslintConfigPrettier,
{
ignores: ['dist/**/*.js', 'demo/libs/**/*.js']
},
{
files: ['src/**/*.js'],
languageOptions: {
ecmaVersion: 2017,
globals: {
Mozilla: true,
...globals.browser,
...globals.commonjs
}
},
rules: rules
},
{
files: ['demo/**/*.js'],
languageOptions: {
ecmaVersion: 'latest',
globals: {
Mozilla: true,
...globals.browser,
...globals.node,
...globals.commonjs
}
},
rules: rules
},
{
files: ['tests/**/*.js'],
languageOptions: {
ecmaVersion: 'latest',
sourceType: 'module',
globals: {
Mozilla: true,
...globals.browser,
...globals.jasmine
}
},
rules: rules
},
{
files: [
'webpack.config.js',
'webpack.test.config.js',
'eslint.config.js'
],
languageOptions: {
ecmaVersion: 'latest',
globals: {
...globals.node,
...globals.commonjs
}
},
rules: rules
}
];
78 changes: 72 additions & 6 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 3 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@
"test": "./tests"
},
"scripts": {
"prebuild": "npm run prettier && ./node_modules/eslint/bin/eslint.js src/*.js demo/src/**/*.js tests/*.js",
"lint": "npm run prettier && npx eslint .",
"prebuild": "npm run lint",
"build": "webpack --mode production --config webpack.config.js",
"prettier": "prettier --write .",
"prepublishOnly": "npm run build",
Expand All @@ -33,6 +34,7 @@
"doctoc": "^2.2.1",
"eslint": "^8.52.0",
"eslint-config-prettier": "^9.0.0",
"globals": "^13.23.0",
"jasmine-browser-runner": "^2.3.0",
"jasmine-core": "^5.1.1",
"prettier": "^3.0.3",
Expand Down
3 changes: 1 addition & 2 deletions webpack.config.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
const path = require('path');
const { CleanWebpackPlugin } = require('clean-webpack-plugin');
const CopyPlugin = require('copy-webpack-plugin');
const package = require('./package.json');
const version = package.version;
const version = require('./package.json').version;

module.exports = {
entry: './src/mozilla-traffic-cop.js',
Expand Down

0 comments on commit 8e8144e

Please sign in to comment.