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";
API | Nível de suporte | Exemplo de código | Comentários |
---|---|---|---|
async_hooks | 🟡 Parcialmente suportadaParcialmente suportada | Acessar o exemplo de código | Apenas AsyncLocalStorage e AsyncResource estão implementadas. |
fs | 🟡 Parcialmente suportadaParcialmente suportada | Apenas métodos assíncronos (confira a lista abaixo), outros através de polyfills. | |
module | 🟡 Parcialmente suportadaParcialmente suportada | ||
process.env | 🟢 Suportada Suporte completo | process.env.VAR_NAME | Outros recursos suportados através de polyfills (confira a tabela abaixo). |
url | 🟡 Parcialmente suportadaParcialmente suportada | Apenas 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étodo | Parâmetros | Descrição |
---|---|---|
fs.lstat | path , options (opcional), callback | Obtém informações sobre o arquivo ou diretório. |
fs.mkdir | path , options (opcional), callback | Cria um diretório. |
fs.stat | path , options (opcional), callback | Obtém informações sobre o arquivo ou diretório. |
fs.writeFile | file , data , options (opcional), callback | Grava dados em um arquivo. |
fs.readFile | path , options (opcional), callback | Lê o conteúdo de um arquivo. |
fs.readdir | path , options (opcional), callback | Lê o conteúdo de um diretório. |
fs.writeFileSync | file , data , options (opcional) | Grava dados em um arquivo de forma síncrona. |
fs.rename | oldPath , newPath , callback | Renomeia um arquivo ou diretório. |
fs.realpath | path , options (opcional), callback | Resolve o caminho absoluto de um arquivo. |
fs.copyFile | src , dest , mode (opcional), callback | Copia um arquivo. |
fs.cp | src , dest , options (opcional), callback | Copia arquivos e diretórios. |
fs.read | fd , buffer , offset , length , position , callback | Lê dados de um arquivo. |
fs.read | fd , buffer , options (opcional), callback | Lê dados de um arquivo. |
fs.read | fd , options (opcional), callback | Lê dados de um arquivo. |
fs.rmdir | path , options (opcional), callback | Remove um diretório. |
fs.utimes | path , atime , mtime , callback | Atualiza 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.
Module | Status |
---|---|
_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