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 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 suportada | Acessar o exemplo de código | Apenas AsyncLocalStorage e AsyncResource estão implementadas. |
| fs | 🟡 Parcialmente suportada | Apenas métodos assíncronos (confira a lista abaixo), outros através de polyfills. | |
| module | 🟡 Parcialmente suportada | ||
| process.env | 🟢 Suportada Suporte completo | process.env.VAR_NAME | Outros recursos suportados através de polyfills (confira a tabela abaixo). |
| url | 🟡 Parcialmente 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 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 |