Browse Source

review: store providers as options

Ifedapo Olarewaju 7 năm trước cách đây
mục cha
commit
34d4557649

+ 4 - 2
src/plugins/Tus.js

@@ -1,6 +1,7 @@
 const Plugin = require('../core/Plugin')
 const tus = require('tus-js-client')
 const UppySocket = require('../core/UppySocket')
+const Provider = require('../server/Provider')
 const {
   emitSocketProgress,
   getSocketHost,
@@ -239,7 +240,8 @@ module.exports = class Tus extends Plugin {
       }
 
       this.uppy.emit('upload-started', file)
-      file.remote.provider.post(
+      const provider = new Provider(this.uppy, file.remote.providerOptions)
+      provider.post(
         file.remote.url,
         Object.assign({}, file.remote.body, {
           endpoint: opts.endpoint,
@@ -250,7 +252,7 @@ module.exports = class Tus extends Plugin {
         })
       ).then((res) => {
         this.uppy.setFileState(file.id, { serverToken: res.token })
-        file = this.getFile(file.id)
+        file = this.uppy.getFile(file.id)
         return file
       })
       .then((file) => {

+ 3 - 1
src/plugins/XHRUpload.js

@@ -2,6 +2,7 @@ const Plugin = require('../core/Plugin')
 const cuid = require('cuid')
 const Translator = require('../core/Translator')
 const UppySocket = require('../core/UppySocket')
+const Provider = require('../server/Provider')
 const {
   emitSocketProgress,
   getSocketHost,
@@ -310,7 +311,8 @@ module.exports = class XHRUpload extends Plugin {
         fields[name] = file.meta[name]
       })
 
-      file.remote.provider.post(
+      const provider = new Provider(this.uppy, file.remote.providerOptions)
+      provider.post(
         file.remote.url,
         Object.assign({}, file.remote.body, {
           endpoint: opts.endpoint,

+ 1 - 1
src/server/RequestClient.js

@@ -64,7 +64,7 @@ module.exports = class RequestClient {
   }
 
   _getUrl (url) {
-    if (url.startsWith('http:') || url.startsWith('https:')) {
+    if (/^https?:/.test(url)) {
       return url
     }
     return `${this.hostname}/${url}`

+ 1 - 1
src/views/ProviderView/index.js

@@ -187,7 +187,7 @@ module.exports = class ProviderView {
         body: {
           fileId: this.plugin.getItemId(file)
         },
-        provider: this.Provider
+        providerOptions: this.Provider.opts
       }
     }