Update to Apollo Server v2.
This commit is contained in:
parent
e29b2636fc
commit
de11cb3c47
146
api/package-lock.json
generated
146
api/package-lock.json
generated
@ -400,18 +400,6 @@
|
||||
"lodash": "^4.17.10",
|
||||
"subscriptions-transport-ws": "^0.9.11",
|
||||
"ws": "^5.2.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"apollo-upload-server": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/apollo-upload-server/-/apollo-upload-server-5.0.0.tgz",
|
||||
"integrity": "sha512-CzbHvMo/6TO5XrovzmV/ojTft17s9Cd+vKLGngChpB0UW1ObxKlNLlcXRLD+yt6Nec32/Kt209HmA31hnwxB/g==",
|
||||
"requires": {
|
||||
"@babel/runtime": "^7.0.0-beta.40",
|
||||
"busboy": "^0.2.14",
|
||||
"object-path": "^0.11.4"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"apollo-server-env": {
|
||||
@ -450,26 +438,6 @@
|
||||
"koa-bodyparser": "^3.0.0",
|
||||
"koa-router": "^7.4.0",
|
||||
"type-is": "^1.6.16"
|
||||
},
|
||||
"dependencies": {
|
||||
"apollo-upload-server": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/apollo-upload-server/-/apollo-upload-server-5.0.0.tgz",
|
||||
"integrity": "sha512-CzbHvMo/6TO5XrovzmV/ojTft17s9Cd+vKLGngChpB0UW1ObxKlNLlcXRLD+yt6Nec32/Kt209HmA31hnwxB/g==",
|
||||
"requires": {
|
||||
"@babel/runtime": "^7.0.0-beta.40",
|
||||
"busboy": "^0.2.14",
|
||||
"object-path": "^0.11.4"
|
||||
}
|
||||
},
|
||||
"koa-bodyparser": {
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/koa-bodyparser/-/koa-bodyparser-3.2.0.tgz",
|
||||
"integrity": "sha1-uRbeF+IDn+gmUEgZc9fClPELVxk=",
|
||||
"requires": {
|
||||
"co-body": "^4.2.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"apollo-tracing": {
|
||||
@ -493,12 +461,12 @@
|
||||
}
|
||||
},
|
||||
"apollo-upload-server": {
|
||||
"version": "6.0.0-alpha.1",
|
||||
"resolved": "https://registry.npmjs.org/apollo-upload-server/-/apollo-upload-server-6.0.0-alpha.1.tgz",
|
||||
"integrity": "sha512-s4SIr1HK9EABP/pvkxIrqnQHKjyaxXZf0F9X3HgfzJAcx2JjtnI0KxiukqYnCYpi0OPmDA/F1XxKonsrsiw9MQ==",
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/apollo-upload-server/-/apollo-upload-server-5.0.0.tgz",
|
||||
"integrity": "sha512-CzbHvMo/6TO5XrovzmV/ojTft17s9Cd+vKLGngChpB0UW1ObxKlNLlcXRLD+yt6Nec32/Kt209HmA31hnwxB/g==",
|
||||
"requires": {
|
||||
"@babel/runtime": "^7.0.0-beta.40",
|
||||
"busboy": "^0.2.14",
|
||||
"fs-capacitor": "^0.0.3",
|
||||
"object-path": "^0.11.4"
|
||||
}
|
||||
},
|
||||
@ -1006,14 +974,6 @@
|
||||
"integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=",
|
||||
"dev": true
|
||||
},
|
||||
"compressible": {
|
||||
"version": "2.0.14",
|
||||
"resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.14.tgz",
|
||||
"integrity": "sha1-MmxfUH+7BV9UEWeCuWmoG2einac=",
|
||||
"requires": {
|
||||
"mime-db": ">= 1.34.0 < 2"
|
||||
}
|
||||
},
|
||||
"concat-map": {
|
||||
"version": "0.0.1",
|
||||
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
|
||||
@ -1065,11 +1025,6 @@
|
||||
"integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=",
|
||||
"dev": true
|
||||
},
|
||||
"copy-to": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/copy-to/-/copy-to-2.0.1.tgz",
|
||||
"integrity": "sha1-JoD7uAaKSNCGVrYJgJK9r8kG9KU="
|
||||
},
|
||||
"core-js": {
|
||||
"version": "2.5.7",
|
||||
"resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz",
|
||||
@ -2001,11 +1956,6 @@
|
||||
"integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=",
|
||||
"dev": true
|
||||
},
|
||||
"fs-capacitor": {
|
||||
"version": "0.0.3",
|
||||
"resolved": "https://registry.npmjs.org/fs-capacitor/-/fs-capacitor-0.0.3.tgz",
|
||||
"integrity": "sha512-oXfXMxpmALJ09ftrwuv9BpHC0kb+pOZKugtjUR8p1YL5kF+crZGWD2/60Vk5PgRSvO2HKOZWkjziCXABesl8Qg=="
|
||||
},
|
||||
"fs.realpath": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
|
||||
@ -3218,11 +3168,6 @@
|
||||
"integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=",
|
||||
"dev": true
|
||||
},
|
||||
"kcors": {
|
||||
"version": "2.2.2",
|
||||
"resolved": "https://registry.npmjs.org/kcors/-/kcors-2.2.2.tgz",
|
||||
"integrity": "sha512-rIqbKa2S0gT0wC/790jsQM6hNpABHBNWQ7+XYS1xJV6zOGxlanW+RtCmlDn6wPZsGpRk371yy8abfBgl2OTavg=="
|
||||
},
|
||||
"keygrip": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.0.2.tgz",
|
||||
@ -3266,65 +3211,11 @@
|
||||
}
|
||||
},
|
||||
"koa-bodyparser": {
|
||||
"version": "4.2.1",
|
||||
"resolved": "https://registry.npmjs.org/koa-bodyparser/-/koa-bodyparser-4.2.1.tgz",
|
||||
"integrity": "sha512-UIjPAlMZfNYDDe+4zBaOAUKYqkwAGcIU6r2ARf1UOXPAlfennQys5IiShaVeNf7KkVBlf88f2LeLvBFvKylttw==",
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/koa-bodyparser/-/koa-bodyparser-3.2.0.tgz",
|
||||
"integrity": "sha1-uRbeF+IDn+gmUEgZc9fClPELVxk=",
|
||||
"requires": {
|
||||
"co-body": "^6.0.0",
|
||||
"copy-to": "^2.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"bytes": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
|
||||
"integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg="
|
||||
},
|
||||
"co-body": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/co-body/-/co-body-6.0.0.tgz",
|
||||
"integrity": "sha512-9ZIcixguuuKIptnY8yemEOuhb71L/lLf+Rl5JfJEUiDNJk0e02MBt7BPxR2GEh5mw8dPthQYR4jPI/BnS1MQgw==",
|
||||
"requires": {
|
||||
"inflation": "^2.0.0",
|
||||
"qs": "^6.5.2",
|
||||
"raw-body": "^2.3.3",
|
||||
"type-is": "^1.6.16"
|
||||
}
|
||||
},
|
||||
"http-errors": {
|
||||
"version": "1.6.3",
|
||||
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
|
||||
"integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=",
|
||||
"requires": {
|
||||
"depd": "~1.1.2",
|
||||
"inherits": "2.0.3",
|
||||
"setprototypeof": "1.1.0",
|
||||
"statuses": ">= 1.4.0 < 2"
|
||||
}
|
||||
},
|
||||
"iconv-lite": {
|
||||
"version": "0.4.23",
|
||||
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz",
|
||||
"integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==",
|
||||
"requires": {
|
||||
"safer-buffer": ">= 2.1.2 < 3"
|
||||
}
|
||||
},
|
||||
"qs": {
|
||||
"version": "6.5.2",
|
||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
|
||||
"integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
|
||||
},
|
||||
"raw-body": {
|
||||
"version": "2.3.3",
|
||||
"resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz",
|
||||
"integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==",
|
||||
"requires": {
|
||||
"bytes": "3.0.0",
|
||||
"http-errors": "1.6.3",
|
||||
"iconv-lite": "0.4.23",
|
||||
"unpipe": "1.0.0"
|
||||
}
|
||||
}
|
||||
"co-body": "^4.2.0"
|
||||
}
|
||||
},
|
||||
"koa-compose": {
|
||||
@ -3332,24 +3223,6 @@
|
||||
"resolved": "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz",
|
||||
"integrity": "sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw=="
|
||||
},
|
||||
"koa-compress": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/koa-compress/-/koa-compress-3.0.0.tgz",
|
||||
"integrity": "sha512-xol+LkNB1mozKJkB5Kj6nYXbJXhkLkZlXl9BsGBPjujVfZ8MsIXwU4GHRTT7TlSfUcl2DU3JtC+j6wOWcovfuQ==",
|
||||
"requires": {
|
||||
"bytes": "^3.0.0",
|
||||
"compressible": "^2.0.0",
|
||||
"koa-is-json": "^1.0.0",
|
||||
"statuses": "^1.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"bytes": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
|
||||
"integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg="
|
||||
}
|
||||
}
|
||||
},
|
||||
"koa-convert": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/koa-convert/-/koa-convert-1.2.0.tgz",
|
||||
@ -4423,7 +4296,8 @@
|
||||
"safer-buffer": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
|
||||
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
|
||||
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
|
||||
"dev": true
|
||||
},
|
||||
"semver": {
|
||||
"version": "5.5.0",
|
||||
|
||||
@ -6,15 +6,9 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"apollo-server-koa": "^2.0.0",
|
||||
"apollo-upload-server": "^6.0.0-alpha.1",
|
||||
"dotenv": "^6.0.0",
|
||||
"graphql": "^0.13.2",
|
||||
"graphql-tools": "^3.1.1",
|
||||
"kcors": "^2.2.2",
|
||||
"koa": "^2.5.2",
|
||||
"koa-bodyparser": "^4.2.1",
|
||||
"koa-compress": "^3.0.0",
|
||||
"koa-router": "^7.4.0",
|
||||
"lowdb": "^1.0.0",
|
||||
"mkdirp": "^0.5.1",
|
||||
"promises-all": "^1.0.0",
|
||||
|
||||
@ -4,7 +4,6 @@ An example GraphQL API using:
|
||||
|
||||
- [koa](https://npm.im/koa)
|
||||
- [graphql-server-koa](https://npm.im/graphql-server-koa)
|
||||
- [apollo-upload-server](https://npm.im/apollo-upload-server)
|
||||
|
||||
## Setup
|
||||
|
||||
|
||||
@ -1,34 +1,17 @@
|
||||
import Koa from 'koa'
|
||||
import cors from 'kcors'
|
||||
import compress from 'koa-compress'
|
||||
import KoaRouter from 'koa-router'
|
||||
import koaBody from 'koa-bodyparser'
|
||||
import { apolloUploadKoa } from 'apollo-upload-server'
|
||||
import apolloServerKoa from 'apollo-server-koa'
|
||||
import graphqlTools from 'graphql-tools'
|
||||
import typeDefs from './schema.mjs'
|
||||
import typeDefs from './types.mjs'
|
||||
import resolvers from './resolvers.mjs'
|
||||
|
||||
const router = new KoaRouter().post(
|
||||
'/graphql',
|
||||
koaBody(),
|
||||
apolloUploadKoa(),
|
||||
apolloServerKoa.graphqlKoa({
|
||||
schema: graphqlTools.makeExecutableSchema({ typeDefs, resolvers })
|
||||
})
|
||||
)
|
||||
const app = new Koa()
|
||||
const server = new apolloServerKoa.ApolloServer({ typeDefs, resolvers })
|
||||
|
||||
new Koa()
|
||||
.use(cors())
|
||||
.use(compress())
|
||||
.use(router.routes())
|
||||
.use(router.allowedMethods())
|
||||
.listen(process.env.PORT, error => {
|
||||
if (error) throw error
|
||||
// eslint-disable-next-line no-console
|
||||
console.info(
|
||||
`Serving http://localhost:${process.env.PORT} for ${
|
||||
process.env.NODE_ENV
|
||||
}.`
|
||||
)
|
||||
})
|
||||
server.applyMiddleware({ app })
|
||||
|
||||
app.listen(process.env.PORT, error => {
|
||||
if (error) throw error
|
||||
// eslint-disable-next-line no-console
|
||||
console.info(
|
||||
`Serving http://localhost:${process.env.PORT} for ${process.env.NODE_ENV}.`
|
||||
)
|
||||
})
|
||||
|
||||
@ -1,6 +1,4 @@
|
||||
export default /* GraphQL */ `
|
||||
scalar Upload
|
||||
|
||||
type File {
|
||||
id: ID!
|
||||
path: String!
|
||||
Loading…
x
Reference in New Issue
Block a user