Compatibilidade entre o Azion Runtime e Node.js APIs

Node built-in

A compatibilidade entre o Azion Runtime e Node.js é um trabalho em andamento, mas um conjunto de APIs do Node Runtime já é compatível com o Azion Runtime. A seguinte lista de APIs pode ser importada dentro das edge functions com a sintaxe de importação padrão:

import { API } from "import-origin";
APINível de suporteExemplo de códigoComentários
async_hooks🟡 Parcialmente suportadaParcialmente suportadaAcessar o exemplo de códigoApenas AsyncLocalStorage e AsyncResource estão implementadas.
fs🟡 Parcialmente suportadaParcialmente suportadaApenas métodos assíncronos (confira a lista abaixo), outros através de polyfills.
module🟡 Parcialmente suportadaParcialmente suportada
process.env🟢 Suportada Suporte completoprocess.env.VAR_NAMEOutros recursos suportados através de polyfills (confira a tabela abaixo).
url🟡 Parcialmente suportadaParcialmente suportadaApenas os globais URL e URLSearchParams.

Suporte ao Módulo FileSystem (FS)

O Azion Runtime oferece suporte nativo para o módulo FileSystem (FS), permitindo que você interaja com o sistema de arquivos dentro de suas edge functions.

Async:

MétodoParâmetrosDescrição
fs.lstatpath, options (opcional), callbackObtém informações sobre o arquivo ou diretório.
fs.mkdirpath, options (opcional), callbackCria um diretório.
fs.statpath, options (opcional), callbackObtém informações sobre o arquivo ou diretório.
fs.writeFilefile, data, options (opcional), callbackGrava dados em um arquivo.
fs.readFilepath, options (opcional), callbackLê o conteúdo de um arquivo.
fs.readdirpath, options (opcional), callbackLê o conteúdo de um diretório.
fs.writeFileSyncfile, data, options (opcional)Grava dados em um arquivo de forma síncrona.
fs.renameoldPath, newPath, callbackRenomeia um arquivo ou diretório.
fs.realpathpath, options (opcional), callbackResolve o caminho absoluto de um arquivo.
fs.copyFilesrc, dest, mode (opcional), callbackCopia um arquivo.
fs.cpsrc, dest, options (opcional), callbackCopia arquivos e diretórios.
fs.readfd, buffer, offset, length, position, callbackLê dados de um arquivo.
fs.readfd, buffer, options (opcional), callbackLê dados de um arquivo.
fs.readfd, options (opcional), callbackLê dados de um arquivo.
fs.rmdirpath, options (opcional), callbackRemove um diretório.
fs.utimespath, atime, mtime, callbackAtualiza os tempos de acesso e modificação de um arquivo.

APIs Node suportadas através de polyfills

Um polyfill é um trecho de código, frequentemente usado em JavaScript, que traz novos recursos para ambientes que não possuem essas capacidades. Os polyfills são usados durante o tempo de build e podem ser configurados através do arquivo azion.config.js.

A tabela abaixo contém a compatibilidade dos módulos Node.Js resolvidos com polyfills.

ModuleStatus
_http_agent🟡 Parcialmente suportada
_http_client🟡 Parcialmente suportada
_http_common🟡 Parcialmente suportada
_http_incoming🟡 Parcialmente suportada
_http_outgoing🟡 Parcialmente suportada
_http_server🟡 Parcialmente suportada
_stream_duplex🟡 Parcialmente suportada
_stream_passthrough🟡 Parcialmente suportada
_stream_readable🟡 Parcialmente suportada
_stream_transform🟡 Parcialmente suportada
_stream_wrap🟡 Parcialmente suportada
_stream_writable🟡 Parcialmente suportada
_tls_common🟡 Parcialmente suportada
_tls_wrap🟡 Parcialmente suportada
assert🟡 Parcialmente suportada
assert/strict🟡 Parcialmente suportada
async_hooks🟢 Suportada
buffer🟡 Parcialmente suportada
child_process🟡 Parcialmente suportada
cluster🟢 Suportada
console🟢 Suportada
constants🟢 Suportada
crypto🟡 Parcialmente suportada
dgram🟢 Suportada
diagnostics_channel🟢 Suportada
dns🟢 Suportada
dns/promises🟢 Suportada
domain🟢 Suportada
events🟢 Suportada
fs🟡 Parcialmente suportada
fs/promises🟡 Parcialmente suportada
http🟡 Parcialmente suportada
http2🟡 Parcialmente suportada
https🟡 Parcialmente suportada
inspector🟢 Suportada
inspector/promises🟡 Parcialmente suportada
module🟡 Parcialmente suportada
net🟡 Parcialmente suportada
os🟢 Suportada
path🟢 Suportada
path/posix🟡 Parcialmente suportada
path/win32🟡 Parcialmente suportada
perf_hooks🟢 Suportada
process🟡 Parcialmente suportada
punycode🟡 Parcialmente suportada
querystring🟡 Parcialmente suportada
readline🟢 Suportada
readline/promises🟢 Suportada
repl🟡 Parcialmente suportada
stream🟡 Parcialmente suportada
stream/consumers🟡 Parcialmente suportada
stream/promises🟡 Parcialmente suportada
stream/web🟢 Suportada
string_decoder🟢 Suportada
sys🟡 Parcialmente suportada
timers🟡 Parcialmente suportada
timers/promises🟢 Suportada
tls🟡 Parcialmente suportada
trace_events🟢 Suportada
tty🟢 Suportada
url🟢 Suportada
util🟡 Parcialmente suportada
util/types🟡 Parcialmente suportada
v8🟢 Suportada
vm🟢 Suportada
wasi🟢 Suportada
worker_threads🟡 Parcialmente suportada
zlib🟢 Suportada

Contribuidores