Pacote `Types` da Azion
O pacote Types fornece tipos globais TypeScript que são usados em toda a plataforma da Azion, garantindo consistência e reduzindo redundância em toda a base de código.
Saiba mais sobre as Azion LibrariesUso
Defina metadados
A interface Metadata
fornece uma maneira estruturada de representar metadados de requisições, incluindo informações de GeoIP, detalhes de endereço remoto e dados de servidor/TLS.
Exemplo em TypeScript:
import { Metadata } from 'azion/types';
const requestMetadata: Metadata = { geoip_asn: '12345', geoip_city: 'Sao Paulo', geoip_city_continent_code: 'SA', geoip_city_country_code: 'BR', geoip_city_country_name: 'Brazil', geoip_continent_code: 'SA', geoip_country_code: 'BR', geoip_country_name: 'Brazil', geoip_region: 'SP', geoip_region_name: 'Sao Paulo', remote_addr: '192.0.2.1', remote_port: '443', remote_user: 'user', server_protocol: 'HTTP/1.1', ssl_cipher: 'ECDHE-RSA-AES128-GCM-SHA256', ssl_protocol: 'TLSv1.2',};
Trabalhe com FetchEvent
A interface FetchEvent
estende a interface padrão Event
para incluir propriedades de requisição e metadados, fornecendo um contexto completo para lidar com operações de fetch no ambiente da Azion.
Exemplo em TypeScript:
import { FetchEvent, Metadata } from 'azion/types';
addEventListener('fetch', (event: FetchEvent) => { const { request } = event; const metadata: Metadata = request.metadata;
console.log('Request URL:', request.url); console.log('Client IP:', metadata.remote_addr); console.log('GeoIP City:', metadata.geoip_city);
event.respondWith(fetch(request));});
Trabalhe com FirewallEvent
A interface FirewallEvent
fornece métodos adicionais específicos para eventos de firewall, permitindo ações como negar requisições, derrubar conexões ou adicionar cabeçalhos a requisições e respostas.
Exemplo em TypeScript:
import { FirewallEvent } from 'azion/types';
addEventListener('firewall', (event: FirewallEvent) => { const { request } = event;
console.log('Request URL:', request.url); console.log('GeoIP Country:', request.metadata.geoip_country_name);
if (request.metadata.geoip_country_code === 'CN') { event.deny(); } else { event.continue(); }});
Contribuidores