{"version":3,"file":"index.cjs","names":["system","build","configESMxCJSRequire"],"sources":["../../src/index.ts"],"sourcesContent":["/**\n * @intlayer/dynamic-dictionaries-entry is a package that only returns the dynamic dictionary entry file.\n * Using an external package allow to alias it in the bundle configuration (such as webpack).\n * The alias allow hot reload the app (such as nextjs) on any dictionary change.\n */\n\nimport { existsSync } from 'node:fs';\nimport { join } from 'node:path';\nimport type { DictionaryAPI } from '@intlayer/backend';\nimport { build, system } from '@intlayer/config/built';\nimport { clearModuleCache, configESMxCJSRequire } from '@intlayer/config/utils';\nimport type { IntlayerConfig } from '@intlayer/types/config';\nimport type { DictionaryKey } from '@intlayer/types/dictionary';\n\nexport type RemoteDictionaries = Record<DictionaryKey, DictionaryAPI[]>;\n\ntype GetRemoteDictionaries = (\n  configuration?: IntlayerConfig\n) => RemoteDictionaries;\n\nexport const getRemoteDictionaries: GetRemoteDictionaries = (\n  configuration: Pick<IntlayerConfig, 'system' | 'build'> = { system, build }\n) => {\n  const { system, build } = configuration;\n\n  // Always use cjs for dictionaries entry as it uses require\n  const dictionariesPath = join(system.mainDir, `remote_dictionaries.cjs`);\n  let dictionaries: Record<DictionaryKey, DictionaryAPI[]> = {};\n\n  if (existsSync(dictionariesPath)) {\n    // Clear cache for dynamic_dictionaries.cjs and all its dependencies (JSON files)\n    clearModuleCache(dictionariesPath);\n    dictionaries = (build.require ?? configESMxCJSRequire)(dictionariesPath);\n  }\n\n  return dictionaries;\n};\n"],"mappings":";;;;;;;;;;;;AAoBA,MAAa,yBACX,gBAA0D;CAAE;CAAQ;CAAO,KACxE;CACH,MAAM,EAAE,kBAAQ,mBAAU;CAG1B,MAAM,uCAAwBA,SAAO,SAAS,0BAA0B;CACxE,IAAI,eAAuD,EAAE;AAE7D,6BAAe,iBAAiB,EAAE;AAEhC,+CAAiB,iBAAiB;AAClC,kBAAgBC,QAAM,WAAWC,6CAAsB,iBAAiB;;AAG1E,QAAO"}