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==", "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==",
"dev": true "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": { "boxen": {
"version": "4.2.0", "version": "4.2.0",
"resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz",
@ -3196,14 +3191,6 @@
"integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
"dev": true "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": { "pstree.remy": {
"version": "1.1.8", "version": "1.1.8",
"resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz",

View File

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

View File

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