From d6fb515d61f806b5c7ebc068045f096e80d205b9 Mon Sep 17 00:00:00 2001 From: behnam Date: Fri, 15 Nov 2024 19:54:29 +0300 Subject: [PATCH] Fix domain issues --- package.json | 1 + .../dashboard/components/server/cards/cards-controller.ts | 2 ++ .../server/latest-invoices/latest-invoices-controller.ts | 2 ++ .../domain/usecase/fetch-customer-invoices-usecase.ts | 5 ++--- .../domain/usecase/fetch-customers-amount-usecase.ts | 1 + .../core/customer/domain/usecase/fetch-customers-usecase.ts | 5 +---- .../domain/usecase/fetch-all-invoices-amount-usecase.ts | 5 ++--- .../invoice/domain/usecase/fetch-invoices-status-summary.ts | 3 ++- .../core/revenue/domain/usecase/fetch-revenues-usecase.ts | 3 ++- .../domain/usecase/fetch-summary-info-usecase.ts | 4 +--- yarn.lock | 5 +++++ 11 files changed, 21 insertions(+), 15 deletions(-) diff --git a/package.json b/package.json index 3223cf1..ad7a6a0 100644 --- a/package.json +++ b/package.json @@ -30,6 +30,7 @@ "react-dom": "19.0.0-rc-69d4b800-20241021", "react-i18next": "^15.1.0", "reflect-metadata": "^0.2.2", + "server-only": "^0.0.1", "tailwind-merge": "^2.5.4", "tailwindcss-animate": "^1.0.7", "tsyringe": "^4.8.0", diff --git a/src/app/[lang]/dashboard/components/server/cards/cards-controller.ts b/src/app/[lang]/dashboard/components/server/cards/cards-controller.ts index 53c601a..9d38e29 100644 --- a/src/app/[lang]/dashboard/components/server/cards/cards-controller.ts +++ b/src/app/[lang]/dashboard/components/server/cards/cards-controller.ts @@ -1,5 +1,7 @@ import fetchSummaryInfoUsecase from "@/feature/core/summary-info/domain/usecase/fetch-summary-info-usecase"; +import { connection } from "next/server"; export default function cardsController() { + connection(); return fetchSummaryInfoUsecase(); } diff --git a/src/app/[lang]/dashboard/components/server/latest-invoices/latest-invoices-controller.ts b/src/app/[lang]/dashboard/components/server/latest-invoices/latest-invoices-controller.ts index 9f34a9a..2b7df56 100644 --- a/src/app/[lang]/dashboard/components/server/latest-invoices/latest-invoices-controller.ts +++ b/src/app/[lang]/dashboard/components/server/latest-invoices/latest-invoices-controller.ts @@ -1,5 +1,7 @@ import fetchCustomerInvoicesUsecase from "@/feature/core/customer-invoice/domain/usecase/fetch-customer-invoices-usecase"; +import { connection } from "next/server"; export default function latestInvoicesController() { + connection(); return fetchCustomerInvoicesUsecase(); } diff --git a/src/feature/core/customer-invoice/domain/usecase/fetch-customer-invoices-usecase.ts b/src/feature/core/customer-invoice/domain/usecase/fetch-customer-invoices-usecase.ts index a2bd48e..7109cef 100644 --- a/src/feature/core/customer-invoice/domain/usecase/fetch-customer-invoices-usecase.ts +++ b/src/feature/core/customer-invoice/domain/usecase/fetch-customer-invoices-usecase.ts @@ -1,3 +1,4 @@ +import "server-only"; import { ApiEither } from "@/feature/common/data/api-task"; import serverDi from "@/feature/common/server-di"; import CustomerInvoice from "@/feature/core/customer-invoice/domain/entity/customer-invoice"; @@ -5,12 +6,10 @@ import CustomerInvoiceRepo, { customerInvoiceRepoKey, } from "@/feature/core/customer-invoice/domain/i-repo/customer-invoice-repo"; import { customerInvoiceModuleKey } from "@/feature/core/customer-invoice/invoice-module-key"; -import { connection } from "next/server"; -export default async function fetchCustomerInvoicesUsecase(): Promise< +export default function fetchCustomerInvoicesUsecase(): Promise< ApiEither > { - connection(); const repo = serverDi(customerInvoiceModuleKey).resolve( customerInvoiceRepoKey, ); diff --git a/src/feature/core/customer/domain/usecase/fetch-customers-amount-usecase.ts b/src/feature/core/customer/domain/usecase/fetch-customers-amount-usecase.ts index 2f5f620..e184514 100644 --- a/src/feature/core/customer/domain/usecase/fetch-customers-amount-usecase.ts +++ b/src/feature/core/customer/domain/usecase/fetch-customers-amount-usecase.ts @@ -1,3 +1,4 @@ +import "server-only"; import serverDi from "@/feature/common/server-di"; import { customerKey } from "@/feature/core/customer/customer-key"; import CustomerRepo, { diff --git a/src/feature/core/customer/domain/usecase/fetch-customers-usecase.ts b/src/feature/core/customer/domain/usecase/fetch-customers-usecase.ts index 716b190..0418725 100644 --- a/src/feature/core/customer/domain/usecase/fetch-customers-usecase.ts +++ b/src/feature/core/customer/domain/usecase/fetch-customers-usecase.ts @@ -1,5 +1,4 @@ -"use server"; - +import "server-only"; import { ApiEither } from "@/feature/common/data/api-task"; import serverDi from "@/feature/common/server-di"; import { customerKey } from "@/feature/core/customer/customer-key"; @@ -7,12 +6,10 @@ import Customer from "@/feature/core/customer/domain/entity/customer"; import CustomerRepo, { customerRepoKey, } from "@/feature/core/customer/domain/i-repo/customer-repo"; -import { connection } from "next/server"; export default function fetchCustomersUsecase( query: string, ): Promise> { - connection(); const repo = serverDi(customerKey).resolve(customerRepoKey); return repo.fetchList(query)(); diff --git a/src/feature/core/invoice/domain/usecase/fetch-all-invoices-amount-usecase.ts b/src/feature/core/invoice/domain/usecase/fetch-all-invoices-amount-usecase.ts index 8b8d04a..77aa180 100644 --- a/src/feature/core/invoice/domain/usecase/fetch-all-invoices-amount-usecase.ts +++ b/src/feature/core/invoice/domain/usecase/fetch-all-invoices-amount-usecase.ts @@ -1,12 +1,11 @@ -"use server"; - +import "server-only"; import serverDi from "@/feature/common/server-di"; import InvoiceRepo, { invoiceRepoKey, } from "@/feature/core/invoice/domain/i-repo/invoice-repo"; import { invoiceModuleKey } from "@/feature/core/invoice/invoice-module-key"; -export default async function fetchAllInvoicesAmountUsecase(): Promise { +export default function fetchAllInvoicesAmountUsecase(): Promise { const repo = serverDi(invoiceModuleKey).resolve(invoiceRepoKey); return repo.fetchAllInvoicesAmount(); diff --git a/src/feature/core/invoice/domain/usecase/fetch-invoices-status-summary.ts b/src/feature/core/invoice/domain/usecase/fetch-invoices-status-summary.ts index 68c96ad..6ef1a31 100644 --- a/src/feature/core/invoice/domain/usecase/fetch-invoices-status-summary.ts +++ b/src/feature/core/invoice/domain/usecase/fetch-invoices-status-summary.ts @@ -1,3 +1,4 @@ +import "server-only"; import serverDi from "@/feature/common/server-di"; import InvoiceRepo, { invoiceRepoKey, @@ -5,7 +6,7 @@ import InvoiceRepo, { import InvoiceStatusSummary from "@/feature/core/invoice/domain/value-object/invoice-status"; import { invoiceModuleKey } from "@/feature/core/invoice/invoice-module-key"; -export default async function fetchInvoicesStatusSummary(): Promise { +export default function fetchInvoicesStatusSummary(): Promise { const repo = serverDi(invoiceModuleKey).resolve(invoiceRepoKey); return repo.fetchInvoicesStatusSummary(); } diff --git a/src/feature/core/revenue/domain/usecase/fetch-revenues-usecase.ts b/src/feature/core/revenue/domain/usecase/fetch-revenues-usecase.ts index 57b5a5d..ed1812c 100644 --- a/src/feature/core/revenue/domain/usecase/fetch-revenues-usecase.ts +++ b/src/feature/core/revenue/domain/usecase/fetch-revenues-usecase.ts @@ -1,3 +1,4 @@ +import "server-only"; import serverDi from "@/feature/common/server-di"; import Revenue from "@/feature/core/revenue/domain/entity/revenue"; import RevenueRepo, { @@ -5,7 +6,7 @@ import RevenueRepo, { } from "@/feature/core/revenue/domain/i-repo/revenue-repo"; import { revenueModuleKey } from "@/feature/core/revenue/domain/revenue-module-key"; -export default async function fetchRevenuesUsecase(): Promise { +export default function fetchRevenuesUsecase(): Promise { const repo = serverDi(revenueModuleKey).resolve(revenueRepoKey); return repo.fetchRevenues(); } diff --git a/src/feature/core/summary-info/domain/usecase/fetch-summary-info-usecase.ts b/src/feature/core/summary-info/domain/usecase/fetch-summary-info-usecase.ts index 33bbec4..84af863 100644 --- a/src/feature/core/summary-info/domain/usecase/fetch-summary-info-usecase.ts +++ b/src/feature/core/summary-info/domain/usecase/fetch-summary-info-usecase.ts @@ -1,14 +1,12 @@ +import "server-only"; import serverDi from "@/feature/common/server-di"; import fetchCustomersAmountUsecase from "@/feature/core/customer/domain/usecase/fetch-customers-amount-usecase"; import fetchAllInvoicesAmountUsecase from "@/feature/core/invoice/domain/usecase/fetch-all-invoices-amount-usecase"; import fetchInvoicesStatusSummary from "@/feature/core/invoice/domain/usecase/fetch-invoices-status-summary"; import { summaryInfoModuleKey } from "@/feature/core/summary-info/domain/summary-info-module-key"; import SummaryInfo from "@/feature/core/summary-info/domain/value-object/summary-info"; -import { connection } from "next/server"; export default async function fetchSummaryInfoUsecase(): Promise { - connection(); - try { const summaryInfoDi = serverDi(summaryInfoModuleKey); const invoicesAmountPromise = summaryInfoDi.resolve< diff --git a/yarn.lock b/yarn.lock index 32d67a6..827d025 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3663,6 +3663,11 @@ semver@^7.3.5, semver@^7.6.0, semver@^7.6.3: resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== +server-only@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/server-only/-/server-only-0.0.1.tgz#0f366bb6afb618c37c9255a314535dc412cd1c9e" + integrity sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA== + set-blocking@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"