1 | import typeson from './typeson.js';
|
2 | const { TypesonPromise, toStringTag } = typeson;
|
3 | const blob = {
|
4 | blob: {
|
5 | test(x) { return toStringTag(x) === 'Blob'; },
|
6 | replace(b) {
|
7 | return this.replaceAsync(b);
|
8 | },
|
9 | revive({ type, buffer }) {
|
10 | return new Blob([buffer], { type });
|
11 | },
|
12 | replaceAsync(b) {
|
13 | return new TypesonPromise((resolve, reject) => {
|
14 | const reader = new FileReader();
|
15 | reader.addEventListener('load', () => {
|
16 | resolve({
|
17 | type: b.type,
|
18 | buffer: reader.result
|
19 | });
|
20 | });
|
21 | reader.addEventListener('error', () => {
|
22 | reject(reader.error);
|
23 | });
|
24 | reader.readAsArrayBuffer(b);
|
25 | });
|
26 | }
|
27 | }
|
28 | };
|
29 | export default blob;
|
30 |
|
\ | No newline at end of file |