From 30925c739b60d8a54d84c7c58a3ab854c167f2c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lou=20=E2=9C=A8?= Date: Mon, 16 Sep 2024 11:51:01 -0500 Subject: [PATCH] UI ESLint (#42184) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 🚨 new ESLint rules and configuration. * 🚨 fix all linting errors. * 🚚 fix component casing. * 🔧 add new import sorting for prettier. * 🚨 apply new sorting of imports. * 🔧 add missing `noUncheckedIndexedAccess` setting to avoid potential mistakes with index access. * 📄 add license to `prettier.config.js` * 🎨 format code examples to use spaces instead of tabs. * 🎨 format openapi-gen files. * 🔧 exclude `pnpm-lock.yaml` from adding a license. * 🔧 add ignore of `pnpm-lock.yaml` in more places. 🌐 add statics word. * 🔧 add `.vscode/settings.json` * 🔧 add `*.tsbuildinfo` to `.gitignore`. ⬇️ downgrade typescript. * 🔧 revert `.vscode` files ignore in gitignore. 🔥 remove `settings.json` for now. * ⏪ revert formatting in .pre-commit-config.yaml * 🚚 change casing of files to match main. * 🔀 fix main merge issues -_- * 🚚 fix incorrect main file casing change. * 🔥 delete duplicated files that were moved in main. * 🎨 add missing space in pre-commit-config * ✏️ fix pnpm-lock.yaml * 🔧 fix dist ignoring. * 🤔 Lint and fox vite.config.ts. --- .gitignore | 4 +- .pre-commit-config.yaml | 2 +- .rat-excludes | 1 + airflow/ui/.prettierrc | 11 - airflow/ui/dev/index.html | 1 + airflow/ui/eslint.config.js | 61 +- airflow/ui/openapi-gen/queries/common.ts | 109 +- airflow/ui/openapi-gen/queries/prefetch.ts | 993 ++++++++- airflow/ui/openapi-gen/queries/queries.ts | 1589 ++++++++++++-- airflow/ui/openapi-gen/queries/suspense.ts | 1071 ++++++++- .../ui/openapi-gen/requests/core/ApiError.ts | 2 +- .../requests/core/CancelablePromise.ts | 8 +- .../ui/openapi-gen/requests/core/OpenAPI.ts | 1 + .../ui/openapi-gen/requests/core/request.ts | 22 +- .../ui/openapi-gen/requests/services.gen.ts | 163 +- airflow/ui/package.json | 30 +- airflow/ui/pnpm-lock.yaml | 1448 ++++++++---- airflow/ui/prettier.config.js | 39 + airflow/ui/rules/core.js | 1479 +++++++++++++ airflow/ui/rules/levels.js | 27 + airflow/ui/rules/off.js | 31 + airflow/ui/rules/perfectionist.js | 144 ++ airflow/ui/rules/plugin-patch.d.ts | 49 + airflow/ui/rules/prettier.js | 40 + airflow/ui/rules/react.js | 646 ++++++ airflow/ui/rules/stylistic.js | 96 + airflow/ui/rules/typescript.js | 1947 +++++++++++++++++ airflow/ui/rules/unicorn.js | 1282 +++++++++++ airflow/ui/src/App.test.tsx | 13 +- airflow/ui/src/App.tsx | 9 +- airflow/ui/src/assets/AirflowPin.tsx | 15 +- airflow/ui/src/assets/DagIcon.tsx | 15 +- .../components/DataTable/DataTable.test.tsx | 30 +- .../ui/src/components/DataTable/DataTable.tsx | 207 +- .../components/DataTable/TablePaginator.tsx | 89 + airflow/ui/src/components/DataTable/index.tsx | 4 +- .../components/DataTable/searchParams.test.ts | 17 +- .../src/components/DataTable/searchParams.ts | 49 +- airflow/ui/src/components/DataTable/types.ts | 7 +- .../components/DataTable/useTableUrlState.ts | 15 +- .../ui/src/components/QuickFilterButton.tsx | 31 + airflow/ui/src/components/SearchBar.tsx | 58 + airflow/ui/src/layouts/BaseLayout.tsx | 19 +- airflow/ui/src/layouts/Nav.tsx | 40 +- airflow/ui/src/layouts/NavButton.tsx | 23 +- airflow/ui/src/{Main.tsx => main.tsx} | 36 +- airflow/ui/src/pages/DagsList.tsx | 167 +- airflow/ui/src/theme.ts | 53 +- airflow/ui/src/utils/ChakraWrapper.tsx | 24 + airflow/ui/src/utils/RouterWrapper.tsx | 24 + .../ui/src/utils/{test.tsx => Wrapper.tsx} | 11 +- airflow/ui/src/utils/pluralize.test.ts | 53 +- airflow/ui/src/utils/pluralize.ts | 14 +- airflow/ui/testsSetup.ts | 4 +- airflow/ui/tsconfig.app.json | 2 + airflow/ui/tsconfig.dev.json | 12 + airflow/ui/tsconfig.json | 1 + airflow/ui/tsconfig.node.json | 1 + airflow/ui/vite.config.ts | 42 +- docs/spelling_wordlist.txt | 1 + 60 files changed, 10988 insertions(+), 1394 deletions(-) delete mode 100644 airflow/ui/.prettierrc create mode 100644 airflow/ui/prettier.config.js create mode 100644 airflow/ui/rules/core.js create mode 100644 airflow/ui/rules/levels.js create mode 100644 airflow/ui/rules/off.js create mode 100644 airflow/ui/rules/perfectionist.js create mode 100644 airflow/ui/rules/plugin-patch.d.ts create mode 100644 airflow/ui/rules/prettier.js create mode 100644 airflow/ui/rules/react.js create mode 100644 airflow/ui/rules/stylistic.js create mode 100644 airflow/ui/rules/typescript.js create mode 100644 airflow/ui/rules/unicorn.js create mode 100644 airflow/ui/src/components/DataTable/TablePaginator.tsx create mode 100644 airflow/ui/src/components/QuickFilterButton.tsx create mode 100644 airflow/ui/src/components/SearchBar.tsx rename airflow/ui/src/{Main.tsx => main.tsx} (81%) create mode 100644 airflow/ui/src/utils/ChakraWrapper.tsx create mode 100644 airflow/ui/src/utils/RouterWrapper.tsx rename airflow/ui/src/utils/{test.tsx => Wrapper.tsx} (83%) create mode 100644 airflow/ui/tsconfig.dev.json diff --git a/.gitignore b/.gitignore index a37af448782a3..ef8f986f78030 100644 --- a/.gitignore +++ b/.gitignore @@ -127,9 +127,6 @@ ENV/ .idea/ *.iml -# Visual Studio Code -.vscode/ - # vim *.swp @@ -173,6 +170,7 @@ pnpm-debug.log* !.vscode/extensions.json /.vite/ .pnpm-store +*.tsbuildinfo # Airflow log files when airflow is run locally airflow-*.err diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 8bb9ff4302a80..35e8df5fe8445 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -135,7 +135,7 @@ repos: - --fuzzy-match-generates-todo - id: insert-license name: Add license for all YAML files except Helm templates - exclude: ^\.github/.*$|^.*/.*_vendor/|^chart/templates/.*|.*/reproducible_build.yaml$|^airflow/api_fastapi/openapi/v1-generated.yaml$ + exclude: ^\.github/.*$|^.*/.*_vendor/|^chart/templates/.*|.*/reproducible_build.yaml$|^airflow/api_fastapi/openapi/v1-generated.yaml$|^.*/pnpm-lock.yaml$ types: [yaml] files: \.ya?ml$ args: diff --git a/.rat-excludes b/.rat-excludes index 7dde54f37c97c..6bf86c76ba59d 100644 --- a/.rat-excludes +++ b/.rat-excludes @@ -168,3 +168,4 @@ v1-generated.yaml # Front end generated files api-generated.ts openapi-gen +pnpm-lock.yaml diff --git a/airflow/ui/.prettierrc b/airflow/ui/.prettierrc deleted file mode 100644 index 39458246cff5f..0000000000000 --- a/airflow/ui/.prettierrc +++ /dev/null @@ -1,11 +0,0 @@ -{ - "overrides": [ - { - "files": "*.json", - "options": { - "tabWidth": 2 - } - } - ], - "trailingComma": "es5" -} diff --git a/airflow/ui/dev/index.html b/airflow/ui/dev/index.html index 9553eb7e416a8..d8a8b371f3fe4 100644 --- a/airflow/ui/dev/index.html +++ b/airflow/ui/dev/index.html @@ -11,6 +11,7 @@