1 | const INSTALLED = [];
|
2 | function autoDetectResource(source, options) {
|
3 | if (!source) {
|
4 | return null;
|
5 | }
|
6 | let extension = "";
|
7 | if (typeof source === "string") {
|
8 | const result = /\.(\w{3,4})(?:$|\?|#)/i.exec(source);
|
9 | if (result) {
|
10 | extension = result[1].toLowerCase();
|
11 | }
|
12 | }
|
13 | for (let i = INSTALLED.length - 1; i >= 0; --i) {
|
14 | const ResourcePlugin = INSTALLED[i];
|
15 | if (ResourcePlugin.test && ResourcePlugin.test(source, extension)) {
|
16 | return new ResourcePlugin(source, options);
|
17 | }
|
18 | }
|
19 | throw new Error("Unrecognized source type to auto-detect Resource");
|
20 | }
|
21 |
|
22 | export { INSTALLED, autoDetectResource };
|
23 |
|