UNPKG

@intlayer/core

Version:

Includes core Intlayer functions like translation, dictionary, and utility functions shared across multiple packages.

39 lines (37 loc) 1.58 kB
const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs'); const require_interpreter_getDictionary = require('./getDictionary.cjs'); let _intlayer_config_client = require("@intlayer/config/client"); let _intlayer_config_built = require("@intlayer/config/built"); _intlayer_config_built = require_rolldown_runtime.__toESM(_intlayer_config_built); let _intlayer_dictionaries_entry = require("@intlayer/dictionaries-entry"); //#region src/interpreter/getIntlayer.ts /** * Creates a Recursive Proxy that returns the path of the accessed key * stringified. This prevents the app from crashing on undefined access. */ const createSafeFallback = (path = "") => { return new Proxy(() => path, { get: (_target, prop) => { if (prop === "toJSON" || prop === Symbol.toPrimitive || prop === "toString") return () => path; if (prop === "then") return; return createSafeFallback(path ? `${path}.${String(prop)}` : String(prop)); }, apply: () => { return path; } }); }; const getIntlayer = (key, locale, plugins) => { const dictionary = (0, _intlayer_dictionaries_entry.getDictionaries)()[key]; if (!dictionary) { (0, _intlayer_config_client.getAppLogger)(_intlayer_config_built.default)(`Dictionary "${key}" was not found. Using fallback proxy.`, { level: "warn", isVerbose: true }); if (process.env.NODE_ENV === "development") return createSafeFallback(key); } return require_interpreter_getDictionary.getDictionary(dictionary, locale, plugins); }; //#endregion exports.getIntlayer = getIntlayer; //# sourceMappingURL=getIntlayer.cjs.map