diff --git a/.changeset/thick-chairs-learn.md b/.changeset/thick-chairs-learn.md new file mode 100644 index 0000000..07773be --- /dev/null +++ b/.changeset/thick-chairs-learn.md @@ -0,0 +1,10 @@ +--- +"saleor-app-emails-and-messages": patch +"saleor-app-products-feed": patch +"saleor-app-invoices": patch +"saleor-app-cms-v2": patch +"saleor-app-taxes": patch +"saleor-app-crm": patch +--- + +Added error logging for exceptions thrown at tRPC routes. diff --git a/apps/cms-v2/src/pages/api/trpc/[trpc].ts b/apps/cms-v2/src/pages/api/trpc/[trpc].ts index c1d733c..80bfedf 100644 --- a/apps/cms-v2/src/pages/api/trpc/[trpc].ts +++ b/apps/cms-v2/src/pages/api/trpc/[trpc].ts @@ -1,8 +1,18 @@ import * as trpcNext from "@trpc/server/adapters/next"; import { createTrpcContext } from "../../../modules/trpc/trpc-context"; import { appRouter } from "../../../modules/trpc/trpc-app-router"; +import { createLogger } from "@saleor/apps-shared"; + +const logger = createLogger({ name: "tRPC error" }); export default trpcNext.createNextApiHandler({ router: appRouter, createContext: createTrpcContext, + onError: ({ path, error }) => { + if (error.code === "INTERNAL_SERVER_ERROR") { + logger.error(error, `${path} returned error:`); + return; + } + logger.debug(error, `${path} returned error:`); + }, }); diff --git a/apps/crm/src/pages/api/trpc/[trpc].ts b/apps/crm/src/pages/api/trpc/[trpc].ts index c1d733c..80bfedf 100644 --- a/apps/crm/src/pages/api/trpc/[trpc].ts +++ b/apps/crm/src/pages/api/trpc/[trpc].ts @@ -1,8 +1,18 @@ import * as trpcNext from "@trpc/server/adapters/next"; import { createTrpcContext } from "../../../modules/trpc/trpc-context"; import { appRouter } from "../../../modules/trpc/trpc-app-router"; +import { createLogger } from "@saleor/apps-shared"; + +const logger = createLogger({ name: "tRPC error" }); export default trpcNext.createNextApiHandler({ router: appRouter, createContext: createTrpcContext, + onError: ({ path, error }) => { + if (error.code === "INTERNAL_SERVER_ERROR") { + logger.error(error, `${path} returned error:`); + return; + } + logger.debug(error, `${path} returned error:`); + }, }); diff --git a/apps/emails-and-messages/src/pages/api/trpc/[trpc].ts b/apps/emails-and-messages/src/pages/api/trpc/[trpc].ts index c1d733c..80bfedf 100644 --- a/apps/emails-and-messages/src/pages/api/trpc/[trpc].ts +++ b/apps/emails-and-messages/src/pages/api/trpc/[trpc].ts @@ -1,8 +1,18 @@ import * as trpcNext from "@trpc/server/adapters/next"; import { createTrpcContext } from "../../../modules/trpc/trpc-context"; import { appRouter } from "../../../modules/trpc/trpc-app-router"; +import { createLogger } from "@saleor/apps-shared"; + +const logger = createLogger({ name: "tRPC error" }); export default trpcNext.createNextApiHandler({ router: appRouter, createContext: createTrpcContext, + onError: ({ path, error }) => { + if (error.code === "INTERNAL_SERVER_ERROR") { + logger.error(error, `${path} returned error:`); + return; + } + logger.debug(error, `${path} returned error:`); + }, }); diff --git a/apps/invoices/src/pages/api/trpc/[trpc].ts b/apps/invoices/src/pages/api/trpc/[trpc].ts index c1d733c..80bfedf 100644 --- a/apps/invoices/src/pages/api/trpc/[trpc].ts +++ b/apps/invoices/src/pages/api/trpc/[trpc].ts @@ -1,8 +1,18 @@ import * as trpcNext from "@trpc/server/adapters/next"; import { createTrpcContext } from "../../../modules/trpc/trpc-context"; import { appRouter } from "../../../modules/trpc/trpc-app-router"; +import { createLogger } from "@saleor/apps-shared"; + +const logger = createLogger({ name: "tRPC error" }); export default trpcNext.createNextApiHandler({ router: appRouter, createContext: createTrpcContext, + onError: ({ path, error }) => { + if (error.code === "INTERNAL_SERVER_ERROR") { + logger.error(error, `${path} returned error:`); + return; + } + logger.debug(error, `${path} returned error:`); + }, }); diff --git a/apps/products-feed/src/pages/api/trpc/[trpc].ts b/apps/products-feed/src/pages/api/trpc/[trpc].ts index c1d733c..80bfedf 100644 --- a/apps/products-feed/src/pages/api/trpc/[trpc].ts +++ b/apps/products-feed/src/pages/api/trpc/[trpc].ts @@ -1,8 +1,18 @@ import * as trpcNext from "@trpc/server/adapters/next"; import { createTrpcContext } from "../../../modules/trpc/trpc-context"; import { appRouter } from "../../../modules/trpc/trpc-app-router"; +import { createLogger } from "@saleor/apps-shared"; + +const logger = createLogger({ name: "tRPC error" }); export default trpcNext.createNextApiHandler({ router: appRouter, createContext: createTrpcContext, + onError: ({ path, error }) => { + if (error.code === "INTERNAL_SERVER_ERROR") { + logger.error(error, `${path} returned error:`); + return; + } + logger.debug(error, `${path} returned error:`); + }, }); diff --git a/apps/taxes/src/pages/api/trpc/[trpc].ts b/apps/taxes/src/pages/api/trpc/[trpc].ts index 67aabaa..a0db5dd 100644 --- a/apps/taxes/src/pages/api/trpc/[trpc].ts +++ b/apps/taxes/src/pages/api/trpc/[trpc].ts @@ -1,8 +1,18 @@ import * as trpcNext from "@trpc/server/adapters/next"; import { appRouter } from "../../../modules/trpc/trpc-app-router"; import { createTrpcContext } from "../../../modules/trpc/trpc-context"; +import { createLogger } from "@saleor/apps-shared"; + +const logger = createLogger({ name: "tRPC error" }); export default trpcNext.createNextApiHandler({ router: appRouter, createContext: createTrpcContext, + onError: ({ path, error }) => { + if (error.code === "INTERNAL_SERVER_ERROR") { + logger.error(error, `${path} returned error:`); + return; + } + logger.debug(error, `${path} returned error:`); + }, });