Update apollo-upload-server and use native modules.

This commit is contained in:
Jayden Seric 2018-01-30 04:13:55 +11:00
parent 44efa43dac
commit f2cdf0fbba
4 changed files with 23 additions and 21 deletions

11
api/package-lock.json generated
View File

@ -12,11 +12,6 @@
"regenerator-runtime": "0.11.1"
}
},
"@std/esm": {
"version": "0.19.7",
"resolved": "https://registry.npmjs.org/@std/esm/-/esm-0.19.7.tgz",
"integrity": "sha512-bPBbpu1vqgOOD70aMVG5tgioPdttKXQQFq6xodjZxVbPprtZIcm8NcTEJoB+/1QoH8z1TIqjaEN1Wm3YndnfNQ=="
},
"@types/zen-observable": {
"version": "0.5.3",
"resolved": "https://registry.npmjs.org/@types/zen-observable/-/zen-observable-0.5.3.tgz",
@ -171,9 +166,9 @@
}
},
"apollo-upload-server": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/apollo-upload-server/-/apollo-upload-server-4.0.0.tgz",
"integrity": "sha512-DClUePPEdin1imHtKRuoEt91HiCPI/iSTPpAMQizba+wRAKlzKLzoFXFjOtv32B4rmrQOZybCbh711PYVsFjBg==",
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/apollo-upload-server/-/apollo-upload-server-4.0.2.tgz",
"integrity": "sha512-XbijSlkSyEOylm8vo7RxtoOxwWunGkzEf6Vczg3WjdzMEkJ+9zVzMMz/oF8jBScXqeEn+cVopcJ6y9CZACuHxQ==",
"requires": {
"@babel/runtime": "7.0.0-beta.38",
"busboy": "0.2.14",

View File

@ -6,8 +6,7 @@
"npm": ">=5.4"
},
"dependencies": {
"@std/esm": "^0.19.7",
"apollo-upload-server": "^4.0.0",
"apollo-upload-server": "^4.0.2",
"dotenv": "^4.0.0",
"graphql": "^0.12.3",
"graphql-server-koa": "^1.3.2",
@ -34,9 +33,8 @@
"lint": "eslint . --ext mjs",
"fix": "npm run lint -- --fix && prettier --write '**/*.md'",
"dev": "nodemon --ext mjs",
"start": "node --require @std/esm --require dotenv/config server.mjs"
"start": "node --experimental-modules --require dotenv/config server.mjs"
},
"@std/esm": "cjs",
"eslintConfig": {
"parserOptions": {
"sourceType": "module",

View File

@ -1,5 +1,5 @@
import { createWriteStream, unlinkSync } from 'fs'
import { all } from 'promises-all'
import fs from 'fs'
import promisesAll from 'promises-all'
import mkdirp from 'mkdirp'
import shortid from 'shortid'
import lowdb from 'lowdb'
@ -23,11 +23,11 @@ const storeFS = ({ stream, filename }) => {
.on('error', error => {
if (stream.truncated)
// Delete the truncated file
unlinkSync(path)
fs.unlinkSync(path)
reject(error)
})
.on('end', () => resolve({ id, path }))
.pipe(createWriteStream(path))
.pipe(fs.createWriteStream(path))
)
}
@ -52,12 +52,16 @@ export default {
Mutation: {
singleUpload: (obj, { file }) => processUpload(file),
multipleUpload: async (obj, { files }) => {
const { resolve, reject } = await all(files.map(processUpload))
const { resolve, reject } = await promisesAll.all(
files.map(processUpload)
)
if (reject.length)
reject.forEach(({ name, message }) =>
// eslint-disable-next-line no-console
console.error(`${name}: ${message}`)
)
return resolve
}
}

View File

@ -4,16 +4,21 @@ import compress from 'koa-compress'
import KoaRouter from 'koa-router'
import koaBody from 'koa-bodyparser'
import { apolloUploadKoa } from 'apollo-upload-server'
import { graphqlKoa } from 'graphql-server-koa'
import { makeExecutableSchema } from 'graphql-tools'
import graphqlServerKoa from 'graphql-server-koa'
import graphqlTools from 'graphql-tools'
import typeDefs from './schema.mjs'
import resolvers from './resolvers.mjs'
const app = new Koa()
const router = new KoaRouter()
const schema = makeExecutableSchema({ typeDefs, resolvers })
const schema = graphqlTools.makeExecutableSchema({ typeDefs, resolvers })
router.post('/graphql', koaBody(), apolloUploadKoa(), graphqlKoa({ schema }))
router.post(
'/graphql',
koaBody(),
apolloUploadKoa(),
graphqlServerKoa.graphqlKoa({ schema })
)
app
.use(cors())