# xn-fe-tools

<script setup>
import pkg from '../../package.json'
</script>

<p class="package-version">
  当前版本：<Badge type="tip" :text="`v${pkg.version}`" />
</p>

以下内容为当前 npm 包版本提供的工具概览。

## [toAwaitFetch](/tools/toAwaitFetch)

强大的 HTTP 请求工具，支持链式调用与解构双模式，内置错误处理、重试、超时与全局/单次配置。

特性速览：

- 双模式：链式 & 解构 `[data, error, success]`
- 完整错误处理：HTTP / 业务 / 网络（支持 suppressError）
- 重试与超时：可配置次数、间隔与自定义重试条件
- 多种请求/响应类型：JSON、FormData、Blob
- 全局配置：baseURL、headers、校验/转换、重试、超时

```typescript
import toAwaitFetch from 'xn-fe-tools'

interface User {
  id: number
  name: string
}

const fetchInstance = createInstance()

// 解构使用
const [data, error, success] = await fetchInstance.sendGet<User[]>('/api/users')

// 链式调用
await fetchInstance
  .sendGet<User[]>('/api/users')
  .then(data => console.log(data))
  .catchHttp(error => console.error(error))
```

## 其他工具

### [toSentrySetup](/tools/toSentrySetup)

Sentry 统一初始化工具集，支持 Vue 3、Vue 2、React 和纯浏览器四个框架入口。通过 sub-path exports 实现模块隔离，主包体积不受影响，Sentry SDK 已内置打包无需额外安装。

特性速览：

- 四个框架入口：`vue3` / `vue2` / `react` / `browser`
- 支持 Vue Router / React Router 路由级性能追踪
- 简化配置参数：`enableTracing`、`enableReplay`、`breadcrumbs`
- 返回运行时控制：`captureException`、`captureMessage`、`setUser`
- 重新导出 Sentry 集成函数，支持高级自定义

```ts
import { toVue3SentrySetup } from 'xn-fe-tools/sentry/vue3'

const { isInitialized, captureException } = toVue3SentrySetup({
  dsn: 'https://xxx@sentry.io/xxx',
  app,
  router,
})
```
