# xyx-utils 🚀

[![License](https://img.shields.io/github/license/npmrun/xyx-utils)](https://github.com/npmrun/xyx-utils/blob/main/LICENSE)
[![GitHub Release](https://img.shields.io/github/v/release/npmrun/xyx-utils)](https://github.com/npmrun/xyx-utils/releases)

模块化的工具库集合,提供跨平台、多场景的实用功能。

## 功能特性

- **多模块支持**:包含 Core、Node、Vue3 等独立模块
- **现代化构建**:基于 Vite & TypeScript 构建
- **完善测试**:Vitest 单元测试覆盖
- **模块化架构**:使用 PNPM Workspace 管理多包

## 安装

```bash
# 安装核心模块
pnpm add @xyx-utils/core

# 安装Node工具
pnpm add @xyx-utils/node

# 安装Vue3工具
pnpm add @xyx-utils/vue3
```

## 模块列表

| 模块名称   | 描述                  | 文档地址                 |
|------------|-----------------------|--------------------------|
| @xyx-utils/core  | 基础工具函数集合      | [文档](./packages/core)  |
| @xyx-utils/node  | Node.js 运行时工具    | [文档](./packages/node)   |
| @xyx-utils/vue3  | Vue3 组件工具库       | [文档](./packages/vue3)   |
| @xyx-utils/shared| 共享类型定义          | [文档](./packages/shared) |

## 快速开始

```typescript
// 使用核心模块
import { formatDate } from '@xyx-utils/core';

const currentDate = new Date();
const formatted = formatDate(currentDate, 'YYYY-MM-DD');
const obj = { a: 1 };
```

## 开发指南

### 开发新模块

1. **配置路径别名**
   - 在 `packages/.vitepress/config.ts` 添加 `startsDirs` 和 `alias`
   - 更新 `internal/tsconfig/tsconfig.json` 路径别名
   - 修改 `vitest.shared.ts` 测试配置

2. **本地调试**
   ```bash
   # 使用 yalc 进行本地依赖链接
   yalc add @xyx/core
   ```

### 版本管理

使用 Changeset 进行版本控制:
```bash
pnpm changeset:add     # 创建变更集
pnpm changeset:version # 版本升级
pnpm release           # 完整发布流程
```

## 测试

运行指定模块测试:
```bash
pnpm test core
```

查看测试覆盖率:
```bash
pnpm run coverage
```

## 贡献

欢迎通过 Issue 和 PR 参与贡献!请先阅读[贡献指南](./CONTRIBUTING.md)。

## License

MIT © [npmrun](https://github.com/npmrun)

---

📖 完整文档请访问 [项目文档](https://npmrun.github.io/xyx-utils/)