mirror of
https://github.com/webstudio-is/webstudio.git
synced 2026-11-12 15:53:34 +09:00
See https://github.com/webstudio-is/webstudio-builder/pull/1565 We don't use it anymore and it's conflicts with vanilla-extract integration in remix.
38 lines
1.0 KiB
TypeScript
38 lines
1.0 KiB
TypeScript
import type { AppContext } from "@webstudio-is/trpc-interface/index.server";
|
|
import { authenticator } from "~/services/auth.server";
|
|
import { trpcClient } from "~/services/trpc.server";
|
|
|
|
const createAuthorizationContext = async (
|
|
request: Request,
|
|
buildEnv: AppContext["authorization"]["buildEnv"]
|
|
): Promise<AppContext["authorization"]> => {
|
|
const url = new URL(request.url);
|
|
|
|
const authToken = url.searchParams.get("authToken") ?? url.hostname;
|
|
|
|
const user = await authenticator.isAuthenticated(request);
|
|
|
|
const context: AppContext["authorization"] = {
|
|
userId: user?.id,
|
|
authToken,
|
|
buildEnv,
|
|
authorizeTrpc: trpcClient.authorize,
|
|
};
|
|
|
|
return context;
|
|
};
|
|
|
|
/**
|
|
* argument buildEnv==="prod" only if we are loading project with production build
|
|
*/
|
|
export const createContext = async (
|
|
request: Request,
|
|
buildEnv: AppContext["authorization"]["buildEnv"] = "dev"
|
|
): Promise<AppContext> => {
|
|
const authorization = await createAuthorizationContext(request, buildEnv);
|
|
|
|
return {
|
|
authorization,
|
|
};
|
|
};
|