blob: 91f243a380c411563d88b1bd6f0d5c9b587501da [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF 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.
*/
'use strict';
module.exports = {
env: {
commonjs: true,
es6: true,
node: true,
},
parserOptions: {
ecmaVersion: 2017,
},
ignorePatterns: ['test/**/*.js', 'doc/**/*.js'],
extends: ['eslint:recommended', 'prettier'],
plugins: ['prettier'],
rules: {
'prettier/prettier': ['error', { endOfLine: 'auto' }],
indent: ['error', 2, { SwitchCase: 1 }],
'linebreak-style': 0,
quotes: ['error', 'single'],
semi: ['error', 'always'],
'no-constant-condition': ['error', { checkLoops: false }],
strict: ['error', 'global'],
'array-callback-return': 'error',
curly: 'error',
'no-unused-vars': ['error', { args: 'none' }],
'global-require': 'error',
eqeqeq: ['error', 'allow-null'],
// make sure for-in loops have an if statement
'guard-for-in': 'error',
'no-alert': 'error',
'no-caller': 'error',
'no-case-declarations': 'error',
'no-else-return': 'error',
'no-empty-pattern': 'error',
'no-eval': 'error',
'no-extend-native': 'error',
'no-extra-bind': 'error',
'no-extra-label': 'error',
'no-floating-decimal': 'error',
'no-global-assign': ['error', { exceptions: [] }],
'no-implicit-coercion': [
'off',
{
boolean: false,
number: true,
string: true,
allow: [],
},
],
'no-implied-eval': 'error',
'no-labels': ['error', { allowLoop: false, allowSwitch: false }],
'no-lone-blocks': 'error',
'no-loop-func': 'error',
//
// disallow use of multiple spaces
'no-multi-spaces': 'error',
'no-new': 'error',
'no-new-func': 'error',
'no-new-wrappers': 'error',
'no-octal-escape': 'error',
'no-proto': 'error',
'no-prototype-builtins': 0,
'no-redeclare': 'error',
'no-restricted-properties': [
'error',
{
object: 'arguments',
property: 'callee',
message: 'arguments.callee is deprecated',
},
{
property: '__defineGetter__',
message: 'Please use Object.defineProperty instead.',
},
{
property: '__defineSetter__',
message: 'Please use Object.defineProperty instead.',
},
],
'no-self-assign': 'error',
'no-self-compare': 'error',
'no-sequences': 'error',
'no-throw-literal': 'error',
'no-unmodified-loop-condition': 'off',
'no-unused-expressions': [
'error',
{
allowShortCircuit: false,
allowTernary: false,
},
],
'no-useless-call': 'off',
'no-useless-concat': 'error',
'no-useless-escape': 'error',
'no-useless-return': 'error',
'no-void': 'error',
'no-with': 'error',
'no-buffer-constructor': 'error',
radix: 'error',
'no-var': 'error',
'prefer-const': 'error',
'arrow-body-style': ['error', 'as-needed'],
'arrow-spacing': 'error',
'no-confusing-arrow': ['error', { allowParens: true }],
yoda: 'error',
'constructor-super': 'error',
'require-await': 'error',
'require-atomic-updates': 'off',
},
globals: {
Buffer: false,
Promise: true,
Symbol: false,
Uint16Array: false,
Int32Array: false,
Int8Array: false,
BigInt: false,
process: false,
setInterval: false,
setTimeout: false,
setImmediate: false,
clearInterval: false,
clearTimeout: false,
describe: false,
xdescribe: false,
it: false,
xit: false,
context: false,
after: false,
afterEach: false,
before: false,
beforeEach: false,
__filename: false,
},
};