put net.js inside a proper module

This commit is contained in:
buzz-lightsnack-2007 2024-04-15 15:16:53 +08:00
parent b5bcb59de2
commit 429e5bd852

View file

@ -11,40 +11,42 @@ Download a file from the network or locally.
@param {boolean} STRICT strictly follow the file type provided @param {boolean} STRICT strictly follow the file type provided
@returns {Promise} the downloaded file @returns {Promise} the downloaded file
*/ */
export async function download(URL, TYPE, VERIFY_ONLY = false, STRICT = false) { export default class net {
const texts = (await import(chrome.runtime.getURL(`gui/scripts/read.js`))) static async download(URL, TYPE, VERIFY_ONLY = false, STRICT = false) {
.default; const texts = (await import(chrome.runtime.getURL(`gui/scripts/read.js`)))
const alerts = (await import(chrome.runtime.getURL(`gui/scripts/alerts.js`))).default; .default;
const alerts = (await import(chrome.runtime.getURL(`gui/scripts/alerts.js`))).default;
let CONNECT, DATA; let CONNECT, DATA;
try { try {
CONNECT = await fetch(URL); CONNECT = await fetch(URL);
if (CONNECT.ok && !VERIFY_ONLY) { if (CONNECT.ok && !VERIFY_ONLY) {
DATA = await CONNECT.text(); DATA = await CONNECT.text();
if ( if (
TYPE TYPE
? TYPE.toLowerCase().includes(`json`) || TYPE.toLowerCase().includes(`dictionary`) ? TYPE.toLowerCase().includes(`json`) || TYPE.toLowerCase().includes(`dictionary`)
: false : false
) { ) {
try { try {
DATA = JSON.parse(DATA); DATA = JSON.parse(DATA);
// When not in JSON, run this. // When not in JSON, run this.
} catch(err) { } catch(err) {
if (STRICT) { if (STRICT) {
// Should not allow the data to be returned since it's not correct. // Should not allow the data to be returned since it's not correct.
DATA = null; DATA = null;
throw new TypeError(texts.localized(`error_msg_notJSON`, false)); throw new TypeError(texts.localized(`error_msg_notJSON`, false));
} else {alerts.warn(texts.localized(`error_msg_notJSON`, false));} } else {alerts.warn(texts.localized(`error_msg_notJSON`, false));}
};
}; };
}; }
} catch(err) {
throw err;
} }
} catch(err) {
throw err;
}
// Return the filter. // Return the filter.
return VERIFY_ONLY ? CONNECT.ok : DATA; return VERIFY_ONLY ? CONNECT.ok : DATA;
}
} }