diff --git a/.eslintrc.js b/.eslintrc.js index b242646f..1e63f29a 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -3,6 +3,15 @@ const { overrides } = require('@1stg/eslint-config/overrides') module.exports = { extends: '@1stg', overrides, + settings: { + polyfills: [ + 'console', + 'Array.isArray', + 'Object.assign', + 'Object.keys', + 'Promise', + ], + }, rules: { 'node/no-extraneous-require': 0, 'node/no-extraneous-import': 0, diff --git a/packages/browserslist-config/index.js b/packages/browserslist-config/index.js index 8ab2170d..81bd6c41 100644 --- a/packages/browserslist-config/index.js +++ b/packages/browserslist-config/index.js @@ -1,6 +1,6 @@ module.exports = [ 'defaults', - 'current node', + // 'current node', // disable temporarily, see https://github.com/amilajack/eslint-plugin-compat/issues/264 'last 5 versions', 'not dead', '>0.5% in CN', diff --git a/packages/eslint-config/index.js b/packages/eslint-config/index.js index 60a8669d..950ca506 100644 --- a/packages/eslint-config/index.js +++ b/packages/eslint-config/index.js @@ -1,6 +1,7 @@ module.exports = { extends: [ 'eslint:recommended', + 'plugin:compat/recommended', 'plugin:import/recommended', 'plugin:node/recommended', 'plugin:promise/recommended', diff --git a/packages/eslint-config/package.json b/packages/eslint-config/package.json index bcfb61d5..85df4449 100644 --- a/packages/eslint-config/package.json +++ b/packages/eslint-config/package.json @@ -19,6 +19,7 @@ "eslint-config-standard-react": "^9.1.0", "eslint-import-resolver-typescript": "JounQin/eslint-import-resolver-typescript#feat/resolve_dts", "eslint-plugin-babel": "^5.3.0", + "eslint-plugin-compat": "^3.3.0", "eslint-plugin-import": "^2.18.2", "eslint-plugin-jest": "^22.17.0", "eslint-plugin-mdx": "^1.4.2", diff --git a/yarn.lock b/yarn.lock index a323e69d..ab09aaf3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -865,7 +865,7 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-typescript" "^7.3.2" -"@babel/runtime@^7.4.2", "@babel/runtime@^7.5.5": +"@babel/runtime@^7.4.2", "@babel/runtime@^7.4.5", "@babel/runtime@^7.5.5": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.5.5.tgz#74fba56d35efbeca444091c7850ccd494fd2f132" integrity sha512-28QvEGyQyNkB0/m2B4FU7IEZGK2NUrcMtT6BZEFALTguLk+AUT6ofsHtPk5QyjAdUkpMJ+/Em+quwz4HOt30AQ== @@ -2870,6 +2870,11 @@ assign-symbols@^1.0.0: resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= +ast-metadata-inferer@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/ast-metadata-inferer/-/ast-metadata-inferer-0.1.1.tgz#66e24fae9d30ca961fac4880b7fc466f09b25165" + integrity sha512-hc9w8Qrgg9Lf9iFcZVhNjUnhrd2BBpTlyCnegPVvCe6O0yMrF57a6Cmh7k+xUsfUOMh9wajOL5AsGOBNEyTCcw== + ast-types-flow@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" @@ -3341,6 +3346,11 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" +caniuse-db@^1.0.30000977: + version "1.0.30000992" + resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000992.tgz#95b37994cbc913cf6ac4aa5afda5c6c7881ba49e" + integrity sha512-9AZRaPuAGg7Dh3iiO5/i8APo9UjVEeyArfW1ZTvYpg0H/Eo4VrAe3ggqOaUY9mhyfxT3CLeAZgEKqo+1nRc0MA== + caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000887, caniuse-lite@^1.0.30000980, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30000989: version "1.0.30000989" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000989.tgz#b9193e293ccf7e4426c5245134b8f2a56c0ac4b9" @@ -4638,6 +4648,19 @@ eslint-plugin-babel@^5.3.0: dependencies: eslint-rule-composer "^0.3.0" +eslint-plugin-compat@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-compat/-/eslint-plugin-compat-3.3.0.tgz#ece063f53793e6859243ce6cb9634865f745b72e" + integrity sha512-QCgYy3pZ+zH10dkBJus1xER0359h1UhJjufhQRqp9Owm6BEoLZeSqxf2zINwL1OGao9Yc96xPYIW3nQj5HUryg== + dependencies: + "@babel/runtime" "^7.4.5" + ast-metadata-inferer "^0.1.1" + browserslist "^4.6.3" + caniuse-db "^1.0.30000977" + lodash.memoize "4.1.2" + mdn-browser-compat-data "^0.0.84" + semver "^6.1.2" + eslint-plugin-es@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-2.0.0.tgz#0f5f5da5f18aa21989feebe8a73eadefb3432976" @@ -7174,7 +7197,7 @@ lodash.kebabcase@^4.1.1: resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36" integrity sha1-hImxyw0p/4gZXM7KRI/21swpXDY= -lodash.memoize@^4.1.2: +lodash.memoize@4.1.2, lodash.memoize@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= @@ -7428,6 +7451,13 @@ mdast-util-to-string@^1.0.2: resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-1.0.6.tgz#7d85421021343b33de1552fc71cb8e5b4ae7536d" integrity sha512-868pp48gUPmZIhfKrLbaDneuzGiw3OTDjHc5M1kAepR2CWBJ+HpEsm252K4aXdiP5coVZaJPOqGtVU6Po8xnXg== +mdn-browser-compat-data@^0.0.84: + version "0.0.84" + resolved "https://registry.yarnpkg.com/mdn-browser-compat-data/-/mdn-browser-compat-data-0.0.84.tgz#791d0e238cff5779fae589f99f5b2c7b84ea44b5" + integrity sha512-fAznuGNaQMQiWLVf+gyp33FaABTglYWqMT7JqvH+4RZn2UQPD12gbMqxwP9m0lj8AAbNpu5/kD6n4Ox1SOffpw== + dependencies: + extend "3.0.2" + mdn-data@2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b"