module.exports = { parser: 'babel-eslint', parserOptions: { 'sourceType': 'module', 'ecmaVersion': 2017, 'ecmaFeatures': { 'experimentalObjectRestSpread': true, 'impliedStrict': true, 'modules': true, 'blockBindings': true, 'arrowFunctions': true, 'objectLiteralShorthandMethods': true, 'objectLiteralShorthandProperties': true, 'templateStrings': true, 'classes': true, 'jsx': true, }, }, extends: [ '@metamask/eslint-config', '@metamask/eslint-config/config/nodejs', 'plugin:react/recommended', ], env: { 'browser': true, 'mocha': true, }, plugins: [ 'babel', 'mocha', 'chai', 'react', 'json', 'import', ], globals: { 'web3': true, '$': false, 'QUnit': false, }, rules: { 'import/default': 'error', 'import/export': 'error', 'import/named': 'error', 'import/namespace': 'error', 'import/newline-after-import': 'error', 'import/no-absolute-path': 'error', 'import/no-amd': 'error', 'import/no-anonymous-default-export': ['error', { 'allowObject': true }], 'import/no-duplicates': 'error', 'import/no-dynamic-require': 'error', 'import/no-mutable-exports': 'error', 'import/no-named-as-default': 'error', 'import/no-named-as-default-member': 'error', 'import/no-named-default': 'error', 'import/no-self-import': 'error', 'import/no-unresolved': ['error', { 'commonjs': true }], 'import/no-unused-modules': 'error', 'import/no-useless-path-segments': ['error', { 'commonjs': true }], 'import/no-webpack-loader-syntax': 'error', 'react/no-unused-prop-types': 'error', 'react/no-unused-state': 'error', 'react/jsx-boolean-value': 'error', 'react/jsx-curly-brace-presence': ['error', { 'props': 'never', 'children': 'never' }], 'react/jsx-equals-spacing': 'error', 'react/no-deprecated': 'error', 'react/default-props-match-prop-types': 'error', 'react/jsx-closing-tag-location': 'error', 'react/jsx-no-duplicate-props': 'error', 'react/jsx-closing-bracket-location': 'error', 'react/jsx-first-prop-new-line': 'error', 'react/jsx-max-props-per-line': ['error', { 'maximum': 1, 'when': 'multiline' } ], 'react/jsx-tag-spacing': ['error', { 'closingSlash': 'never', 'beforeSelfClosing': 'always', 'afterOpening': 'never', }], 'react/jsx-wrap-multilines': ['error', { 'declaration': 'parens-new-line', 'assignment': 'parens-new-line', 'return': 'parens-new-line', 'arrow': 'parens-new-line', 'condition': 'parens-new-line', 'logical': 'parens-new-line', 'prop': 'parens-new-line', }], 'babel/semi': ['error', 'never'], 'mocha/no-exclusive-tests': 'error', }, }