info
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
import createUploaderProviderInstance from './provider'
|
||||
|
||||
class Uploader {
|
||||
constructor(props) {
|
||||
props = Object.assign({
|
||||
provider: 'internal'
|
||||
}, props)
|
||||
|
||||
this.uploaderInstance = createUploaderProviderInstance(props.provider)
|
||||
this.imageLibraryProvider = props.imageLibraryProvider
|
||||
|
||||
this.callbacks = {}
|
||||
this.waitUploadFiles = []
|
||||
|
||||
this.uploaderInstance.on('progress', (data) => {
|
||||
this.emit('progress', data)
|
||||
})
|
||||
this.uploaderInstance.on('success', (data) => {
|
||||
this.emit('success', data)
|
||||
})
|
||||
this.uploaderInstance.on('error', (data) => {
|
||||
this.emit('error', data)
|
||||
})
|
||||
}
|
||||
|
||||
on (event, callback) {
|
||||
this.callbacks[event] = callback
|
||||
}
|
||||
|
||||
emit (event, data) {
|
||||
if (this.callbacks[event]) {
|
||||
this.callbacks[event](data)
|
||||
}
|
||||
}
|
||||
|
||||
async add (file) {
|
||||
if (file instanceof Array) {
|
||||
const files = await this.normalizeFiles(file)
|
||||
this.waitUploadFiles = this.waitUploadFiles.concat(files)
|
||||
} else {
|
||||
this.waitUploadFiles.push(
|
||||
await this.normalizeFiles([file])
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
async upload () {
|
||||
return this.uploaderInstance.upload(this.waitUploadFiles)
|
||||
}
|
||||
|
||||
async cloudUpload () {
|
||||
return this.uploaderInstance.cloudUpload(this.waitUploadFiles, {
|
||||
imageLibraryProvider: this.imageLibraryProvider
|
||||
})
|
||||
}
|
||||
|
||||
normalizeFiles (files) {
|
||||
return Promise.resolve(files)
|
||||
}
|
||||
}
|
||||
|
||||
export default Uploader
|
||||
Reference in New Issue
Block a user