Jelajahi Sumber

xhrupload,tus: Use `promise-settle`

Renée Kooi 7 tahun lalu
induk
melakukan
d4e5daa630
4 mengubah file dengan 41 tambahan dan 33 penghapusan
  1. 36 31
      package-lock.json
  2. 1 0
      package.json
  3. 2 1
      src/plugins/Tus10.js
  4. 2 1
      src/plugins/XHRUpload.js

+ 36 - 31
package-lock.json

@@ -38,6 +38,16 @@
       "integrity": "sha1-9vGlzl05caSt6RoR0i1MRZrNN18=",
       "integrity": "sha1-9vGlzl05caSt6RoR0i1MRZrNN18=",
       "dev": true
       "dev": true
     },
     },
+    "JSONStream": {
+      "version": "1.3.1",
+      "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.1.tgz",
+      "integrity": "sha1-cH92HgHa6eFvG8+TcDt4xwlmV5o=",
+      "dev": true,
+      "requires": {
+        "jsonparse": "1.3.1",
+        "through": "2.3.8"
+      }
+    },
     "abbrev": {
     "abbrev": {
       "version": "1.1.0",
       "version": "1.1.0",
       "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz",
       "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz",
@@ -1445,9 +1455,9 @@
       "integrity": "sha1-+GzWzvT1MAyOY+B6TVEvZfv/RTE=",
       "integrity": "sha1-+GzWzvT1MAyOY+B6TVEvZfv/RTE=",
       "dev": true,
       "dev": true,
       "requires": {
       "requires": {
+        "JSONStream": "1.3.1",
         "combine-source-map": "0.7.2",
         "combine-source-map": "0.7.2",
         "defined": "1.0.0",
         "defined": "1.0.0",
-        "JSONStream": "1.3.1",
         "through2": "2.0.3",
         "through2": "2.0.3",
         "umd": "3.0.1"
         "umd": "3.0.1"
       }
       }
@@ -1734,6 +1744,7 @@
       "integrity": "sha1-BQjMHnv0wVIxLC+lI+Z2wLC5IxE=",
       "integrity": "sha1-BQjMHnv0wVIxLC+lI+Z2wLC5IxE=",
       "dev": true,
       "dev": true,
       "requires": {
       "requires": {
+        "JSONStream": "1.3.1",
         "assert": "1.4.1",
         "assert": "1.4.1",
         "browser-pack": "6.0.2",
         "browser-pack": "6.0.2",
         "browser-resolve": "1.11.2",
         "browser-resolve": "1.11.2",
@@ -1755,7 +1766,6 @@
         "https-browserify": "0.0.1",
         "https-browserify": "0.0.1",
         "inherits": "2.0.3",
         "inherits": "2.0.3",
         "insert-module-globals": "7.0.1",
         "insert-module-globals": "7.0.1",
-        "JSONStream": "1.3.1",
         "labeled-stream-splicer": "2.0.0",
         "labeled-stream-splicer": "2.0.0",
         "module-deps": "4.1.1",
         "module-deps": "4.1.1",
         "os-browserify": "0.1.2",
         "os-browserify": "0.1.2",
@@ -4907,14 +4917,6 @@
             }
             }
           }
           }
         },
         },
-        "string_decoder": {
-          "version": "1.0.1",
-          "bundled": true,
-          "dev": true,
-          "requires": {
-            "safe-buffer": "5.0.1"
-          }
-        },
         "string-width": {
         "string-width": {
           "version": "1.0.2",
           "version": "1.0.2",
           "bundled": true,
           "bundled": true,
@@ -4925,6 +4927,14 @@
             "strip-ansi": "3.0.1"
             "strip-ansi": "3.0.1"
           }
           }
         },
         },
