# Pacote `Utils` da Azion

import DocButton from '~/components/webkit/DocButton.vue';

O pacote **Azion Utils** fornece um conjunto de funções utilitárias projetadas para simplificar tarefas comuns ao trabalhar com o Functions. Esses utilitários abrangem tarefas como roteamento para Single-Page Applications (SPA) e Multi-Page Applications (MPA), e também o parse e debug de requisições recebidas.

<DocButton href="/pt-br/documentacao/produtos/azion-lib/visao-geral" label="Saiba mais sobre as Azion Libraries" kind="secondary" size="medium" />

---

## Uso

### mountSPA

A função `mountSPA` está projetada para processar requisições para uma Single-Page Application (SPA) que está sendo computada no edge de uma Rede de Distribuição de Conteúdo (CDN). Ela determina se a requisição recebida é para um recurso estático ou uma rota de aplicação e, em seguida, monta a URL de requisição apropriada para buscar o recurso necessário.

Exemplo:

```typescript
import { mountSPA } from 'azion/utils';

const myApp: Response = await mountSPA('https://example.com/');
console.log(myApp);
// Fetches: file:///index.html
// Response object representing the content of index.html
```

### mountMPA

A função `mountMPA` lida com requisições para Multiple-Page Applications (MPA) no edge. Ela processa a URL de requisição recebida, constrói o `path` adequado e busca a resposta correspondente do servidor de origem ou do cache.

**Exemplo em TypeScript:**

```typescript
import { mountMPA } from 'azion/utils';

const myApp: Response = await mountMPA('https://example.com/about');
console.log(myApp);
// Fetches: file:///about/index.html
// Response object representing the content of about/index.html
```

### parseRequest

A função `parseRequest` é projetada para analisar e registrar os detalhes de uma requisição recebida. Ela extrai informações essenciais como cabeçalhos, cookies, corpo e dados do cliente da requisição recebida, fornecendo um objeto estruturado com todas essas informações para processamento ou registro posteriores.

**Exemplo em TypeScript:**

```typescript
import { parseRequest } from 'azion/utils';
import type { ParsedRequest } from 'azion/utils';

const parsedRequest: ParsedRequest = await parseRequest(event);
console.log(parsedRequest);
```