From 55c82982370af8f3a1ea44738ec1fca930d50785 Mon Sep 17 00:00:00 2001 From: behnam Date: Fri, 15 Nov 2024 19:44:26 +0300 Subject: [PATCH] Fix linting issues --- .eslintrc.json | 84 ++++++++- package.json | 8 +- .../create-random-invoice.tsx | 18 +- .../client/nav-links/nav-link-controller.ts | 29 --- .../client/nav-links/nav-link-vm.ts | 28 +++ .../components/client/nav-links/nav-links.tsx | 15 +- .../components/server/card/card-controller.ts | 28 +-- .../dashboard/components/server/card/card.tsx | 12 +- .../server/cards/cards-controller.ts | 4 +- .../components/server/cards/cards.tsx | 18 +- .../latest-invoices-controller.ts | 6 +- .../latest-invoices/latest-invoices.tsx | 90 ++++----- .../revenue-chart/revenue-chart-controller.ts | 6 +- .../server/revenue-chart/revenue-chart.tsx | 13 +- .../dashboard/components/server/sidenav.tsx | 10 +- .../components/server/skeletons/skeletons.tsx | 47 ++--- src/app/[lang]/dashboard/layout.tsx | 12 +- src/app/[lang]/dashboard/loading.tsx | 2 +- .../dashboard/module/dashboard-app-module.ts | 19 +- src/app/[lang]/dashboard/page.tsx | 22 ++- .../vm/create-random-invoice-button-vm.ts | 69 +++---- src/app/[lang]/layout.tsx | 16 +- src/app/[lang]/page.tsx | 10 +- src/app/components/button/button-vm.ts | 12 +- src/app/components/button/button.tsx | 43 +++-- src/app/components/icons/document.tsx | 25 ++- src/app/components/icons/home.tsx | 25 ++- src/app/components/icons/user.tsx | 26 ++- src/app/layout.tsx | 3 +- src/bootstrap/boundaries/db/db.ts | 13 +- .../boundaries/db/placeholder-data.js | 172 +++++++++--------- src/bootstrap/boundaries/db/seed.js | 21 ++- src/bootstrap/di/di-context.tsx | 22 +-- src/bootstrap/di/init-di.ts | 4 +- src/bootstrap/helpers/global-helpers.ts | 3 +- .../helpers/hooks/use-server-action.ts | 8 +- src/bootstrap/helpers/hooks/use-throttle.ts | 28 +-- src/bootstrap/helpers/lib/ui-utils.ts | 6 +- src/bootstrap/helpers/type-helper.ts | 2 +- src/bootstrap/helpers/view/base-view.tsx | 17 +- src/bootstrap/helpers/vm/base-vm.ts | 6 +- src/bootstrap/i18n/dictionaries/en.ts | 24 +-- src/bootstrap/i18n/dictionaries/lang-key.ts | 22 +-- src/bootstrap/i18n/dictionaries/ru.ts | 24 +-- src/bootstrap/i18n/i18n-provider.tsx | 19 +- src/bootstrap/i18n/i18n.ts | 71 +++++--- src/bootstrap/i18n/settings.ts | 16 +- src/feature/common/data/api-task.ts | 7 +- src/feature/common/failures/base-failure.ts | 4 +- .../common/failures/dev/arguments-failure.ts | 4 +- .../common/failures/dev/base-dev-failure.ts | 4 +- .../common/failures/dev/dependency-failure.ts | 4 +- src/feature/common/failures/params-failure.ts | 2 +- src/feature/common/feature-helpers.ts | 9 +- src/feature/common/server-di.ts | 30 +-- .../data/module/customer-invoice-di.ts | 8 +- .../data/repo/customer-invoice-db-repo.ts | 59 +++--- .../domain/entity/customer-invoice.ts | 42 +++-- .../domain/i-repo/customer-invoice-repo.ts | 8 +- .../fetch-customer-invoices-usecase.ts | 18 +- .../customer-invoice/invoice-module-key.ts | 2 +- src/feature/core/customer/customer-key.ts | 2 +- .../core/customer/data/module/customer-di.ts | 8 +- .../customer/data/repo/customer-db-repo.ts | 104 ++++++----- .../core/customer/domain/entity/customer.ts | 56 +++--- .../customer/domain/i-repo/customer-repo.ts | 10 +- .../usecase/fetch-customers-amount-usecase.ts | 10 +- .../domain/usecase/fetch-customers-usecase.ts | 19 +- .../core/invoice/data/module/invoice-di.ts | 8 +- .../core/invoice/data/repo/invoice-db-repo.ts | 85 ++++----- .../invoice/domain/i-repo/invoice-repo.ts | 14 +- .../invoice/domain/param/invoice-param.ts | 10 +- .../domain/usecase/create-invoice-usecase.ts | 40 ++-- .../fetch-all-invoices-amount-usecase.ts | 13 +- .../usecase/fetch-invoices-status-summary.ts | 10 +- .../domain/value-object/invoice-status.ts | 18 +- .../core/invoice/invoice-module-key.ts | 2 +- .../core/revenue/data/module/revenue-di.ts | 14 +- .../core/revenue/data/repo/revenue-db-repo.ts | 48 +++-- .../core/revenue/domain/entity/revenue.ts | 20 +- .../revenue/domain/i-repo/revenue-repo.ts | 4 +- .../core/revenue/domain/revenue-module-key.ts | 2 +- .../domain/usecase/fetch-revenues-usecase.ts | 10 +- .../data/module/summary-info-di.ts | 32 ++-- .../domain/summary-info-module-key.ts | 2 +- .../usecase/fetch-summary-info-usecase.ts | 49 ++--- .../domain/value-object/summary-info.ts | 28 +-- src/middleware.ts | 47 ++--- .../customer/customer-fake-factory.ts | 33 ++-- src/test/common/mock/mock-di.ts | 10 +- src/test/setup.ts | 2 +- .../usecase/fetch-customers-usecase.test.ts | 55 +++--- yarn.lock | 82 ++++++++- 93 files changed, 1268 insertions(+), 958 deletions(-) delete mode 100644 src/app/[lang]/dashboard/components/client/nav-links/nav-link-controller.ts create mode 100644 src/app/[lang]/dashboard/components/client/nav-links/nav-link-vm.ts diff --git a/.eslintrc.json b/.eslintrc.json index 60d067f..6307415 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -9,5 +9,87 @@ } } ], - "extends": ["next/core-web-vitals", "next/typescript"] + "plugins": [ + "prettier" + ], + "settings": { + "react": { + "version": "detect" + }, + "import/resolver": { + "alias": { + "map": [ + [ + "~", + "./src" + ] + ], + "extensions": [ + ".js", + ".ts", + ".tsx", + ".d.ts", + ".test.ts", + ".json" + ] + } + } + }, + "rules": { + "no-use-before-define": "off", + "class-methods-use-this": "off", + "import/prefer-default-export": "off", + "import/no-cycle": "off", + "no-promise-executor-return": "off", + "@typescript-eslint/no-shadow": "off", + "react/require-default-props": "off", + "no-shadow": "off", + "prettier/prettier": [ + "warn", + { + "printWidth": 80, + "tabWidth": 2, + "endOfLine":"auto", + "useTabs": false, + "semi": true, + "singleQuote": false, + "quoteProps": "as-needed", + "jsxSingleQuote": false, + "trailingComma": "all", + "bracketSpacing": true, + "arrowParens": "always" + } + ], + "import/extensions": [ + "error", + "ignorePackages", + { + "js": "never", + "jsx": "never", + "ts": "never", + "tsx": "never" + } + ], + "react/jsx-filename-extension": [ + 1, + { + "extensions": [ + ".ts", + ".tsx" + ] + } + ], + "import/no-extraneous-dependencies": [ + "error", + { + "devDependencies": true + } + ] + }, + "extends": [ + "airbnb", + "next/core-web-vitals", + "next/typescript", + "prettier" + ] } diff --git a/package.json b/package.json index 818e3a6..3223cf1 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "dev": "next dev --turbopack", "build": "next build", "start": "next start --port 4000", - "lint": "next lint", + "lint": "next lint --fix", "test": "vitest", "seed": "node -r dotenv/config ./src/bootstrap/boundaries/db/seed.js" }, @@ -46,10 +46,16 @@ "bcrypt": "^5.1.1", "dotenv": "^16.4.5", "eslint": "^8", + "eslint-config-airbnb": "^19.0.4", "eslint-config-next": "15.0.1", + "eslint-config-prettier": "^9.1.0", + "eslint-import-resolver-alias": "^1.1.2", + "eslint-import-resolver-typescript": "^3.6.3", + "eslint-plugin-prettier": "^5.2.1", "jsdom": "^25.0.1", "moq.ts": "^10.0.8", "postcss": "^8", + "prettier": "^3.3.3", "tailwindcss": "^3.4.1", "typescript": "^5", "vitest": "^2.1.4" diff --git a/src/app/[lang]/dashboard/components/client/create-random-invoice/create-random-invoice.tsx b/src/app/[lang]/dashboard/components/client/create-random-invoice/create-random-invoice.tsx index f3f95a4..68742c2 100644 --- a/src/app/[lang]/dashboard/components/client/create-random-invoice/create-random-invoice.tsx +++ b/src/app/[lang]/dashboard/components/client/create-random-invoice/create-random-invoice.tsx @@ -1,13 +1,13 @@ -"use client" +"use client"; -import Button from "@/app/components/button/button" -import CreateRandomInvoiceButtonVM from "@/app/[lang]/dashboard/vm/create-random-invoice-button-vm" -import { useDI } from "@/bootstrap/di/di-context" -import { useRef } from "react" +import Button from "@/app/components/button/button"; +import CreateRandomInvoiceButtonVM from "@/app/[lang]/dashboard/vm/create-random-invoice-button-vm"; +import { useDI } from "@/bootstrap/di/di-context"; +import { useRef } from "react"; export default function CreateRandomInvoiceContainer() { - const di = useDI() - const vm = useRef(di.resolve(CreateRandomInvoiceButtonVM)) + const di = useDI(); + const vm = useRef(di.resolve(CreateRandomInvoiceButtonVM)); - return