@algonauti/ember-active-storage
Version:
Power your ember.js application with activestorage
54 lines (45 loc) • 1.01 kB
JavaScript
import { Promise as EmberPromise } from 'rsvp';
import FileChecksum from '@algonauti/ember-active-storage/utils/file-checksum';
import { tracked } from '@glimmer/tracking';
export default class Blob {
// Default Values
file = null;
checksum = null;
id = null;
signedId = null;
key = null;
directUploadData = null;
constructor(file, checksum) {
this.file = file;
this.checksum = checksum;
}
// Getters
get name() {
return this.file.name;
}
get type() {
return this.file.type;
}
get size() {
return this.file.size;
}
toString() {
return `Blob: ${this.name} with checksum ${this.checksum}`;
}
slice() {
return this.file.slice();
}
static build(file) {
return new EmberPromise((resolve, reject) => {
FileChecksum.MD5(file).then(
(checksum) => {
const blob = new Blob(file, checksum);
resolve(blob);
},
(error) => {
reject(error);
}
);
});
}
}