Add server translation (#9847)

First proof of concept for server-side translation.

The goal was to translate one metadata item:

<img width="939" alt="Screenshot 2025-01-26 at 08 18 41"
src="https://github.com/user-attachments/assets/e42a3f7f-f5e3-4ee7-9be5-272a2adccb23"
/>
This commit is contained in:
Félix Malfait
2025-01-27 21:07:49 +01:00
committed by GitHub
parent 2a911b4305
commit 549c3faf71
35 changed files with 412 additions and 131 deletions

View File

@ -1,3 +1,4 @@
import { isDefined } from 'class-validator';
import { Plugin } from 'graphql-yoga';
export type CacheMetadataPluginConfig = {
@ -12,8 +13,12 @@ export function useCachedMetadata(config: CacheMetadataPluginConfig): Plugin {
const workspaceMetadataVersion =
serverContext.req.workspaceMetadataVersion ?? '0';
const operationName = getOperationName(serverContext);
const locale = serverContext.req.headers['x-locale'] ?? '';
const localeCacheKey = isDefined(serverContext.req.headers['x-locale'])
? `:${locale}`
: '';
return `graphql:operations:${operationName}:${workspaceId}:${workspaceMetadataVersion}`;
return `graphql:operations:${operationName}:${workspaceId}:${workspaceMetadataVersion}${localeCacheKey}`;
};
const getOperationName = (serverContext: any) =>