1 | import typeson from './typeson.js'
|
2 | const { toStringTag } = typeson
|
3 | import file from './file.js';
|
4 |
|
5 | const filelist = {
|
6 | file: file.file,
|
7 | filelist: {
|
8 | test(x) { return toStringTag(x) === 'FileList'; },
|
9 | replace(fl) {
|
10 | const arr = [];
|
11 | for (let i = 0; i < fl.length; i++) {
|
12 | arr[i] = fl.item(i);
|
13 | }
|
14 | return arr;
|
15 | },
|
16 | revive(o) {
|
17 | return new FileList(o);
|
18 | }
|
19 | }
|
20 | };
|
21 |
|
22 |
|
23 |
|
24 |
|
25 | export class FileList {
|
26 | #files;
|
27 | #length;
|
28 |
|
29 |
|
30 | constructor() {
|
31 | this.#files = arguments[0];
|
32 | this.#length = this.#files.length;
|
33 | }
|
34 |
|
35 | |
36 |
|
37 |
|
38 |
|
39 | item(index) { return this.#files[index] }
|
40 |
|
41 |
|
42 | get length() { return this.#length }
|
43 |
|
44 |
|
45 | [Symbol.toStringTag] = 'FileList'
|
46 | }
|
47 |
|
48 | export default filelist;
|