108 lines
3.4 KiB
JavaScript
108 lines
3.4 KiB
JavaScript
// Licensed to the Software Freedom Conservancy (SFC) under one
|
|
// or more contributor license agreements. See the NOTICE file
|
|
// distributed with this work for additional information
|
|
// regarding copyright ownership. The SFC licenses this file
|
|
// to you under the Apache License, Version 2.0 (the
|
|
// "License"); you may not use this file except in compliance
|
|
// with the License. You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing,
|
|
// software distributed under the License is distributed on an
|
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
// KIND, either express or implied. See the License for the
|
|
// specific language governing permissions and limitations
|
|
// under the License.
|
|
|
|
const globals = require('globals')
|
|
const noOnlyTests = require('eslint-plugin-no-only-tests')
|
|
const js = require('@eslint/js')
|
|
const eslintPluginPrettierRecommended = require('eslint-plugin-prettier/recommended')
|
|
const mochaPlugin = require('eslint-plugin-mocha')
|
|
const nodePlugin = require('eslint-plugin-n')
|
|
|
|
module.exports = [
|
|
js.configs.recommended,
|
|
eslintPluginPrettierRecommended,
|
|
mochaPlugin.configs.flat.recommended,
|
|
nodePlugin.configs['flat/recommended-script'],
|
|
{
|
|
languageOptions: {
|
|
globals: {
|
|
mocha: true,
|
|
es6: true,
|
|
...globals.node,
|
|
},
|
|
parserOptions: {
|
|
ecmaVersion: 2022,
|
|
},
|
|
},
|
|
files: ['**/*.js', 'lib/http.js'],
|
|
ignores: ['node_modules/*', 'generator/*', 'devtools/generator/'],
|
|
plugins: {
|
|
'no-only-tests': noOnlyTests,
|
|
},
|
|
rules: {
|
|
'no-const-assign': 'error',
|
|
'no-this-before-super': 'error',
|
|
'no-undef': 'error',
|
|
'no-unreachable': 'error',
|
|
'no-unused-vars': [
|
|
'error',
|
|
{
|
|
varsIgnorePattern: '^_',
|
|
args: 'all',
|
|
argsIgnorePattern: '^_',
|
|
},
|
|
],
|
|
'constructor-super': 'error',
|
|
'valid-typeof': 'error',
|
|
'no-only-tests/no-only-tests': 'error',
|
|
'n/no-deprecated-api': ['error'],
|
|
'n/no-missing-import': ['error'],
|
|
'n/no-missing-require': ['error'],
|
|
'n/no-mixed-requires': ['error'],
|
|
'n/no-new-require': ['error'],
|
|
'n/no-unpublished-import': ['error'],
|
|
'n/no-unpublished-require': [
|
|
'error',
|
|
{
|
|
allowModules: [
|
|
'globals',
|
|
'@eslint/js',
|
|
'eslint-plugin-mocha',
|
|
'eslint-plugin-prettier',
|
|
'eslint-plugin-n',
|
|
'eslint-plugin-no-only-tests',
|
|
],
|
|
tryExtensions: ['.js'],
|
|
},
|
|
],
|
|
'n/prefer-node-protocol': ['error'],
|
|
'mocha/no-skipped-tests': ['off'],
|
|
'mocha/no-mocha-arrows': ['off'],
|
|
'mocha/no-setup-in-describe': ['off'],
|
|
'mocha/no-top-level-hooks': ['off'],
|
|
'mocha/no-sibling-hooks': ['off'],
|
|
'mocha/no-exports': ['off'],
|
|
'mocha/no-empty-description': ['off'],
|
|
'mocha/max-top-level-suites': ['off'],
|
|
'mocha/consistent-spacing-between-blocks': ['off'],
|
|
'mocha/no-nested-tests': ['off'],
|
|
'mocha/no-pending-tests': ['off'],
|
|
'mocha/no-identical-title': ['off'],
|
|
'prettier/prettier': [
|
|
'error',
|
|
{
|
|
endOfLine: 'lf',
|
|
printWidth: 120,
|
|
semi: false,
|
|
singleQuote: true,
|
|
trailingComma: 'all',
|
|
},
|
|
],
|
|
},
|
|
},
|
|
]
|