mirror of
https://github.com/FranP-code/countries.git
synced 2025-10-13 00:02:15 +00:00
84 lines
1.7 KiB
JavaScript
84 lines
1.7 KiB
JavaScript
import provinces from 'provinces';
|
|
import {continents, countries, languages} from 'countries-list';
|
|
|
|
export default {
|
|
Country: {
|
|
continent({continent}) {
|
|
return {
|
|
code: continent,
|
|
name: continents[continent]
|
|
};
|
|
},
|
|
languages(country) {
|
|
return country.languages.map(code => {
|
|
const language = languages[code];
|
|
return {
|
|
...language,
|
|
code
|
|
};
|
|
});
|
|
},
|
|
states(country) {
|
|
return provinces.filter(province => province.country === country.code);
|
|
}
|
|
},
|
|
State: {
|
|
code(state) {
|
|
return state.short;
|
|
},
|
|
country(state) {
|
|
return countries[state.country];
|
|
}
|
|
},
|
|
Continent: {
|
|
countries(continent) {
|
|
return Object.entries(countries)
|
|
.filter(entry => entry[1].continent === continent.code)
|
|
.map(([code, country]) => ({
|
|
...country,
|
|
code
|
|
}));
|
|
}
|
|
},
|
|
Query: {
|
|
continent(parent, {code}) {
|
|
return {
|
|
code,
|
|
name: continents[code]
|
|
};
|
|
},
|
|
continents() {
|
|
return Object.entries(continents).map(([code, name]) => ({
|
|
code,
|
|
name
|
|
}));
|
|
},
|
|
country(parent, {code}) {
|
|
const country = countries[code];
|
|
return {
|
|
...country,
|
|
code
|
|
};
|
|
},
|
|
countries() {
|
|
return Object.entries(countries).map(([code, country]) => ({
|
|
...country,
|
|
code
|
|
}));
|
|
},
|
|
language(parent, {code}) {
|
|
const language = languages[code];
|
|
return {
|
|
...language,
|
|
code
|
|
};
|
|
},
|
|
languages() {
|
|
return Object.entries(languages).map(([code, language]) => ({
|
|
...language,
|
|
code
|
|
}));
|
|
}
|
|
}
|
|
};
|