forked from DefinitelyTyped/DefinitelyTyped
-
Notifications
You must be signed in to change notification settings - Fork 0
/
rails__activestorage-tests.ts
56 lines (47 loc) · 1.4 KB
/
rails__activestorage-tests.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import * as ActiveStorage from '@rails/activestorage';
import { FileChecksum } from '@rails/activestorage/src/file_checksum';
import { BlobUpload } from '@rails/activestorage/src/blob_upload';
ActiveStorage.start();
const delegate: ActiveStorage.DirectUploadDelegate = {
directUploadWillCreateBlobWithXHR(xhr) {
console.log(xhr.status);
},
directUploadWillStoreFileWithXHR(xhr) {
console.log(xhr.status);
},
};
const d = new ActiveStorage.DirectUpload(
new File([], 'blank.txt'),
'/rails/active_storage/direct_uploads',
delegate
);
d.create((error, blob) => {
if (error) {
console.log(error.message);
} else {
const { byte_size, checksum, content_type, filename, signed_id } = blob;
console.log({ byte_size, checksum, content_type, filename, signed_id });
}
});
FileChecksum.create(new File([], 'blank.txt'), (error, checksum) => {
if (error) {
console.log(error);
} else {
console.log(checksum);
}
});
const upload = new BlobUpload({
file: new File([], 'blank.txt'),
directUploadData: {
headers: { 'X-CSRF-Token': 'qweasdzxc' },
url: '/rails/active_storage/direct_uploads/xyz'
},
});
upload.xhr.addEventListener('progress', event => console.log(event));
upload.create((error, response) => {
if (error) {
console.log(error);
} else {
console.log(response);
}
});