UNPKG

lynx-intlayer

Version:

A Lynx plugin for seamless internationalization (i18n) and localization (l10n) of your mobile app.

59 lines 1.99 kB
import { checkDictionaryChanges, prepareIntlayer, watch } from "@intlayer/chokidar"; import { ESMxCJSRequire, getConfiguration, logger } from "@intlayer/config"; import { join, relative } from "path"; const pluginIntlayerLynx = () => { return { name: "plugin-intlayer-lynx", async setup(api) { const intlayerConfig = getConfiguration(); await prepareIntlayer(intlayerConfig); const { mainDir, configDir, baseDir } = intlayerConfig.content; const dictionariesPath = join(mainDir, "dictionaries.mjs"); const relativeDictionariesPath = relative(baseDir, dictionariesPath); const unmergedDictionariesPath = join( mainDir, "unmerged_dictionaries.mjs" ); const relativeUnmergedDictionariesPath = relative( baseDir, unmergedDictionariesPath ); const configurationPath = join(configDir, "configuration.json"); const relativeConfigurationPath = relative(baseDir, configurationPath); if (intlayerConfig.content.watch) { watch(intlayerConfig); } api.modifyRsbuildConfig(async (config, { mergeRsbuildConfig }) => { return mergeRsbuildConfig(config, { source: { alias: { "@intlayer/dictionaries-entry": relativeDictionariesPath, "@intlayer/unmerged-dictionaries-entry": relativeUnmergedDictionariesPath, "@intlayer/config/built": relativeConfigurationPath, react: ESMxCJSRequire.resolve("@lynx-js/react") } } }); }); if (intlayerConfig.editor.hotReload) { api.onBeforeEnvironmentCompile(async () => { try { await checkDictionaryChanges(); } catch (error) { logger(`Error checking dictionary changes: ${error}`, { level: "error" }); } }); } } }; }; export { pluginIntlayerLynx }; //# sourceMappingURL=pluginIntlayerLynx.mjs.map