{"version":3,"sources":["../../src/processPerLocaleDictionary.ts"],"sourcesContent":["import { deepTransformNode, Plugins, t, type Dictionary } from '@intlayer/core';\n\n/**\n *\n * Should transform per locale dictionaries to multi-locale dictionaries\n *\n * Example:\n *\n * ```json5\n * // .intlayer/dictionaries/home.fr.json\n * { 'key': 'home', 'locale': 'fr', 'content': { 'example': \"value\", ... } },\n * ```\n *\n * Result:\n *\n * ```json5\n * // .intlayer/dictionaries/home.json\n * {\n *   'key': 'home',\n *   'content': {\n *     'example': {\n *     'nodeType': 'translation',\n *     'translation': {\n *       'fr': 'valeur',\n *     }\n * }, ... } },\n * ```\n *\n * @param dictionary\n * @returns\n */\nexport const processPerLocaleDictionary = (dictionary: Dictionary) => {\n  const isPerLocaleDictionary = typeof dictionary.locale === 'string';\n\n  if (!isPerLocaleDictionary) {\n    return dictionary;\n  }\n\n  const transformStringToTranslationPlugin: Plugins = {\n    id: 'transform-string-to-translation-plugin',\n    canHandle: (node) => typeof node === 'string' || typeof node === 'number',\n    transform: (node: string | number) =>\n      t({ [dictionary.locale as string]: node }),\n  };\n\n  return {\n    ...dictionary,\n    locale: undefined,\n    content: deepTransformNode(dictionary.content, {\n      dictionaryKey: dictionary.key,\n      keyPath: [],\n      plugins: [transformStringToTranslationPlugin],\n    }),\n  };\n};\n"],"mappings":"AAAA,SAAS,mBAA4B,SAA0B;AA+BxD,MAAM,6BAA6B,CAAC,eAA2B;AACpE,QAAM,wBAAwB,OAAO,WAAW,WAAW;AAE3D,MAAI,CAAC,uBAAuB;AAC1B,WAAO;AAAA,EACT;AAEA,QAAM,qCAA8C;AAAA,IAClD,IAAI;AAAA,IACJ,WAAW,CAAC,SAAS,OAAO,SAAS,YAAY,OAAO,SAAS;AAAA,IACjE,WAAW,CAAC,SACV,EAAE,EAAE,CAAC,WAAW,MAAgB,GAAG,KAAK,CAAC;AAAA,EAC7C;AAEA,SAAO;AAAA,IACL,GAAG;AAAA,IACH,QAAQ;AAAA,IACR,SAAS,kBAAkB,WAAW,SAAS;AAAA,MAC7C,eAAe,WAAW;AAAA,MAC1B,SAAS,CAAC;AAAA,MACV,SAAS,CAAC,kCAAkC;AAAA,IAC9C,CAAC;AAAA,EACH;AACF;","names":[]}