+        "string_decoder": {
+          "version": "1.0.1",
+          "bundled": true,
+          "dev": true,
+          "requires": {
+            "safe-buffer": "5.0.1"
+          }
+        },
         "stringstream": {
         "stringstream": {
           "version": "0.0.5",
           "version": "0.0.5",
           "bundled": true,
           "bundled": true,
@@ -6186,10 +6196,10 @@
       "integrity": "sha1-wDv04BywhtW15azorQr+eInWOMM=",
       "integrity": "sha1-wDv04BywhtW15azorQr+eInWOMM=",
       "dev": true,
       "dev": true,
       "requires": {
       "requires": {
+        "JSONStream": "1.3.1",
         "combine-source-map": "0.7.2",
         "combine-source-map": "0.7.2",
         "concat-stream": "1.5.2",
         "concat-stream": "1.5.2",
         "is-buffer": "1.1.5",
         "is-buffer": "1.1.5",
-        "JSONStream": "1.3.1",
         "lexical-scope": "1.2.0",
         "lexical-scope": "1.2.0",
         "process": "0.11.10",
         "process": "0.11.10",
         "through2": "2.0.3",
         "through2": "2.0.3",
@@ -6679,16 +6689,6 @@
       "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=",
       "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=",
       "dev": true
       "dev": true
     },
     },
-    "JSONStream": {
-      "version": "1.3.1",
-      "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.1.tgz",
-      "integrity": "sha1-cH92HgHa6eFvG8+TcDt4xwlmV5o=",
-      "dev": true,
-      "requires": {
-        "jsonparse": "1.3.1",
-        "through": "2.3.8"
-      }
-    },
     "jsprim": {
     "jsprim": {
       "version": "1.4.0",
       "version": "1.4.0",
       "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz",
       "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz",
@@ -7697,6 +7697,7 @@
       "integrity": "sha1-IyFYM/HaE/1gbMuAh7RIUty4If0=",
       "integrity": "sha1-IyFYM/HaE/1gbMuAh7RIUty4If0=",
       "dev": true,
       "dev": true,
       "requires": {
       "requires": {
+        "JSONStream": "1.3.1",
         "browser-resolve": "1.11.2",
         "browser-resolve": "1.11.2",
         "cached-path-relative": "1.0.1",
         "cached-path-relative": "1.0.1",
         "concat-stream": "1.5.2",
         "concat-stream": "1.5.2",
@@ -7704,7 +7705,6 @@
         "detective": "4.5.0",
         "detective": "4.5.0",
         "duplexer2": "0.1.4",
         "duplexer2": "0.1.4",
         "inherits": "2.0.3",
         "inherits": "2.0.3",
-        "JSONStream": "1.3.1",
         "parents": "1.0.1",
         "parents": "1.0.1",
         "readable-stream": "2.2.11",
         "readable-stream": "2.2.11",
         "resolve": "1.3.3",
         "resolve": "1.3.3",
@@ -9320,6 +9320,11 @@
       "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=",
       "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=",
       "dev": true
       "dev": true
     },
     },
+    "promise-settle": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmjs.org/promise-settle/-/promise-settle-0.3.0.tgz",
+      "integrity": "sha1-tO/VcqHrdM95T4KM00naQKCOTpY="
+    },
     "propagate": {
     "propagate": {
       "version": "0.4.0",
       "version": "0.4.0",
       "resolved": "https://registry.npmjs.org/propagate/-/propagate-0.4.0.tgz",
       "resolved": "https://registry.npmjs.org/propagate/-/propagate-0.4.0.tgz",
@@ -10973,14 +10978,6 @@
       "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=",
       "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=",
       "dev": true
       "dev": true
     },
     },
-    "string_decoder": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.2.tgz",
-      "integrity": "sha1-sp4fThEl+pehA4K4pTNze3SR4Xk=",
-      "requires": {
-        "safe-buffer": "5.0.1"
-      }
-    },
     "string-length": {
     "string-length": {
       "version": "1.0.1",
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/string-length/-/string-length-1.0.1.tgz",
       "resolved": "https://registry.npmjs.org/string-length/-/string-length-1.0.1.tgz",
@@ -11035,6 +11032,14 @@
         "function-bind": "1.1.0"
         "function-bind": "1.1.0"
       }
       }
     },
     },
