1 | import { parse } from './id3Tag.js';
|
2 | import { BrowserFileReader } from './browserFileReader.js';
|
3 | import { RemoteReader } from './remoteReader.js';
|
4 | const SUPPORTS_FILE = typeof window !== 'undefined' &&
|
5 | 'File' in window &&
|
6 | 'FileReader' in window &&
|
7 | typeof ArrayBuffer !== 'undefined';
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 | export async function fromReader(reader) {
|
14 | await reader.open();
|
15 | const tags = await parse(reader);
|
16 | await reader.close();
|
17 | return tags;
|
18 | }
|
19 |
|
20 |
|
21 |
|
22 |
|
23 |
|
24 | export async function fromPath(path) {
|
25 | const mod = await import('./localReader.js');
|
26 | return fromReader(new mod.LocalReader(path));
|
27 | }
|
28 |
|
29 |
|
30 |
|
31 |
|
32 |
|
33 | export function fromUrl(url) {
|
34 | return fromReader(new RemoteReader(url));
|
35 | }
|
36 |
|
37 |
|
38 |
|
39 |
|
40 |
|
41 | export function fromFile(file) {
|
42 | if (!SUPPORTS_FILE) {
|
43 | throw new Error('Browser does not have support for the File API and/or ' + 'ArrayBuffers');
|
44 | }
|
45 | return fromReader(new BrowserFileReader(file));
|
46 | }
|