UNPKG

@vyxos/astro-i18next

Version:

I18next integration for Astro with dynamic namespace loading.

1 lines 2.56 kB
{"version":3,"sources":["../src/router-integration.ts"],"names":[],"mappings":";;;AAKA,SAAS,SAAA,GAAqB;AAC5B,EAAA,OAAO,OAAO,UAAA,KAAe,WAAA,IAAe,QAAA,IAAY,UAAA;AAC1D;AAEA,SAAS,eAAA,GAAsC;AAC7C,EAAA,OAAO,SAAA,KAAc,MAAA,GAAS,MAAA;AAChC;AAUA,eAAsB,uBACpB,UAAA,EACe;AACf,EAAA,MAAM,MAAM,eAAA,EAAgB;AAC5B,EAAA,IAAI,KAAK,oBAAA,EAAsB;AAC7B,IAAA,IAAI;AACF,MAAA,MAAM,GAAA,CAAI,qBAAqB,UAAU,CAAA;AAAA,IAC3C,SAAS,KAAA,EAAgB;AACvB,MAAA,OAAA,CAAQ,IAAA,CAAK,sCAAA,EAAwC,UAAA,EAAY,KAAK,CAAA;AAAA,IACxE;AAAA,EACF;AACF;AAKA,eAAsB,kBAAkB,UAAA,EAAqC;AAC3E,EAAA,MAAM,MAAM,eAAA,EAAgB;AAC5B,EAAA,IAAI,KAAK,oBAAA,EAAsB;AAC7B,IAAA,OAAO,GAAA,CAAI,qBAAqB,UAAU,CAAA;AAAA,EAC5C;AACA,EAAA,OAAO,QAAQ,OAAA,EAAQ;AACzB;AAKO,SAAS,kBAAkB,UAAA,EAA4B;AAC5D,EAAA,MAAM,MAAM,eAAA,EAAgB;AAC5B,EAAA,IAAI,KAAK,oBAAA,EAAsB;AAC7B,IAAA,GAAA,CACG,oBAAA,CAAqB,UAAU,CAAA,CAC/B,KAAA;AAAA,MAAM,CAAC,KAAA,KACN,OAAA,CAAQ,IAAA,CAAK,2BAAA,EAA6B,YAAY,KAAK;AAAA,KAC7D;AAAA,EACJ;AACF","file":"client.cjs","sourcesContent":["/**\n * TanStack Router integration utilities for namespace loading\n */\n\n// Browser environment check\nfunction isBrowser(): boolean {\n return typeof globalThis !== \"undefined\" && \"window\" in globalThis;\n}\n\nfunction getGlobalWindow(): Window | undefined {\n return isBrowser() ? window : undefined;\n}\n\n/**\n * Helper function to load namespaces for a route in TanStack Router beforeLoad\n * Usage in your route config:\n *\n * beforeLoad: async () => {\n * await loadNamespacesForRoute(['common', 'auth', 'dashboard']);\n * }\n */\nexport async function loadNamespacesForRoute(\n namespaces: string[]\n): Promise<void> {\n const win = getGlobalWindow();\n if (win?.__i18nLoadNamespaces) {\n try {\n await win.__i18nLoadNamespaces(namespaces);\n } catch (error: unknown) {\n console.warn(\"[i18next] Failed to load namespaces:\", namespaces, error);\n }\n }\n}\n\n/**\n * React hook for loading namespaces in components (optional usage)\n */\nexport async function useLoadNamespaces(namespaces: string[]): Promise<void> {\n const win = getGlobalWindow();\n if (win?.__i18nLoadNamespaces) {\n return win.__i18nLoadNamespaces(namespaces);\n }\n return Promise.resolve();\n}\n\n/**\n * Preload namespaces without waiting (fire-and-forget)\n */\nexport function preloadNamespaces(namespaces: string[]): void {\n const win = getGlobalWindow();\n if (win?.__i18nLoadNamespaces) {\n win\n .__i18nLoadNamespaces(namespaces)\n .catch((error: unknown) =>\n console.warn(\"[i18next] Preload failed:\", namespaces, error)\n );\n }\n}\n"]}