Remove the promises-all dependency in favor of Promise.allSettled.

This commit is contained in:
Jayden Seric 2020-05-25 17:05:15 +10:00
parent 50fa2ce360
commit c8ccfd2f49
3 changed files with 9 additions and 26 deletions

13
api/package-lock.json generated
View File

@ -808,11 +808,6 @@
"integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==",
"dev": true
},
"bluebird": {
"version": "3.7.2",
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
"integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg=="
},
"boxen": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz",
@ -3196,14 +3191,6 @@
"integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
"dev": true
},
"promises-all": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/promises-all/-/promises-all-1.0.0.tgz",
"integrity": "sha1-pDGMuNRWifZzkE4hVg8DI5cCgg8=",
"requires": {
"bluebird": "^3.4.7"
}
},
"pstree.remy": {
"version": "1.1.8",
"resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz",

View File

@ -8,7 +8,7 @@
"url": "https://jaydenseric.com"
},
"engines": {
"node": "^12.0.0 || >= 13.7.0"
"node": "^12.9.0 || >= 13.7.0"
},
"dependencies": {
"apollo-server-koa": "^2.13.1",
@ -17,7 +17,6 @@
"koa": "^2.12.0",
"lowdb": "^1.0.0",
"mkdirp": "^1.0.4",
"promises-all": "^1.0.0",
"shortid": "^2.2.15"
},
"devDependencies": {

View File

@ -2,7 +2,6 @@
const { GraphQLUpload } = require('apollo-server-koa');
const { GraphQLList, GraphQLObjectType, GraphQLNonNull } = require('graphql');
const promisesAll = require('promises-all');
const FileType = require('./FileType');
module.exports = new GraphQLObjectType({
@ -29,16 +28,14 @@ module.exports = new GraphQLObjectType({
},
},
async resolve(parent, { files }, { storeUpload }) {
const { resolve, reject } = await promisesAll.all(
files.map(storeUpload)
);
if (reject.length)
reject.forEach(({ name, message }) =>
console.error(`${name}: ${message}`)
);
return resolve;
// Ensure an error storing one upload doesnt prevent storing the rest.
const results = await Promise.allSettled(files.map(storeUpload));
return results.reduce((storedFiles, { value, reason }) => {
if (value) storedFiles.push(value);
// Realistically you would do more than just log an error.
else console.error(`Failed to store upload: ${reason}`);
return storedFiles;
}, []);
},
},
}),