UNPKG

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