Tengo una variable de cadena con algún código que es esencialmente ESModule:
let name = "test_snippet"; let injectedCode = `const callback = (environment, ..._) => { function ${name}() { const global = (0,eval)("this"); global.works = true; console.info("${name} works!"); } const injectedSnippetsList = ["${name}"]; const injectedSnippetsCallbacks = [${name}]; const snippets = {}; for (let e = 0, { length: t} = injectedSnippetsList; e < t; e++) snippets[injectedSnippetsList[e]] = injectedSnippetsCallbacks[e]; for (let [name, ...args] of _) { if (snippets.hasOwnProperty(name)) { try { snippets[name](...args); } catch (error) { console.error(error); } } } }; callback.has = snippet => [ "${name}" ].includes(snippet); export default callback; `; ¿Cómo puedo "compilarlo" en ESModule para llamarlo has por ejemplo? tengo lo siguiente:
async function compileModule(code) { let moduleData = "data:text/javascript;base64," + btoa(code); return await import(moduleData); } pero interpreta moduleData como la ruta del módulo, no como un "contenido", lo que resulta en "no se pudo cargar". ¿Alguna sugerencia?