Merged in feat/sw-2859-set-up-shared-trpc-package (pull request #2319)
feat(SW-2859): Create trpc package * Add isEdge, safeTry and dataCache to new common package * Add eslint and move prettier config * Clean up tests * Create trpc package and move initialization * Move errors and a few procedures * Move telemetry to common package * Move tokenManager to common package * Add Sentry to procedures * Clean up procedures * Fix self-referencing imports * Add exports to packages and lint rule to prevent relative imports * Add env to trpc package * Add eslint to trpc package * Apply lint rules * Use direct imports from trpc package * Add lint-staged config to trpc * Move lang enum to common * Restructure trpc package folder structure * Fix lang imports Approved-by: Linus Flood
This commit is contained in:
@@ -1,7 +1,8 @@
|
||||
import { type NextRequest, NextResponse } from "next/server"
|
||||
import { AuthError } from "next-auth"
|
||||
|
||||
import { Lang } from "@/constants/languages"
|
||||
import { Lang } from "@scandic-hotels/common/constants/language"
|
||||
|
||||
import { env } from "@/env/server"
|
||||
import { internalServerError } from "@/server/errors/next"
|
||||
import { getPublicURL } from "@/server/utils"
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
import { notFound } from "next/navigation"
|
||||
|
||||
import { getServiceToken } from "@scandic-hotels/common/tokenManager"
|
||||
|
||||
import {
|
||||
BookingErrorCodeEnum,
|
||||
PaymentCallbackStatusEnum,
|
||||
@@ -10,7 +12,6 @@ import {
|
||||
} from "@/constants/routes/hotelReservation"
|
||||
import { serverClient } from "@/lib/trpc/server"
|
||||
import { getBooking } from "@/server/routers/booking/utils"
|
||||
import { getServiceToken } from "@/server/tokenManager"
|
||||
|
||||
import { auth } from "@/auth"
|
||||
import HandleErrorCallback from "@/components/HotelReservation/EnterDetails/Payment/PaymentCallback/HandleErrorCallback"
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
import { type NextRequest, NextResponse } from "next/server"
|
||||
import { AuthError } from "next-auth"
|
||||
|
||||
import { Lang } from "@/constants/languages"
|
||||
import { Lang } from "@scandic-hotels/common/constants/language"
|
||||
|
||||
import { env } from "@/env/server"
|
||||
import { internalServerError } from "@/server/errors/next"
|
||||
import { getPublicURL } from "@/server/utils"
|
||||
|
||||
@@ -6,7 +6,7 @@ import { getPublicURL } from "@/server/utils"
|
||||
|
||||
import { signIn } from "@/auth"
|
||||
|
||||
import type { Lang } from "@/constants/languages"
|
||||
import type { Lang } from "@scandic-hotels/common/constants/language"
|
||||
|
||||
export async function GET(
|
||||
request: NextRequest,
|
||||
|
||||
@@ -5,9 +5,10 @@ import { useParams, useRouter, useSearchParams } from "next/navigation"
|
||||
import { startTransition, useEffect, useRef } from "react"
|
||||
import { useIntl } from "react-intl"
|
||||
|
||||
import { SESSION_EXPIRED } from "@scandic-hotels/trpc/errors"
|
||||
|
||||
import { login } from "@/constants/routes/handleAuth"
|
||||
import { env } from "@/env/client"
|
||||
import { SESSION_EXPIRED } from "@/server/errors/trpc"
|
||||
|
||||
import styles from "./error.module.css"
|
||||
|
||||
|
||||
@@ -7,7 +7,8 @@ import { ReactQueryDevtools } from "@tanstack/react-query-devtools"
|
||||
import Script from "next/script"
|
||||
import { SessionProvider } from "next-auth/react"
|
||||
|
||||
import { Lang } from "@/constants/languages"
|
||||
import { Lang } from "@scandic-hotels/common/constants/language"
|
||||
|
||||
import TrpcProvider from "@/lib/trpc/Provider"
|
||||
|
||||
import { SessionRefresher } from "@/components/Auth/TokenRefresher"
|
||||
|
||||
@@ -7,7 +7,7 @@ import "@scandic-hotels/design-system/style.css"
|
||||
|
||||
import Script from "next/script"
|
||||
|
||||
import { Lang } from "@/constants/languages"
|
||||
import { Lang } from "@scandic-hotels/common/constants/language"
|
||||
|
||||
import TokenRefresher from "@/components/Auth/TokenRefresher"
|
||||
import CookieBotConsent from "@/components/CookieBot"
|
||||
@@ -35,12 +35,9 @@ export default async function RootLayout(
|
||||
LayoutArgs<LangParams> & { header: React.ReactNode }
|
||||
>
|
||||
) {
|
||||
const params = await props.params;
|
||||
const params = await props.params
|
||||
|
||||
const {
|
||||
children,
|
||||
header
|
||||
} = props;
|
||||
const { children, header } = props
|
||||
|
||||
setLang(params.lang)
|
||||
const messages = await getMessages(params.lang)
|
||||
|
||||
@@ -7,7 +7,8 @@ import { ReactQueryDevtools } from "@tanstack/react-query-devtools"
|
||||
import Script from "next/script"
|
||||
import { SessionProvider } from "next-auth/react"
|
||||
|
||||
import { Lang } from "@/constants/languages"
|
||||
import { Lang } from "@scandic-hotels/common/constants/language"
|
||||
|
||||
import TrpcProvider from "@/lib/trpc/Provider"
|
||||
|
||||
import { SessionRefresher } from "@/components/Auth/TokenRefresher"
|
||||
@@ -23,12 +24,12 @@ import { setLang } from "@/i18n/serverContext"
|
||||
|
||||
import type { LangParams, LayoutArgs } from "@/types/params"
|
||||
|
||||
export default async function RootLayout(props: React.PropsWithChildren<LayoutArgs<LangParams>>) {
|
||||
const params = await props.params;
|
||||
export default async function RootLayout(
|
||||
props: React.PropsWithChildren<LayoutArgs<LangParams>>
|
||||
) {
|
||||
const params = await props.params
|
||||
|
||||
const {
|
||||
children
|
||||
} = props;
|
||||
const { children } = props
|
||||
|
||||
setLang(params.lang)
|
||||
const messages = await getMessages(params.lang)
|
||||
|
||||
@@ -14,8 +14,9 @@ import { getIntl } from "@/i18n"
|
||||
|
||||
import { SASModal } from "../components/SASModal"
|
||||
|
||||
import type { Lang } from "@scandic-hotels/common/constants/language"
|
||||
|
||||
import type { LangParams, PageArgs, SearchParams } from "@/types/params"
|
||||
import type { Lang } from "@/constants/languages"
|
||||
import type { State } from "../sasUtils"
|
||||
|
||||
const searchParamsSchema = z.object({
|
||||
@@ -24,9 +25,11 @@ const searchParamsSchema = z.object({
|
||||
|
||||
type Intent = z.infer<typeof searchParamsSchema>["intent"]
|
||||
|
||||
export default async function SASxScandicLoginPage(props: PageArgs<LangParams> & SearchParams) {
|
||||
const params = await props.params;
|
||||
const searchParams = await props.searchParams;
|
||||
export default async function SASxScandicLoginPage(
|
||||
props: PageArgs<LangParams> & SearchParams
|
||||
) {
|
||||
const params = await props.params
|
||||
const searchParams = await props.searchParams
|
||||
const result = searchParamsSchema.safeParse(searchParams)
|
||||
if (!result.success) {
|
||||
// TOOD where to redirect?
|
||||
|
||||
@@ -14,10 +14,10 @@ import OneTimePasswordForm, {
|
||||
type OnSubmitHandler,
|
||||
} from "./OneTimePasswordForm"
|
||||
|
||||
import type { Lang } from "@scandic-hotels/common/constants/language"
|
||||
import type { ReactNode } from "react"
|
||||
|
||||
import type { LangParams, PageArgs, SearchParams } from "@/types/params"
|
||||
import type { Lang } from "@/constants/languages"
|
||||
|
||||
const otpError = z.enum(["invalidCode", "expiredCode"])
|
||||
const intent = z.enum(["link", "unlink", "transfer"])
|
||||
|
||||
@@ -17,8 +17,9 @@ import { SASModal } from "../../components/SASModal"
|
||||
|
||||
import styles from "./transferSuccess.module.css"
|
||||
|
||||
import type { Lang } from "@scandic-hotels/common/constants/language"
|
||||
|
||||
import type { LangParams, PageArgs, SearchParams } from "@/types/params"
|
||||
import type { Lang } from "@/constants/languages"
|
||||
|
||||
export default async function SASxScandicTransferSuccessPage(
|
||||
props: PageArgs<LangParams> & SearchParams<{ p?: string }>
|
||||
|
||||
@@ -6,7 +6,8 @@ import "@scandic-hotels/design-system/style.css"
|
||||
import { ReactQueryDevtools } from "@tanstack/react-query-devtools"
|
||||
import Script from "next/script"
|
||||
|
||||
import { Lang } from "@/constants/languages"
|
||||
import { Lang } from "@scandic-hotels/common/constants/language"
|
||||
|
||||
import { env } from "@/env/server"
|
||||
import TrpcProvider from "@/lib/trpc/Provider"
|
||||
|
||||
|
||||
@@ -5,7 +5,8 @@ import "@scandic-hotels/design-system/style.css"
|
||||
|
||||
import Script from "next/script"
|
||||
|
||||
import { Lang } from "@/constants/languages"
|
||||
import { Lang } from "@scandic-hotels/common/constants/language"
|
||||
|
||||
import TrpcProvider from "@/lib/trpc/Provider"
|
||||
|
||||
import { ToastHandler } from "@/components/TempDesignSystem/Toasts"
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { Lang } from "@/constants/languages"
|
||||
import { Lang } from "@scandic-hotels/common/constants/language"
|
||||
|
||||
import { profile } from "@/constants/routes/myPages"
|
||||
import { serverClient } from "@/lib/trpc/server"
|
||||
import { getPublicURL } from "@/server/utils"
|
||||
|
||||
@@ -2,9 +2,9 @@ import { revalidateTag } from "next/cache"
|
||||
import { headers } from "next/headers"
|
||||
import { z } from "zod"
|
||||
|
||||
import { Lang } from "@scandic-hotels/common/constants/language"
|
||||
import { getCacheClient } from "@scandic-hotels/common/dataCache"
|
||||
|
||||
import { Lang } from "@/constants/languages"
|
||||
import { env } from "@/env/server"
|
||||
import { badRequest, internalServerError, notFound } from "@/server/errors/next"
|
||||
|
||||
|
||||
@@ -2,9 +2,9 @@ import { revalidateTag } from "next/cache"
|
||||
import { headers } from "next/headers"
|
||||
import { z } from "zod"
|
||||
|
||||
import { Lang } from "@scandic-hotels/common/constants/language"
|
||||
import { getCacheClient } from "@scandic-hotels/common/dataCache"
|
||||
|
||||
import { Lang } from "@/constants/languages"
|
||||
import { env } from "@/env/server"
|
||||
import { badRequest, internalServerError, notFound } from "@/server/errors/next"
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ import { badRequest, internalServerError } from "@/server/errors/next"
|
||||
|
||||
import { generateTag } from "@/utils/generateTag"
|
||||
|
||||
import type { Lang } from "@/constants/languages"
|
||||
import type { Lang } from "@scandic-hotels/common/constants/language"
|
||||
|
||||
// This file is primarily to be used locally to test
|
||||
// purging your cache for new (and old) requests
|
||||
|
||||
@@ -2,9 +2,9 @@ import { revalidateTag } from "next/cache"
|
||||
import { headers } from "next/headers"
|
||||
import { z } from "zod"
|
||||
|
||||
import { Lang } from "@scandic-hotels/common/constants/language"
|
||||
import { getCacheClient } from "@scandic-hotels/common/dataCache"
|
||||
|
||||
import { Lang } from "@/constants/languages"
|
||||
import { env } from "@/env/server"
|
||||
import { badRequest, internalServerError } from "@/server/errors/next"
|
||||
import { affix as breadcrumbsAffix } from "@/server/routers/contentstack/breadcrumbs/utils"
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
import { type NextRequest, NextResponse } from "next/server"
|
||||
|
||||
import { createCounter } from "@scandic-hotels/common/telemetry"
|
||||
|
||||
import { env } from "@/env/server"
|
||||
import { dt } from "@/lib/dt"
|
||||
import { createCounter } from "@/server/telemetry"
|
||||
|
||||
import {
|
||||
getEntries,
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
import { Region, Stack } from "contentstack"
|
||||
|
||||
import { createCounter } from "@scandic-hotels/common/telemetry"
|
||||
|
||||
import { env } from "@/env/server"
|
||||
import { createCounter } from "@/server/telemetry"
|
||||
|
||||
import type { SyncResponse } from "@/types/sitemap"
|
||||
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
import { createCounter } from "@scandic-hotels/common/telemetry"
|
||||
|
||||
import { env } from "@/env/server"
|
||||
import { createCounter } from "@/server/telemetry"
|
||||
|
||||
import { removeTrailingSlash } from "@/utils/url"
|
||||
|
||||
import type { Lang } from "@scandic-hotels/common/constants/language"
|
||||
|
||||
import type { SyncItem } from "@/types/sitemap"
|
||||
import type { Lang } from "@/constants/languages"
|
||||
|
||||
export function mergeEntries(
|
||||
currentEntries: SyncItem[],
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import { fetchRequestHandler } from "@trpc/server/adapters/fetch"
|
||||
|
||||
import { createAppContext } from "@/lib/trpc/server"
|
||||
import { appRouter } from "@/server"
|
||||
import { createContext } from "@/server/context"
|
||||
|
||||
async function handler(req: Request) {
|
||||
return fetchRequestHandler({
|
||||
createContext,
|
||||
createContext: createAppContext,
|
||||
endpoint: "/api/web/trpc",
|
||||
req,
|
||||
router: appRouter,
|
||||
|
||||
Reference in New Issue
Block a user