Add queries/resolvers for single assets

This commit is contained in:
Trevor Blades
2018-10-11 23:39:44 -04:00
parent febf38a98f
commit 4649d32676
3 changed files with 71 additions and 55 deletions

View File

@@ -1,4 +1,6 @@
import {ApolloServer, gql} from 'apollo-server';
import resolvers from './resolvers';
import typeDefs from './schema';
import {ApolloServer} from 'apollo-server';
import {continents, countries, languages} from 'countries-list';
function toArray(object) {
@@ -8,61 +10,18 @@ function toArray(object) {
}));
}
const data = {
continents: Object.entries(continents).map(([code, name]) => ({code, name})),
countries: toArray(countries),
languages: toArray(languages)
};
const typeDefs = gql`
type Continent {
code: String
name: String
const server = new ApolloServer({
typeDefs,
resolvers,
context: {
continents: Object.entries(continents).map(([code, name]) => ({
code,
name
})),
countries: toArray(countries),
languages: toArray(languages)
}
type Country {
code: String
name: String
native: String
phone: String
continent: Continent
currency: String
languages: [Language]
emoji: String
emojiU: String
}
type Language {
code: String
name: String
native: String
rtl: Int
}
type Query {
continents: [Continent]
countries: [Country]
languages: [Language]
}
`;
const resolvers = {
Country: {
continent: country =>
data.continents.find(continent => continent.code === country.continent),
languages: country =>
data.languages.filter(language =>
country.languages.includes(language.code)
)
},
Query: {
continents: () => data.continents,
countries: () => data.countries,
languages: () => data.languages
}
};
const server = new ApolloServer({typeDefs, resolvers});
});
server.listen({port: process.env.PORT}).then(({url}) => {
console.log(`🚀 Server ready at ${url}`);