diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..1094a27 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,37 @@ +module.exports = { + env: { + browser: true, + es2021: true, + }, + extends: [ + "plugin:react/recommended", + "airbnb", + "prettier", + "plugin:prettier/recommended", + "plugin:import/recommended", + ], + parser: "@typescript-eslint/parser", + parserOptions: { + ecmaFeatures: { + jsx: true, + }, + ecmaVersion: 12, + sourceType: "module", + }, + plugins: ["react", "@typescript-eslint", "prettier"], + rules: { + "prettier/prettier": "error", + "no-use-before-define": "off", + "@typescript-eslint/no-use-before-define": ["error"], + // Temporary disabled because eslint is currently not working with "@" imports (e.g. "@theme" by docusaurus) - other eslint import plugins did not fix this issue + "import/no-unresolved": ["off", { extensions: [".tsx"] }], + "react/jsx-filename-extension": ["warn", { extensions: [".ts", ".tsx"] }], + }, + overrides: [ + { + files: ["*.md", "*.mdx"], + parser: "eslint-mdx", + extends: "plugin:mdx/recommended", + }, + ], +}; diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index bb78eaa..0000000 --- a/.eslintrc.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "env": { - "node": true - }, - "extends": [ - "eslint:recommended", - "prettier", - "plugin:react/recommended", - "plugin:mdx/recommended" - ], - "overrides": [ - { - "files": [".mdx", ".md"], - "parser": "eslint-mdx", - "extends": "plugin:mdx/recommended" - } - ], - "parserOptions": { - "ecmaVersion": 2021, - "sourceType": "module" - }, - "settings": { - "react": { - "version": "detect" - }, - "mdx/code-blocks": true - }, - "plugins": [], - "rules": {} -} diff --git a/.github/workflows/yarn.yml b/.github/workflows/yarn.yml index 87315e1..164b3f6 100644 --- a/.github/workflows/yarn.yml +++ b/.github/workflows/yarn.yml @@ -1,6 +1,6 @@ name: Website Yarn Build -on: [create, push, pull_request, workflow_dispatch] +on: [push, pull_request, workflow_dispatch] jobs: build: @@ -20,12 +20,16 @@ jobs: install-command: yarn --frozen-lockfile - name: Check codestyle uses: wearerequired/lint-action@v1 + if: ${{ github.repository == 'CloudNetService/website' }} with: eslint: true - eslint_extensions: js,jsx,md,mdx + eslint_extensions: js,jsx,md,mdx,ts,tsx prettier: true - prettier_extensions: js,jsx,css,md,mdx + prettier_extensions: js,jsx,css,md,mdx,ts,tsx neutral_check_on_warning: true + - name: Check codestyle on external repositories + if: ${{ github.repository != 'CloudNetService/website' }} + run: yarn test - name: Sync translations env: CROWDIN_PROJECT_ID: 4 diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml index fd17feb..a05b3b8 100644 --- a/.idea/codeStyles/Project.xml +++ b/.idea/codeStyles/Project.xml @@ -6,6 +6,7 @@ +