open-api-mocker
Version:
A mock server based in Open API Specification
42 lines (28 loc) • 844 B
JavaScript
;
const { allFakers } = require('@faker-js/faker');
const DEFAULT_LOCALE = 'en';
const parseUserLocale = () => {
const { locale } = Intl.DateTimeFormat().resolvedOptions();
const [lang, country = ''] = locale.split('-');
if(!country)
return lang;
return lang.toLowerCase() === country.toLowerCase() &&
lang.toLowerCase() !== 'pt'
? lang
: `${lang}_${country}`;
};
/**
* @returns {import('@faker-js/faker').Faker}
*/
const getFakerLocale = (userLocaleParser = parseUserLocale) => {
const userLocale = userLocaleParser();
if(allFakers[userLocale])
return allFakers[userLocale];
if(userLocale.includes('_')) {
const [baseUserLocale] = userLocale.split('_');
if(allFakers[baseUserLocale])
return allFakers[baseUserLocale];
}
return allFakers[DEFAULT_LOCALE];
};
module.exports = getFakerLocale;