import { Timezone, DateFormat, TimeFormat, FirstDayOfWeek, Language, Country, Continent } from '../types/localization'; import { languages, countries, continents } from '../constants/localization'; export * from '../types/localization'; /** * Gets Language * @param {string} code * @return {Language} */ export function getLanguage(code: string) { return languages.find(item => item.code === code); } /** * Gets Language By Tag * @param {string} tagCode * @return {Language} */ export function getLanguageByTag(tagCode: string) { return languages.find(item => item.tags.includes(tagCode)); } /** * Gets Languages List * @param {string[]} codes * @return {Language[]} */ export function getLanguageList(codes?: string[]){ if (codes) { return languages.filter(item => codes.includes(item.code)); } return languages; } /** * Gets Country * @param {string} code * @return {Country} */ export function getCountry(code: string){ return countries.find(item => item.code === code); } /** * Gets Countries List * @param {string[]} codes * @return {Country[]} */ export function getCountryList(codes?: string[]){ if (codes) { return countries.filter(item => codes.includes(item.code)); } return countries; } /** * Gets Continent * @param {string} code * @return {Continent} */ export function getContinent(code: string){ return continents.find(item => item.code === code); } /** * Gets Continents List * @param {string[]} codes * @return {Continent[]} */ export function getContinentList(codes?: string[]){ if (codes) { return continents.filter(item => codes.includes(item.code)); } return continents; } /** * Gets Date Format List * @return {DateFormat[]} */ export function getDateFormatList() { return Object.entries(DateFormat).map(item => { return { name: item[0], value: item[1] } }); } /** * Gets Time Format List * @return {TimeFormat[]} */ export function getTimeFormatList() { return Object.entries(TimeFormat).map(item => { return { name: item[0], value: item[1] } }); } /** * Gets First Day of Week List * @return {FirstDayOfWeek[]} */ export function getFirstDayOfWeekList() { return Object.entries(FirstDayOfWeek).map(item => { return { name: item[0], value: item[1] } }); } /** * Gets Timezone List * @return {string[]} */ export function getTimezoneList() { return Object.values(Timezone).map(item => item); }