{"version":3,"file":"tolgee-react-server.esm.mjs","sources":["../src/tagsTools.tsx","../src/TBase.tsx","../src/createServerInstance.tsx"],"sourcesContent":["import { TranslateParams } from '@tolgee/web';\nimport React from 'react';\n\nimport { ParamsTags } from './types';\n\nfunction unwrapSingleElementArray(value: any) {\n  if (Array.isArray(value) && value.length === 1) {\n    return value[0];\n  } else {\n    return value;\n  }\n}\n\nexport const wrapTagHandlers = (\n  params: TranslateParams<ParamsTags> | undefined\n) => {\n  if (!params) {\n    return undefined;\n  }\n\n  const result: any = {};\n\n  Object.entries(params || {}).forEach(([key, value]) => {\n    if (typeof value === 'function') {\n      result[key] = (chunk: any) => {\n        return value(addReactKeys(chunk));\n      };\n    } else if (React.isValidElement(value as any)) {\n      const el = value as React.ReactElement;\n      result[key] = (chunk: any) => {\n        return el.props.children === undefined && chunk?.length\n          ? React.cloneElement(el, {}, addReactKeys(chunk))\n          : React.cloneElement(el);\n      };\n    } else {\n      result[key] = value;\n    }\n  });\n\n  return result;\n};\n\nfunction unwrapFunctions(value: any): any {\n  if (typeof value === 'function') {\n    return value();\n  }\n  return value;\n}\n\nexport const addReactKeys = (\n  children: React.ReactNode | React.ReactNode[] | undefined\n) => {\n  const val = unwrapSingleElementArray(children);\n  if (Array.isArray(val)) {\n    return val.map((item, i) => (\n      <React.Fragment key={i}>{unwrapFunctions(item)}</React.Fragment>\n    ));\n  } else {\n    return unwrapFunctions(val);\n  }\n};\n","import React from 'react';\nimport { addReactKeys, wrapTagHandlers } from './tagsTools';\nimport type { PropsWithKeyName, TBaseInterface } from './types';\n\nexport const TBase: TBaseInterface = (props) => {\n  const key = (props as PropsWithKeyName).keyName || props.children;\n  if (key === undefined) {\n    // eslint-disable-next-line no-console\n    console.error('T component: keyName not defined');\n  }\n  const defaultValue =\n    props.defaultValue ||\n    ((props as PropsWithKeyName).keyName ? props.children : undefined);\n\n  const translation = addReactKeys(\n    props.t({\n      key: key!,\n      params: wrapTagHandlers(props.params),\n      defaultValue,\n      noWrap: props.noWrap,\n      ns: props.ns,\n      language: props.language,\n    })\n  );\n\n  return <>{translation}</>;\n};\n","// @ts-ignore\nimport { cache } from 'react';\nimport React from 'react';\nimport { TFnType } from '@tolgee/web';\nimport { TolgeeInstance } from '@tolgee/web';\n\nimport { TBase } from './TBase';\nimport { TProps, ParamsTags } from './types';\n\nexport type CreateServerInstanceOptions = {\n  createTolgee: (locale: string) => Promise<TolgeeInstance>;\n  getLocale: () => Promise<string>;\n};\n\nexport const createServerInstance = ({\n  createTolgee,\n  getLocale,\n}: CreateServerInstanceOptions) => {\n  const getTolgeeInstance: (locale: string) => Promise<TolgeeInstance> = cache(\n    async (locale: string) => {\n      const tolgee = await createTolgee(locale);\n      await tolgee.run();\n      return tolgee;\n    }\n  );\n\n  const getTolgee = async () => {\n    const locale = await getLocale();\n    const tolgee = await getTolgeeInstance(locale);\n    return tolgee;\n  };\n\n  const getTranslate = async () => {\n    const tolgee = await getTolgee();\n    return tolgee.t;\n  };\n\n  async function T(props: TProps) {\n    const t = await getTranslate();\n    return <TBase t={t as TFnType<ParamsTags>} {...props} />;\n  }\n\n  return {\n    getTolgee,\n    getTranslate,\n    T,\n  };\n};\n"],"names":[],"mappings":"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"}