UNPKG

next-intl

Version:

Internationalization (i18n) for Next.js

2 lines (1 loc) 1.18 kB
import{throwError as e,warn as s}from"../plugin/utils.js";function a(e){return e.endsWith("/")?e.slice(0,-1):e}function t(e){return(Array.isArray(e)?e:[e]).map((e=>a(String(e).trim()))).filter((e=>e.length>0))}function r(r){null==r.messages&&e("`messages` is required when extracting messages.");const c=r.extract;let o,i;void 0!==c&&!0!==c&&(c.sourceLocale&&(s("`extract.sourceLocale` is deprecated in favor of `messages.sourceLocale`."),i=c.sourceLocale),c.path&&(o=a(c.path)));const n=r.messages.locales;n||e("`messages.locales` is required when extracting messages."),r.messages.sourceLocale&&(i=r.messages.sourceLocale),i||e("`messages.sourceLocale` is required when extracting messages.");const l=r.srcPath;null==l&&e("`srcPath` is required when extracting messages.");const g=Array.isArray(r.messages.path),m=t(r.messages.path);return 0===m.length&&e("`messages.path` must not be empty."),null==o&&(g&&e("When `messages.path` is an array, `extract.path` is required to select the writable catalog directory."),o=m[0]),{extract:{locales:n,path:o,sourceLocale:i,srcPath:l},messages:{format:r.messages.format,path:m}}}export{r as default,t as normalizeMessagesCatalogPaths};