@intlayer/dictionaries-entry
Version:
Provides the entry path for Intlayer dictionaries, solving filesystem retrieval issues for bundlers like Webpack and Rollup.
1 lines • 1.59 kB
Source Map (JSON)
{"version":3,"file":"index.cjs","names":["defaultConfiguration","configESMxCJSRequire"],"sources":["../../src/index.ts"],"sourcesContent":["/**\n * @intlayer/dictionaries-entry is a package that only returns the 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 { default as defaultConfiguration } from '@intlayer/config/built';\nimport { configESMxCJSRequire } from '@intlayer/config/utils';\nimport type { IntlayerConfig } from '@intlayer/types/config';\nimport type { DictionaryRegistry } from '@intlayer/types/module_augmentation';\n\ntype GetDictionaries = (configuration?: IntlayerConfig) => DictionaryRegistry;\n\nexport const getDictionaries: GetDictionaries = (\n configuration: IntlayerConfig = defaultConfiguration\n) => {\n const { system, build } = configuration;\n\n // Always use cjs for dictionaries entry as it uses require\n const dictionariesPath = join(system.mainDir, `dictionaries.cjs`);\n\n let dictionaries = {};\n if (existsSync(dictionariesPath)) {\n dictionaries = (build.require ?? configESMxCJSRequire)(dictionariesPath);\n }\n\n return (dictionaries ?? {}) as DictionaryRegistry;\n};\n"],"mappings":";;;;;;;;;;;;;;AAeA,MAAa,mBACX,gBAAgCA,mCAC7B;CACH,MAAM,EAAE,QAAQ,UAAU;CAG1B,MAAM,uCAAwB,OAAO,SAAS,kBAAkB;CAEhE,IAAI,eAAe,CAAC;CACpB,4BAAe,gBAAgB,GAC7B,gBAAgB,MAAM,WAAWC,6CAAsB,gBAAgB;CAGzE,OAAQ,gBAAgB,CAAC;AAC3B"}