{"version":3,"file":"node.cjs","names":["i18n"],"sources":["../../../src/pagesRouter/createClient/node.ts"],"sourcesContent":["import i18n, { Module } from 'i18next'\nimport resourcesToBackend from 'i18next-resources-to-backend'\nimport fs from 'fs'\n\nimport {\n  InternalConfig,\n  CreateClientReturn,\n  InitPromise,\n  I18n,\n} from '../types'\n\nfunction createFSBackend(config: InternalConfig) {\n  return resourcesToBackend((lng: string, ns: string) => {\n    const backend = config.backend as Record<string, any> | undefined\n    let filePath: string\n    if (typeof backend?.loadPath === 'function') {\n      filePath = backend.loadPath(lng, ns)\n    } else if (typeof backend?.loadPath === 'string') {\n      filePath = backend.loadPath\n        .replace('{{lng}}', lng)\n        .replace('{{ns}}', ns)\n    } else {\n      filePath = `./public/locales/${lng}/${ns}.json`\n    }\n    const content = fs.readFileSync(filePath, 'utf-8')\n    return JSON.parse(content)\n  })\n}\n\nlet globalInstance: I18n\n\nexport default (config: InternalConfig): CreateClientReturn => {\n  if (config.ns === undefined) config.ns = []\n  let instance: I18n\n  if (!globalInstance) {\n    globalInstance = i18n.createInstance(config) as I18n\n    instance = globalInstance\n  } else {\n    instance = globalInstance.cloneInstance({\n      ...config,\n\n      // @ts-ignore\n      initAsync: false,\n\n      // @ts-ignore\n      initImmediate: false, // i18next < 24\n    }) as I18n\n  }\n  let initPromise: InitPromise\n\n  if (!instance.isInitialized) {\n    const plugins = config?.use?.filter(Boolean) ?? []\n    const hasCustomBackend = plugins.some(\n      (b: Module) => b.type === 'backend'\n    )\n    if (!hasCustomBackend) {\n      instance.use(createFSBackend(config))\n    }\n\n    plugins.forEach((x: Module) => instance.use(x))\n    if (typeof config.onPreInitI18next === 'function') {\n      config.onPreInitI18next(instance)\n    }\n    initPromise = instance.init(config)\n  } else {\n    initPromise = Promise.resolve(i18n.t)\n  }\n\n  return { i18n: instance, initPromise }\n}\n"],"mappings":";;;;;;;;AAWA,SAAS,gBAAgB,QAAwB;AAC/C,SAAA,GAAA,6BAAA,UAA2B,KAAa,OAAe;EACrD,MAAM,UAAU,OAAO;EACvB,IAAI;AACJ,MAAI,OAAO,SAAS,aAAa,WAC/B,YAAW,QAAQ,SAAS,KAAK,GAAG;WAC3B,OAAO,SAAS,aAAa,SACtC,YAAW,QAAQ,SAChB,QAAQ,WAAW,IAAI,CACvB,QAAQ,UAAU,GAAG;MAExB,YAAW,oBAAoB,IAAI,GAAG,GAAG;EAE3C,MAAM,UAAU,GAAA,QAAG,aAAa,UAAU,QAAQ;AAClD,SAAO,KAAK,MAAM,QAAQ;GAC1B;;AAGJ,IAAI;AAEJ,IAAA,gBAAgB,WAA+C;AAC7D,KAAI,OAAO,OAAO,KAAA,EAAW,QAAO,KAAK,EAAE;CAC3C,IAAI;AACJ,KAAI,CAAC,gBAAgB;AACnB,mBAAiBA,QAAAA,QAAK,eAAe,OAAO;AAC5C,aAAW;OAEX,YAAW,eAAe,cAAc;EACtC,GAAG;EAGH,WAAW;EAGX,eAAe;EAChB,CAAC;CAEJ,IAAI;AAEJ,KAAI,CAAC,SAAS,eAAe;EAC3B,MAAM,UAAU,QAAQ,KAAK,OAAO,QAAQ,IAAI,EAAE;AAIlD,MAAI,CAHqB,QAAQ,MAC9B,MAAc,EAAE,SAAS,UAC3B,CAEC,UAAS,IAAI,gBAAgB,OAAO,CAAC;AAGvC,UAAQ,SAAS,MAAc,SAAS,IAAI,EAAE,CAAC;AAC/C,MAAI,OAAO,OAAO,qBAAqB,WACrC,QAAO,iBAAiB,SAAS;AAEnC,gBAAc,SAAS,KAAK,OAAO;OAEnC,eAAc,QAAQ,QAAQA,QAAAA,QAAK,EAAE;AAGvC,QAAO;EAAE,MAAM;EAAU;EAAa"}