Files
countries/resolvers.js
2020-02-02 15:27:41 -08:00

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
}));
}
}
};