Sha256: 58d5b699c45e3455c781818007bc496514e17ec5353a6016f0ca6bac7c813263
Contents?: true
Size: 1.23 KB
Versions: 39
Compression:
Stored size: 1.23 KB
Contents
import { FileChecksum } from "./file_checksum" import { BlobRecord } from "./blob_record" import { BlobUpload } from "./blob_upload" let id = 0 export class DirectUpload { constructor(file, url, delegate, customHeaders = {}) { this.id = ++id this.file = file this.url = url this.delegate = delegate this.customHeaders = customHeaders } create(callback) { FileChecksum.create(this.file, (error, checksum) => { if (error) { callback(error) return } const blob = new BlobRecord(this.file, checksum, this.url, this.customHeaders) notify(this.delegate, "directUploadWillCreateBlobWithXHR", blob.xhr) blob.create(error => { if (error) { callback(error) } else { const upload = new BlobUpload(blob) notify(this.delegate, "directUploadWillStoreFileWithXHR", upload.xhr) upload.create(error => { if (error) { callback(error) } else { callback(null, blob.toJSON()) } }) } }) }) } } function notify(object, methodName, ...messages) { if (object && typeof object[methodName] == "function") { return object[methodName](...messages) } }
Version data entries
39 entries across 39 versions & 5 rubygems