next-intl-split
Version:
A loader for next-intl to split translation files properly.
3 lines (2 loc) • 888 B
JavaScript
import{readdirSync as e,readFileSync as t,existsSync as r}from"fs";import o from"path";import{writeMessages as s}from"../write/index.mjs";const n="index.json",c=(e,t)=>{let r=e;for(const e of t)r[e]||(r[e]={}),r=r[e];return{obj:e,lastKey:r}},i=(e,t,n)=>{const c=l(e),i=Object.entries(c).filter((e=>e[0]===t))[0][1];if(n){const t=o.resolve(process.cwd(),e);r(t)&&s(t,c,{muteLogs:!0})}return i},l=r=>{let s={};try{const l=e(r,{recursive:!0});for(let e=0;e<l.length;e++){const f=l[e];if("string"==typeof f&&((i=f).includes(n)&&i.includes(o.sep))){const e=f.split(o.sep).filter((e=>e!==n)),i=o.resolve(process.cwd(),r,f),l=JSON.parse(t(i,"utf-8"));s={...s};const{lastKey:p}=c(s,e);Object.assign(p,l)}}}catch(e){console.error("The following error occured in loader in next-intl-split.",e)}var i;return s};export{i as loadI18nTranslations,l as loadMessages};
//# sourceMappingURL=index.mjs.map