diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 00000000..09a8422e --- /dev/null +++ b/.eslintignore @@ -0,0 +1 @@ +!.eslintrc.js diff --git a/.eslintrc b/.eslintrc deleted file mode 100644 index c5d4a3e1..00000000 --- a/.eslintrc +++ /dev/null @@ -1,161 +0,0 @@ -{ - "parserOptions": { - "sourceType": "module", - "ecmaVersion": 2017, - "ecmaFeatures": { - "experimentalObjectRestSpread": true, - "impliedStrict": true, - "modules": true, - "blockBindings": true, - "arrowFunctions": true, - "objectLiteralShorthandMethods": true, - "objectLiteralShorthandProperties": true, - "templateStrings": true, - "classes": true - } - }, - - "env": { - "es6": true, - "browser": true - }, - - "plugins": [ - "json" - ], - - "globals": { - "document": true, - "navigator": false, - "web3": true, - "window": true, - "$": false, - "QUnit": false - }, - - "rules": { - "default-case": 2, - "no-restricted-globals": ["error", "event"], - "accessor-pairs": 2, - "arrow-spacing": [2, { "before": true, "after": true }], - "block-spacing": [2, "always"], - "brace-style": 2, - "camelcase": [2, { "properties": "never", "allow": ["^UNSAFE_"] }], - "comma-dangle": [2, "always-multiline"], - "comma-spacing": [2, { "before": false, "after": true }], - "comma-style": [2, "last"], - "constructor-super": 2, - "curly": 2, - "dot-location": [2, "property"], - "eol-last": 2, - "eqeqeq": [2, "allow-null"], - "generator-star-spacing": [2, { "before": true, "after": true }], - "handle-callback-err": [2, "^(err|error)$" ], - "indent": [2, 2,{ "SwitchCase": 1 }], - "key-spacing": 2, - "keyword-spacing": [2, { "before": true, "after": true }], - "new-cap": [2, { "newIsCap": true, "capIsNew": false }], - "new-parens": 2, - "no-array-constructor": 2, - "no-async-promise-executor": "error", - "no-caller": 2, - "no-class-assign": 2, - "no-cond-assign": 2, - "no-confusing-arrow": 2, - "no-const-assign": 2, - "no-control-regex": 2, - "no-debugger": 2, - "no-delete-var": 2, - "no-dupe-args": 2, - "no-dupe-class-members": 2, - "no-dupe-keys": 2, - "no-duplicate-case": 2, - "no-duplicate-imports": 2, - "no-empty-character-class": 2, - "no-empty-pattern": 2, - "no-eval": 2, - "no-ex-assign": 2, - "no-extend-native": 2, - "no-extra-bind": 2, - "no-extra-boolean-cast": 2, - "no-extra-parens": [2, "functions"], - "no-fallthrough": 2, - "no-floating-decimal": 2, - "no-func-assign": 2, - "no-implied-eval": 2, - "no-inner-declarations": [2, "functions"], - "no-invalid-regexp": 2, - "no-irregular-whitespace": 2, - "no-iterator": 2, - "no-label-var": 2, - "no-labels": [2, { "allowLoop": false, "allowSwitch": false }], - "no-lone-blocks": 2, - "no-mixed-spaces-and-tabs": 2, - "no-multi-spaces": 2, - "no-multi-str": 2, - "no-multiple-empty-lines": [2, { "max": 2 }], - "no-native-reassign": 2, - "no-negated-in-lhs": 2, - "no-new": 2, - "no-new-func": 2, - "no-new-object": 2, - "no-new-require": 2, - "no-new-symbol": 2, - "no-new-wrappers": 2, - "no-obj-calls": 2, - "no-octal": 2, - "no-octal-escape": 2, - "no-path-concat": 2, - "no-proto": 2, - "no-redeclare": 2, - "no-regex-spaces": 2, - "no-return-assign": [2, "except-parens"], - "no-self-assign": 2, - "no-self-compare": 2, - "no-sequences": 2, - "no-shadow-restricted-names": 2, - "no-spaced-func": 2, - "no-sparse-arrays": 2, - "no-this-before-super": 2, - "no-throw-literal": 2, - "no-trailing-spaces": 2, - "no-undef": 2, - "no-undef-init": 2, - "no-unexpected-multiline": 2, - "no-unmodified-loop-condition": 2, - "no-unneeded-ternary": [2, { "defaultAssignment": false }], - "no-unreachable": 2, - "no-unsafe-finally": 2, - "no-unused-expressions": ["error", { "allowShortCircuit" : true, "allowTernary": true }], - "no-unused-vars": [2, { "vars": "all", "args": "all", "argsIgnorePattern": "[_]+" }], - "no-use-before-define": [2, { "functions": false }], - "no-useless-call": 2, - "no-useless-computed-key": 2, - "no-useless-constructor": 2, - "no-useless-escape": 2, - "no-var": 2, - "no-whitespace-before-property": 2, - "no-with": 2, - "object-curly-spacing": [2, "always"], - "one-var": [2, { "initialized": "never" }], - "operator-linebreak": [2, "after", { "overrides": { "?": "ignore", ":": "ignore" } }], - "padded-blocks": "off", - "quotes": [2, "single", {"avoidEscape": true, "allowTemplateLiterals": true}], - "semi": [2, "never"], - "semi-spacing": [2, { "before": false, "after": true }], - "space-before-blocks": [2, "always"], - "space-before-function-paren": [2, "always"], - "space-in-parens": [2, "never"], - "space-infix-ops": 2, - "space-unary-ops": [2, { "words": true, "nonwords": false }], - "spaced-comment": [2, "always", { "markers": ["global", "globals", "eslint", "eslint-disable", "*package", "!", ","], "exceptions": ["=", "-"] } ], - "strict": 0, - "template-curly-spacing": [2, "never"], - "use-isnan": 2, - "valid-typeof": 2, - "wrap-iife": [2, "any"], - "yield-star-spacing": [2, "both"], - "yoda": [2, "never"], - "prefer-const": 2 - } -} diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 00000000..87518210 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,34 @@ +module.exports = { + parserOptions: { + 'sourceType': 'module', + 'ecmaVersion': 2017, + 'ecmaFeatures': { + 'experimentalObjectRestSpread': true, + 'impliedStrict': true, + 'modules': true, + 'blockBindings': true, + 'arrowFunctions': true, + 'objectLiteralShorthandMethods': true, + 'objectLiteralShorthandProperties': true, + 'templateStrings': true, + 'classes': true, + }, + }, + + env: { + 'browser': true, + }, + + plugins: [ + 'json', + ], + + extends: [ + '@metamask/eslint-config', + '@metamask/eslint-config/config/nodejs', + ], + + globals: { + 'web3': true, + }, +} diff --git a/package.json b/package.json index fc42c203..935a1baa 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "lint": "eslint . --ext js,json", "lint:fix": "eslint . --fix --ext js,json", "serve": "static-server . --port 9011", - "test": "echo \"Error: no test specified\" && exit 1" + "test": "yarn lint" }, "repository": { "type": "git", @@ -27,6 +27,7 @@ "@metamask/onboarding": "^0.2.0" }, "devDependencies": { + "@metamask/eslint-config": "^1.0.0", "eslint": "^6.8.0", "eslint-plugin-json": "^2.0.1", "static-server": "^2.2.1" diff --git a/yarn.lock b/yarn.lock index 6cde7d63..97110994 100644 --- a/yarn.lock +++ b/yarn.lock @@ -18,6 +18,11 @@ esutils "^2.0.2" js-tokens "^4.0.0" +"@metamask/eslint-config@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@metamask/eslint-config/-/eslint-config-1.0.0.tgz#046012398bb27f56395355c96ef07152925043b7" + integrity sha512-MmxM2sknVhIHyXCjR6LcK57OPJ30gTEX5v/jwC+qXuw4GIgUAPbxFp3AFmFRAJwty3RMjJSbRJ7YlamMq67U8w== + "@metamask/onboarding@^0.2.0": version "0.2.0" resolved "https://registry.yarnpkg.com/@metamask/onboarding/-/onboarding-0.2.0.tgz#9594f6a9a1c779083d71434b9f5e6a973af941f7"