@@ -16,6 +16,11 @@ import { readLoginSessionBloomFilter } from "~/services/session.server";
1616import type { BloomFilter } from "~/services/bloom-filter.server" ;
1717import { isBuilder , isCanvas } from "./router-utils" ;
1818import { parseBuilderUrl } from "@webstudio-is/http-client" ;
19+ import {
20+ ApiClient ,
21+ apiClientHeader ,
22+ apiClientVersionHeader ,
23+ } from "@webstudio-is/trpc-interface/api-compatibility" ;
1924
2025export const extractAuthFromRequest = async ( request : Request ) => {
2126 if ( isCanvas ( request ) ) {
@@ -180,6 +185,21 @@ const createTrpcCache = () => {
180185 } ;
181186} ;
182187
188+ const createApiClientContext = ( request : Request ) : AppContext [ "apiClient" ] => {
189+ const client = ApiClient . safeParse ( request . headers . get ( apiClientHeader ) ) ;
190+ if ( client . success === false ) {
191+ return {
192+ type : "unknown" ,
193+ version : undefined ,
194+ } ;
195+ }
196+
197+ return {
198+ type : client . data ,
199+ version : request . headers . get ( apiClientVersionHeader ) ?? undefined ,
200+ } ;
201+ } ;
202+
183203export const createPostgrestContext = ( ) => {
184204 return { client : createClient ( env . POSTGREST_URL , env . POSTGREST_API_KEY ) } ;
185205} ;
@@ -212,6 +232,7 @@ export const createContext = async (request: Request): Promise<AppContext> => {
212232 const entri = createEntriContext ( ) ;
213233 const { planFeatures, purchases } = await resolvePlanInfo ( authorization ) ;
214234 const trpcCache = createTrpcCache ( ) ;
235+ const apiClient = createApiClientContext ( request ) ;
215236
216237 const getOwnerPlanFeatures = async ( userId : string ) => {
217238 const results = await getPlanInfo ( [ userId ] , { postgrest } ) ;
@@ -233,6 +254,7 @@ export const createContext = async (request: Request): Promise<AppContext> => {
233254 entri,
234255 planFeatures,
235256 purchases,
257+ apiClient,
236258 trpcCache,
237259 postgrest,
238260 createTokenContext,
@@ -247,6 +269,7 @@ export const createContext = async (request: Request): Promise<AppContext> => {
247269 entri,
248270 planFeatures,
249271 purchases,
272+ apiClient,
250273 trpcCache,
251274 postgrest,
252275 createTokenContext,
0 commit comments