mirror of
https://github.com/sergeyyarkov/next-apollo-graphql-setup.git
synced 2026-10-11 18:29:36 +03:00
♻️ graphql file structure to role-oriented
This commit is contained in:
parent
8e785f3e1c
commit
c8c5063f8f
11
graphql/data/index.js
Normal file
11
graphql/data/index.js
Normal file
@ -0,0 +1,11 @@
|
||||
const articles = [
|
||||
{ id: 1, title: 'Article 1' },
|
||||
{ id: 2, title: 'Article 2' },
|
||||
{ id: 3, title: 'Article 3' },
|
||||
{ id: 4, title: 'Article 4' },
|
||||
{ id: 5, title: 'Article 5' }
|
||||
]
|
||||
|
||||
module.exports = {
|
||||
articles
|
||||
}
|
||||
11
graphql/models/Article.js
Normal file
11
graphql/models/Article.js
Normal file
@ -0,0 +1,11 @@
|
||||
const { articles } = require('../data')
|
||||
|
||||
class Article {
|
||||
static all () {
|
||||
return articles
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
Article
|
||||
}
|
||||
5
graphql/models/index.js
Normal file
5
graphql/models/index.js
Normal file
@ -0,0 +1,5 @@
|
||||
const { Article } = require('./Article')
|
||||
|
||||
module.exports = {
|
||||
Article
|
||||
}
|
||||
11
graphql/resolvers/articlesResolvers.js
Normal file
11
graphql/resolvers/articlesResolvers.js
Normal file
@ -0,0 +1,11 @@
|
||||
const { Article } = require('../models')
|
||||
|
||||
const articlesResolvers = {
|
||||
Query: {
|
||||
articles: () => Article.all()
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
articlesResolvers
|
||||
}
|
||||
7
graphql/resolvers/index.js
Normal file
7
graphql/resolvers/index.js
Normal file
@ -0,0 +1,7 @@
|
||||
const { articlesResolvers } = require('./articlesResolvers')
|
||||
|
||||
const resolvers = [articlesResolvers]
|
||||
|
||||
module.exports = {
|
||||
resolvers
|
||||
}
|
||||
8
graphql/typeDefs/index.js
Normal file
8
graphql/typeDefs/index.js
Normal file
@ -0,0 +1,8 @@
|
||||
const { query } = require('./query')
|
||||
const { articleType } = require('./types')
|
||||
|
||||
const typeDefs = [query, articleType]
|
||||
|
||||
module.exports = {
|
||||
typeDefs
|
||||
}
|
||||
11
graphql/typeDefs/query.js
Normal file
11
graphql/typeDefs/query.js
Normal file
@ -0,0 +1,11 @@
|
||||
const { gql } = require('apollo-boost')
|
||||
|
||||
const query = gql`
|
||||
type Query {
|
||||
articles: [Article]
|
||||
}
|
||||
`
|
||||
|
||||
module.exports = {
|
||||
query
|
||||
}
|
||||
12
graphql/typeDefs/types/articleType.js
Normal file
12
graphql/typeDefs/types/articleType.js
Normal file
@ -0,0 +1,12 @@
|
||||
const { gql } = require('apollo-boost')
|
||||
|
||||
const articleType = gql`
|
||||
type Article {
|
||||
id: ID
|
||||
title: String
|
||||
}
|
||||
`
|
||||
|
||||
module.exports = {
|
||||
articleType
|
||||
}
|
||||
5
graphql/typeDefs/types/index.js
Normal file
5
graphql/typeDefs/types/index.js
Normal file
@ -0,0 +1,5 @@
|
||||
const { articleType } = require('./articleType')
|
||||
|
||||
module.exports = {
|
||||
articleType
|
||||
}
|
||||
@ -2,12 +2,12 @@ const withSass = require('@zeit/next-sass')
|
||||
const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin')
|
||||
|
||||
module.exports = withSass({
|
||||
cssModules: true,
|
||||
webpack: (config, { dev, isServer }) => {
|
||||
if (isServer) return config
|
||||
cssModules: true,
|
||||
webpack: (config, { dev, isServer }) => {
|
||||
if (isServer) return config
|
||||
|
||||
config.optimization.minimizer.push(new OptimizeCSSAssetsPlugin({}))
|
||||
config.optimization.minimizer.push(new OptimizeCSSAssetsPlugin({}))
|
||||
|
||||
return config
|
||||
}
|
||||
})
|
||||
return config
|
||||
}
|
||||
})
|
||||
|
||||
@ -1,29 +1,6 @@
|
||||
import { gql, ApolloServer } from 'apollo-server-micro'
|
||||
|
||||
const Articles = [
|
||||
{ id: 1, title: 'Article 1' },
|
||||
{ id: 2, title: 'Article 2' },
|
||||
{ id: 3, title: 'Article 3' },
|
||||
{ id: 4, title: 'Article 4' },
|
||||
{ id: 5, title: 'Article 5' }
|
||||
]
|
||||
|
||||
const typeDefs = gql`
|
||||
type Query {
|
||||
articles: [Article]
|
||||
}
|
||||
|
||||
type Article {
|
||||
id: ID
|
||||
title: String
|
||||
}
|
||||
`
|
||||
|
||||
const resolvers = {
|
||||
Query: {
|
||||
articles: (_parent, _args, _context) => Articles
|
||||
}
|
||||
}
|
||||
const { ApolloServer, gql } = require('apollo-server-micro')
|
||||
const { typeDefs } = require('../../graphql/typeDefs')
|
||||
const { resolvers } = require('../../graphql/resolvers')
|
||||
|
||||
const apolloServer = new ApolloServer({ typeDefs, resolvers })
|
||||
const handler = apolloServer.createHandler({ path: '/api/graphql' })
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user