# @polyv/utils

保利威工具库 V3 的聚合包，统一接入所有正式子包。

## 安装

```bash
pnpm add @polyv/utils
```

## 调用

可以从总入口引入全部工具：

```typescript
import { boolToYN, formatDate, sleep } from '@polyv/utils';
```

也可以从子路径引入单个工具包入口：

```typescript
import { boolToYN } from '@polyv/utils/boolean';
import { formatDate } from '@polyv/utils/date';
```

## 子路径入口

每个正式子包都会在聚合包中生成对应入口，例如：

- `@polyv/utils/async`
- `@polyv/utils/ajax`
- `@polyv/utils/array`
- `@polyv/utils/boolean`
- `@polyv/utils/browser`
- `@polyv/utils/color`
- `@polyv/utils/cookie`
- `@polyv/utils/countdown`
- `@polyv/utils/date`
- `@polyv/utils/dom`
- `@polyv/utils/encrypt`
- `@polyv/utils/env`
- `@polyv/utils/event`
- `@polyv/utils/external-link`
- `@polyv/utils/file`
- `@polyv/utils/image`
- `@polyv/utils/json`
- `@polyv/utils/load-script`
- `@polyv/utils/net`
- `@polyv/utils/polling`
- `@polyv/utils/querystring`
- `@polyv/utils/request`
- `@polyv/utils/storage`
- `@polyv/utils/string`
- `@polyv/utils/type`
- `@polyv/utils/ua-info`
- `@polyv/utils/validate`
- `@polyv/utils/virtual-list`

## 更新日志

### 3.3.0

#### array

- 新增 `chunkArray`，用于把数组按固定长度切分为多个分组。

#### encrypt

- 新增导出 `md5` 和 `sha256` 哈希方法。
- 将 MD5 与 SHA256 签名底层依赖改为内联构建，避免小程序构建后 CJS default 导入异常，签名结果保持一致。

#### env

- 新增 `@polyv/utils/env` 子路径，聚合导出 `@polyv/utils-env` 的环境检测能力。
- `env` 新增 `isWebWorkerEnv`，用于判断当前运行环境是否为 Web Worker。
- `env` 新增 `isElectronEnv`，用于判断当前运行环境是否为 Electron。
- `env` 新增 `isServerSideEnv`，用于判断当前运行环境是否为服务端。

#### dom

- `dom` 入口导入兼容服务端渲染环境，避免模块初始化阶段读取浏览器全局对象导致异常。

#### virtual-list

- `virtual-list` 入口导入兼容服务端渲染环境，避免聚合导入时因 DOM 依赖异常。

### 3.2.0

#### ajax

- 新增 `@polyv/utils/ajax` 子路径，聚合导出 `@polyv/utils-ajax` 的 AJAX 请求能力。
- AJAX 相关公开类型使用 `AJAX` 前缀，避免与 request 模块类型重名。

### 3.1.0

#### request

- `IRequestResult` 新增 `getResponseHeaders` 方法，用于获取请求响应头。
- `xhrAdapter` 和 `wxRequestAdapter` 支持通过 `getResponseHeaders` 返回响应头对象，header 名统一转为小写。
