userscript-utils
code:import-external-js.js
/**
* @module importExternalJs MIT License Copyright (c) 2020 ci7lus
* @param {string} url
* @return {Promise<void>}
*/
export const importExternalJs = async (url) =>
new Promise((res, rej) => {
if (document.querySelector(script[src="${url}"])) res()
const script = document.createElement("script")
script.src = url
script.addEventListener("load", res)
script.addEventListener("error", rej)
document.body.appendChild(script)
})
code:import-style.js
/**
* @module importStyle MIT License Copyright (c) 2020 ci7lus
* @param {string} url
* @return {Promise<void>}
*/
export const importStyle = async (url) => {
if (document.querySelector(script[src*="${url}"])) return
const style = document.createElement("style")
if (url.startsWith("http")) {
style.innerText = @import "${url}";
} else {
try {
const r = await fetch(url)
style.innerText = await r.text()
} catch (error) {
style.innerText = @import "${url}";
}
}
document.body.appendChild(style)
}