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