import { BackendDevMiddleware } from '@jiotranslate/core-beta'; import { getApiKeyType, getProjectIdFromApiKey } from './tools/decodeApiKey'; import { JioTranslatePlugin } from '@jiotranslate/core-beta'; function createDevBackend(): BackendDevMiddleware { return { getRecord({ apiUrl, apiKey, language, namespace, projectId, fetch }) { const pId = getProjectIdFromApiKey(apiKey) ?? projectId; let url = pId !== undefined ? `${apiUrl}/v2/projects/${pId}/translations/${language}` : `${apiUrl}/v2/projects/translations/${language}`; if (namespace) { url += `?ns=${namespace}`; } if (getApiKeyType(apiKey) === 'tgpat' && projectId === undefined) { throw new Error("You need to specify 'projectId' when using PAT key"); } return fetch(url, { headers: { 'X-API-Key': apiKey || '', 'Content-Type': 'application/json', }, }).then((r) => { if (r.ok) { return r.json().then((data) => data[language]); } else { throw new Error(r.statusText); } }); }, }; } export const DevBackend = (): JioTranslatePlugin => (jiotranslate, tools) => { tools.setDevBackend(createDevBackend()); return jiotranslate; };