Como resolver APIs do Node.js por meio de polyfills
Através da Azion CLI, você pode inicializar uma aplicação baseada em templates ou vincular um projeto existente. A lista de web frameworks inclui Next.js, React, Vue, Angular, Astro, JavaScript e outros. Esses frameworks JavaScript são executados no edge da Azion, em cima do Azion Runtime.
Os projetos com esses frameworks geralmente fazem uso de APIs de Node.js. Através do processo de build da Azion, realizado pelo Azion Bundler, essas APIs são resolvidas através do uso de polyfills.
Este guia mostrará como usar a API Buffer do Node.js através de polyfills em um projeto JavaScript na Azion usando a Azion CLI e o Azion Bundler.
Pré-requisitos
Antes de começar, você deve ter:
- Uma conta na plataforma da Azion com o módulo Edge Functions habilitado.
- A versão mais recente da Azion CLI instalada.
- Um editor de código.
- Acesso ao terminal.
- Node.js ≥ 18 instalado.
Inicialize um projeto JavaScript
- No terminal, inicialize o projeto:
azion init
- Digite o nome
polyfills-guide
:
Your application's name: (glorious-curiosity) polyfills-guide
- Escolha o template de JavaScript:
? Choose a preset: [Use arrows to move, type to filter] Angular Astro Docusaurus Eleventy Emscripten Gatsby Hexo Hono Hugo> Javascript Jekyll ...
- Escolha o template
Hello World
:
? Choose a template: [Use arrows to move, type to filter] Azion Edge SQL Drizzle + Neon Sample Drizzle + TiDB Sample Drizzle + Turso Sample Edge Function GitHub AutoDeploy Fauna DB Boilerplate> Hello World HTMX Boilerplate Simple Javascript Router Node ...
-
Digite
y
para iniciar um servidor de desenvolvimento local. -
Digite
y
para instalar as dependências do projeto. -
Acesse a porta que foi retornada no terminal. Exemplo:
[Azion Bundler] [Server] › ✔ success Function running on port 0.0.0.0:3333, url: http://localhost:3333
-
Retorne ao terminal e encerre o processo.
-
Acesse seu projeto:
cd polyfills-guide
- Abra o arquivo
azion.config.js
. Você verá algo semelhante a isto:
import { defineConfig } from 'azion';
export default defineConfig({ build: { entry: 'main.js', preset: { name: 'javascript', }, },});
Este é o arquivo onde você pode adicionar configurações específicas para o seu projeto. Por exemplo, a propriedade polyfills
pode ser definida como true
ou false
para controlar se os polyfills devem ou não ser permitidos:
import { defineConfig } from 'azion';
export default defineConfig({ build: { entry: 'main.js', preset: { name: 'javascript', }, polyfills: true, // permite usar polyfills },});
Em nosso exemplo, você pode deixar o arquivo como está. Os polyfills são permitidos por padrão.
- Após aplicar estas configurações, você pode importar as APIs necessárias para o seu projeto. Neste exemplo, estamos usando a API Buffer do Node.js:
Dentro do arquivo main.js:
// Importa a classe Buffer do módulo 'buffer' no Node.jsimport { Buffer } from "node:buffer";
const main = async (event) => { // Cria um buffer a partir da string "Hello Edge!" com codificação UTF-8 const helloBuffer = Buffer.from("Hello Edge!", "utf8");
// Registra o conteúdo do buffer como uma string hexadecimal console.log(helloBuffer.toString("hex")); // Saída esperada: 48656c6c6f204564676521
// Registra o conteúdo do buffer como uma string base64 console.log(helloBuffer.toString("base64")); // Saída esperada: SGVsbG8gRWRnZSE=
// Sobrescreve parte do buffer com a string "World" no deslocamento e comprimento especificados helloBuffer.write("World", 6, 5, "utf8");
// Registra o conteúdo atualizado do buffer como uma string console.log(helloBuffer.toString()); // Saída esperada: Hello World!
// Retorna o conteúdo do buffer como uma resposta com um status 200 return new Response(helloBuffer.toString(), { status: 200 });};
export default main;
- Execute o projeto localmente rodando:
azion dev
Agora você pode verificar os logs no terminal e ver a API Buffer funcionando através de polyfills.
Contribuidores