open-index/open-npm huggingface dataset:
npm package: @ftdata/f-tokens
Description: This example code is bare-bones to show you what this framework can do. If you have the style-dictionary module installed globally, you can `cd` into this directory and run:
Latest version: 0.0.1

# Basic Style Dictionary

This example code is bare-bones to show you what this framework can do. If you have the style-dictionary module installed globally, you can `cd` into this directory and run:

```bash
npx style-dictionary build
```

Otherwise, install Style Dictionary locally for this project first, `cd` into this directory and run:

```bash
npm init -y && npm install style-dictionary
```

and then run the above command.
npm package: @ftdata/http
Description: ![cover](./cover-http.svg) <br>
Latest version: 0.0.3

# @ftdata/http

![cover](./cover-http.svg)
<br>

![Axios](https://img.shields.io/badge/axios-5A29E4?style=for-the-badge&logo=axios&logoColor=white) ![TypeScript](https://img.shields.io/badge/TypeScript-3178C6?style=for-the-badge&logo=typescript&logoColor=white) ![Vitest](https://img.shields.io/badge/Vitest-6E9F18?style=for-the-badge&logo=vitest&logoColor=white)
<br>

Pacote interno que fornece um cliente HTTP baseado em Axios, com suporte a autenticação automática, refresh de tokens e validação de URLs. Usado para consumir APIs internas de forma consistente.

## Funcionalidades

- Cliente HTTP baseado em Axios
- Gerenciamento automático de tokens e refresh
- Suporte para timeout customizado
- Validação de URLs

## Executando localmente

```bash
pnpm install
pnpm build  # ← builda a lib
pnpm dev    # ← Observa mudanças e builda em tempo real.
```

## Como usar

```ts
// 1. Importe a biblioteca e crie uma nova instância.
// exemplo: ./src/libs/http.ts
import { initInstance } from '@ftdata/http';

const BASE_URL = 'https://mapageral.ops.fulltrackapp.com';

const httpInstance = initInstance({
  baseUrl: BASE_URL,
});

export default httpInstance;

// 2. Importe as instancias e faça requisições.
import httpInstance from './libs/http';
httpInstance.get('/api/endpoint');
```

### Funções e Serviços

| Nome                  | Descrição                                                   |
| --------------------- | ----------------------------------------------------------- |
| `instance`            | Instância principal para chamadas HTTP (axios customizado). |
| `getInstance`         | Getter da instancia iniciada.                               |
| `initInstance`        | Inicia uma nova instância do cliente HTTP com axios.        |
| `getTokenFromStorage` | Recupera o token salvo no storage local.                    |
| `getTokenFulltrack`   | Obtém o token do sistema Fulltrack.                         |
| `handleTokenRefresh`  | Gerencia o fluxo de atualização do token.                   |
| `redirectToDashboard` | Redireciona o usuário para o dashboard principal.           |
| `setTokenToStorage`   | Salva o token no storage local.                             |

---

### Constantes

| Nome        | Descrição                                                                                           |
| ----------- | --------------------------------------------------------------------------------------------------- |
| `BASE_URL`  | URL base para as requisições HTTP.                                                                  |
| `TOKEN_KEY` | Chave usada para armazenar o token.                                                                 |
| `emitter`   | Event emitter para eventos globais HTTP, observa refresh de token, cria mensagens quando é trocado. |

---

### Tipos

| Nome        | Descrição                               |
| ----------- | --------------------------------------- |
| `TokenType` | Tipo para estrutura do token utilizado. |