clapper / src /services /plugins /fetchAndRun.ts
jbilcke-hf's picture
jbilcke-hf HF staff
add linter and prettifier
c1f12bf
raw
history blame
No virus
769 Bytes
/**
* Fetch and execute arbitrary code
*
* Needless to say, this isn't safe (a plugin could steal credentials)
* some evil people might lure users into installing evil plugins
*
* we are probably going to want to have some kind of validation process,
* to "certifiate" plugins, although this could be difficult to do if they are minified and/or obfuscated
* @param jsCodeUrl
* @returns
*/
export async function fetchAndRun(jsCodeUrl: string) {
const res = await fetch(jsCodeUrl)
if (!res.ok) {
return
}
const payload = await res.blob()
const objectURL = URL.createObjectURL(payload)
const sc = document.createElement('script')
sc.setAttribute('src', objectURL)
sc.setAttribute('type', 'text/javascript')
document.head.appendChild(sc)
}