32 lines
835 B
JavaScript

import { glob } from '@fesjs/utils';
import { join, basename } from 'path';
export function getLocales(cwd) {
const files = glob
.sync('*.js', {
cwd
})
.filter(
file => !file.endsWith('.d.ts')
&& !file.endsWith('.test.js')
&& !file.endsWith('.test.jsx')
).map((fileName) => {
const locale = basename(fileName, '.js');
return {
locale,
message: `require('${join(cwd, fileName)}').default`
};
});
return files;
}
export function getLocalesJSON(cwd) {
const locales = getLocales(cwd);
return JSON.stringify(locales)
.replace(
/"message": ("(.+?)")/g,
(global, m1, m2) => `"message": ${m2.replace(/\^/g, '"')}`
);
}