Compatibilidade entre o Azion Runtime e Node.js APIs

O módulo vm no Node.js fornece uma maneira de executar código JavaScript dentro de um contexto de máquina virtual. Isso permite que os desenvolvedores executem código em um ambiente isolado, o que pode ser útil para várias aplicações, como executar código gerado pelo usuário, testes ou isolar a execução de código do aplicativo principal.

/**
* An example of using Node.js VM API in an Azion Edge Function.
* Support:
* - Partially supported (Extended by library `vm-browserify`)
* @module runtime-apis/nodejs/vm/main
* @example
* // Execute with Azion Bundler:
* npx edge-functions build
* npx edge-functions dev
*/
import vm from "node:vm";
// Set a global variable because bundler esbuild minify the code and rename the variable.
globalThis.contextVar = "initial value";
/**
* An example of using the Node.js VM API in an Azion Edge Function.
* @param {*} event
* @returns {Promise<Response>}
*/
const main = async (event) => {
const vmResult = vm.runInThisContext(
'globalThis.contextVar = "change by vm";'
);
console.log(
`vmResult: '${vmResult}', globalThis.contextVar: '${globalThis.contextVar}'`
);
return new Response("Done!", { status: 200 });
};
export default main;w

Contribuidores