+    "string_decoder": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.2.tgz",
+      "integrity": "sha1-sp4fThEl+pehA4K4pTNze3SR4Xk=",
+      "requires": {
+        "safe-buffer": "5.0.1"
+      }
+    },
     "stringstream": {
     "stringstream": {
       "version": "0.0.5",
       "version": "0.0.5",
       "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
       "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
@@ -11831,6 +11836,7 @@
           "integrity": "sha1-tanJAgJD8McORnW+yCI7xifkFc4=",
           "integrity": "sha1-tanJAgJD8McORnW+yCI7xifkFc4=",
           "dev": true,
           "dev": true,
           "requires": {
           "requires": {
+            "JSONStream": "1.3.1",
             "assert": "1.4.1",
             "assert": "1.4.1",
             "browser-pack": "6.0.2",
             "browser-pack": "6.0.2",
             "browser-resolve": "1.11.2",
             "browser-resolve": "1.11.2",
@@ -11852,7 +11858,6 @@
             "https-browserify": "0.0.1",
             "https-browserify": "0.0.1",
             "inherits": "2.0.3",
             "inherits": "2.0.3",
             "insert-module-globals": "7.0.1",
             "insert-module-globals": "7.0.1",
-            "JSONStream": "1.3.1",
             "labeled-stream-splicer": "2.0.0",
             "labeled-stream-splicer": "2.0.0",
             "module-deps": "4.1.1",
             "module-deps": "4.1.1",
             "os-browserify": "0.1.2",
             "os-browserify": "0.1.2",

+ 1 - 0
package.json

@@ -84,6 +84,7 @@
     "nanoraf": "3.0.1",
     "nanoraf": "3.0.1",
     "on-load": "3.2.0",
     "on-load": "3.2.0",
     "prettier-bytes": "1.0.4",
     "prettier-bytes": "1.0.4",
+    "promise-settle": "^0.3.0",
     "socket.io-client": "2.0.1",
     "socket.io-client": "2.0.1",
     "tus-js-client": "1.4.3",
     "tus-js-client": "1.4.3",
     "url-parse": "1.1.9",
     "url-parse": "1.1.9",

+ 2 - 1
src/plugins/Tus10.js

@@ -1,5 +1,6 @@
 const Plugin = require('./Plugin')
 const Plugin = require('./Plugin')
 const tus = require('tus-js-client')
 const tus = require('tus-js-client')
+const settle = require('promise-settle')
 const UppySocket = require('../core/UppySocket')
 const UppySocket = require('../core/UppySocket')
 const Utils = require('../core/Utils')
 const Utils = require('../core/Utils')
 require('whatwg-fetch')
 require('whatwg-fetch')
@@ -324,7 +325,7 @@ module.exports = class Tus10 extends Plugin {
   }
   }
 
 
   uploadFiles (files) {
   uploadFiles (files) {
-    return Promise.all(files.map((file, index) => {
+    return settle(files.map((file, index) => {
       const current = parseInt(index, 10) + 1
       const current = parseInt(index, 10) + 1
       const total = files.length
       const total = files.length
 
 

+ 2 - 1
src/plugins/XHRUpload.js

@@ -1,4 +1,5 @@
 const Plugin = require('./Plugin')
 const Plugin = require('./Plugin')
+const settle = require('promise-settle')
 const UppySocket = require('../core/UppySocket')
 const UppySocket = require('../core/UppySocket')
 const Utils = require('../core/Utils')
 const Utils = require('../core/Utils')
 
 
@@ -176,7 +177,7 @@ module.exports = class XHRUpload extends Plugin {
   }
   }
 
 
   selectForUpload (files) {
   selectForUpload (files) {
-    return Promise.all(files.map((file, i) => {
+    return settle(files.map((file, i) => {
       const current = parseInt(i, 10) + 1
       const current = parseInt(i, 10) + 1
       const total = files.length
       const total = files.length