diff --git a/.eslintrc.js b/.eslintrc.js index 126cc22188..33927abd9b 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,16 +1,30 @@ module.exports = { env: { jest: true, + browser: true, + node: true, + es2021: true, }, - parser: '@babel/eslint-parser', + parser: '@typescript-eslint/parser', parserOptions: { + ecmaVersion: 12, + sourceType: 'module', babelOptions: { presets: ['@babel/preset-react'], }, }, - plugins: ['react', 'prettier'], - extends: ['airbnb', 'prettier', 'plugin:prettier/recommended'], + plugins: ['react', 'prettier', '@typescript-eslint', 'eslint-plugin-node'], + extends: [ + 'airbnb', + 'prettier', + 'plugin:prettier/recommended', + 'eslint:recommended', + 'plugin:@typescript-eslint/recommended', + ], rules: { + '@typescript-eslint/no-explicit-any': 'off', + '@typescript-eslint/no-unused-vars': 'error', + '@typescript-eslint/consistent-type-definitions': ['error', 'type'], 'prettier/prettier': 'error', 'import/no-cycle': 0, 'import/no-unresolved': 0, diff --git a/package.json b/package.json index 444ce112bf..9b5cfc16f3 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "dev:web": "lerna run dev --scope=@gympass/yoga-doc --stream", "dev:native:android": "lerna run android --scope=@gympass/yoga-labnative --stream", "dev:native:ios": "lerna run ios --scope=@gympass/yoga-labnative --stream", - "lint": "eslint --ext js,jsx,android.jsx,ios.jsx", + "lint": "eslint --ext js,jsx,android.jsx,ios.jsx,ts,tsx,android.ts,android.tsx", "lint:yoga": "NODE_ENV=test yarn lint packages/yoga", "lint:doc": "NODE_ENV=test yarn lint packages/doc", "lint:labnative": "NODE_ENV=test yarn lint packages/labnative", @@ -61,6 +61,7 @@ "eslint-plugin-import": "^2.26.0", "eslint-plugin-jsx-a11y": "^6.5.1", "eslint-plugin-prettier": "4.0.0", + "eslint-plugin-node": "^11.1.0", "fs-extra": "^11.2.0", "git-last-commit": "^1.0.0", "glob": "^10.3.12",