Skip to content

Commit f654911

Browse files
committed
chore: add cursor rules
1 parent 0e1781d commit f654911

File tree

5 files changed

+197
-0
lines changed

5 files changed

+197
-0
lines changed

.cursor/rules/code-conventions.mdc

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
---
2+
description:
3+
globs:
4+
alwaysApply: false
5+
---
6+
# 代码规范
7+
8+
Utopia-Utils 代码库遵循以下编码规范:
9+
10+
## TypeScript
11+
12+
- 所有代码使用 TypeScript 编写,具有完整的类型定义
13+
- 函数应该提供准确的入参和返回值类型
14+
- 使用类型安全的设计模式,如定义字典工具[defineDictionary](mdc:packages/core/src/defineDictionary.ts)
15+
16+
## 文件结构
17+
18+
- 每个功能独立为单个文件实现
19+
- 每个功能都有对应的单元测试文件,命名为 `xxx.test.ts`
20+
- 相关功能按包组织,如树结构相关放在 `packages/tree` 中
21+
22+
## 导出规范
23+
24+
- 包级别入口文件 `index.ts` 统一导出所有功能
25+
- 函数使用命名导出方式导出,不使用默认导出
26+
- 第三方库功能在 `vendor.ts` 中重新导出
27+
28+
## 注释规范
29+
30+
- 函数应该有清晰的 JSDoc 注释,包括功能描述、参数和返回值
31+
- 复杂逻辑应该有适当的注释说明
32+
- js、ts 文件中的注释应使用多行注释形式(以 `/*` 开始,以 `*/` 结束)
33+
34+
## 测试规范
35+
36+
- 每个功能都有对应的单元测试
37+
- 测试覆盖常见使用场景和边界情况
38+
- 测试文件与实现文件放在同一目录下

.cursor/rules/core-utils.mdc

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
---
2+
description:
3+
globs:
4+
alwaysApply: false
5+
---
6+
# 核心工具函数
7+
8+
[packages/core/src/index.ts](mdc:packages/core/src/index.ts) 是主要工具函数的入口。以下是主要功能分类:
9+
10+
## 字符串处理
11+
12+
- [packages/core/src/randomString.ts](mdc:packages/core/src/randomString.ts) - 生成随机字符串
13+
- [packages/core/src/capitalize.ts](mdc:packages/core/src/capitalize.ts) - 首字母大写
14+
- [packages/core/src/escapeStringRegexp.ts](mdc:packages/core/src/escapeStringRegexp.ts) - 转义正则表达式特殊字符
15+
- [packages/core/src/stringDesensitize.ts](mdc:packages/core/src/stringDesensitize.ts) - 字符串脱敏(姓名、手机号、身份证等)
16+
- [packages/core/src/stringFormatter.ts](mdc:packages/core/src/stringFormatter.ts) - 字符串格式化(银行卡、手机号等)
17+
18+
## 数组处理
19+
20+
- [packages/core/src/unique.ts](mdc:packages/core/src/unique.ts) - 数组去重
21+
- [packages/core/src/uniqueWith.ts](mdc:packages/core/src/uniqueWith.ts) - 自定义比较函数的数组去重
22+
- [packages/core/src/union.ts](mdc:packages/core/src/union.ts) - 数组并集
23+
- [packages/core/src/intersection.ts](mdc:packages/core/src/intersection.ts) - 数组交集
24+
- [packages/core/src/sort.ts](mdc:packages/core/src/sort.ts) - 数组排序
25+
- [packages/core/src/groupBy.ts](mdc:packages/core/src/groupBy.ts) - 数组分组
26+
- [packages/core/src/arrLast.ts](mdc:packages/core/src/arrLast.ts) - 获取数组最后一个元素
27+
28+
## 对象处理
29+
30+
- [packages/core/src/omit.ts](mdc:packages/core/src/omit.ts) - 删除对象属性
31+
- [packages/core/src/pick.ts](mdc:packages/core/src/pick.ts) - 提取对象属性
32+
- [packages/core/src/objectKeys.ts](mdc:packages/core/src/objectKeys.ts) - 带类型的 Object.keys()
33+
- [packages/core/src/deepClone.ts](mdc:packages/core/src/deepClone.ts) - 深拷贝
34+
- [packages/core/src/deepEqual.ts](mdc:packages/core/src/deepEqual.ts) - 深比较
35+
- [packages/core/src/doPathValue.ts](mdc:packages/core/src/doPathValue.ts) - 通过路径获取/设置对象的值
36+
37+
## 函数式编程
38+
39+
- [packages/core/src/compose.ts](mdc:packages/core/src/compose.ts) - 函数组合(从右到左)
40+
- [packages/core/src/pipe.ts](mdc:packages/core/src/pipe.ts) - 函数组合(从左到右)
41+
- [packages/core/src/memoize.ts](mdc:packages/core/src/memoize.ts) - 函数结果缓存
42+
- [packages/core/src/once.ts](mdc:packages/core/src/once.ts) - 限制函数只能调用一次
43+
- [packages/core/src/callLimit.ts](mdc:packages/core/src/callLimit.ts) - 限制函数调用次数
44+
- [packages/core/src/retry.ts](mdc:packages/core/src/retry.ts) - 重试函数
45+
- [packages/core/src/onlyResolvesLast.ts](mdc:packages/core/src/onlyResolvesLast.ts) - 只保留最后一次调用的结果
46+
47+
## 数学计算
48+
49+
- [packages/core/src/randomInt.ts](mdc:packages/core/src/randomInt.ts) - 生成随机整数
50+
- [packages/core/src/math.ts](mdc:packages/core/src/math.ts) - 数学计算(平均值、求和等)
51+
- [packages/core/src/yuanToFen.ts](mdc:packages/core/src/yuanToFen.ts) - 人民币元转分
52+
- [packages/core/src/fenToYuan.ts](mdc:packages/core/src/fenToYuan.ts) - 人民币分转元
53+
- [packages/core/src/yuanFormat.ts](mdc:packages/core/src/yuanFormat.ts) - 人民币格式化
54+
- [packages/core/src/formatNumberThousand.ts](mdc:packages/core/src/formatNumberThousand.ts) - 千分位格式化
55+
56+
## 异步和控制流
57+
58+
- [packages/core/src/sleep.ts](mdc:packages/core/src/sleep.ts) - 等待指定时间
59+
- [packages/core/src/awaitTo.ts](mdc:packages/core/src/awaitTo.ts) - Promise 错误处理包装
60+
- [packages/core/src/createPoll.ts](mdc:packages/core/src/createPoll.ts) - 创建轮询器
61+
- [packages/core/src/createControlledPromise.ts](mdc:packages/core/src/createControlledPromise.ts) - 创建可控 Promise
62+
- [packages/core/src/onTimeout.ts](mdc:packages/core/src/onTimeout.ts) - setTimeout 包装
63+
64+
## 其他工具
65+
66+
- [packages/core/src/defineDictionary.ts](mdc:packages/core/src/defineDictionary.ts) - 定义业务字典
67+
- [packages/core/src/parseQuery.ts](mdc:packages/core/src/parseQuery.ts) - 解析 URL 查询参数
68+
- [packages/core/src/csv.ts](mdc:packages/core/src/csv.ts) - 数组转 CSV
69+
- [packages/core/src/base64ToFile.ts](mdc:packages/core/src/base64ToFile.ts) - Base64 转 File
70+
- [packages/core/src/toBase64.ts](mdc:packages/core/src/toBase64.ts) - File/Blob/URL 转 Base64

.cursor/rules/dom-utils.mdc

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
---
2+
description:
3+
globs:
4+
alwaysApply: false
5+
---
6+
# DOM工具函数
7+
8+
[packages/dom/src/index.ts](mdc:packages/dom/src/index.ts) 提供了一系列操作DOM和浏览器环境的工具函数。
9+
10+
## DOM操作
11+
12+
- [packages/dom/src/waitForSelector.ts](mdc:packages/dom/src/waitForSelector.ts) - 等待选择器匹配的元素出现
13+
- [packages/dom/src/domContains.ts](mdc:packages/dom/src/domContains.ts) - 判断DOM元素是否包含另一个元素
14+
- [packages/dom/src/setCssVar.ts](mdc:packages/dom/src/setCssVar.ts) - 设置CSS变量
15+
- [packages/dom/src/dynamicCSS.ts](mdc:packages/dom/src/dynamicCSS.ts) - 动态注入CSS样式
16+
17+
## 资源加载
18+
19+
- [packages/dom/src/loadScript.ts](mdc:packages/dom/src/loadScript.ts) - 动态加载脚本
20+
- [packages/dom/src/loadCSS.ts](mdc:packages/dom/src/loadCSS.ts) - 动态加载CSS
21+
22+
## 环境检测
23+
24+
- [packages/dom/src/canUseDom.ts](mdc:packages/dom/src/canUseDom.ts) - 判断是否可以使用DOM
25+
- [packages/dom/src/isAlipay.ts](mdc:packages/dom/src/isAlipay.ts) - 判断是否是支付宝浏览器
26+
- [packages/dom/src/isAndroid.ts](mdc:packages/dom/src/isAndroid.ts) - 判断是否是Android系统
27+
- [packages/dom/src/isIOS.ts](mdc:packages/dom/src/isIOS.ts) - 判断是否是iOS系统
28+
- [packages/dom/src/isWeixin.ts](mdc:packages/dom/src/isWeixin.ts) - 判断是否是微信浏览器
29+
- [packages/dom/src/isMobile.ts](mdc:packages/dom/src/isMobile.ts) - 判断是否是移动端浏览器
30+
- [packages/dom/src/webp.ts](mdc:packages/dom/src/webp.ts) - 检测浏览器是否支持webp
31+
32+
## 交互组件
33+
34+
- [packages/dom/src/panzoom/core.ts](mdc:packages/dom/src/panzoom/core.ts) - 为元素添加拖拽缩放功能
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
---
2+
description:
3+
globs:
4+
alwaysApply: false
5+
---
6+
# 项目结构概述
7+
8+
Utopia-Utils 是一个实用工具集合库,采用单体仓库(monorepo)结构组织。主要包含以下几个包:
9+
10+
## 核心包
11+
12+
- [packages/core/src/index.ts](mdc:packages/core/src/index.ts) - 核心工具函数的主入口
13+
- [packages/share/](mdc:packages/share) - 共享工具和类型判断函数
14+
- [packages/tree/src/index.ts](mdc:packages/tree/src/index.ts) - 树结构相关工具函数的主入口
15+
- [packages/dom/src/index.ts](mdc:packages/dom/src/index.ts) - DOM 操作相关工具函数的主入口
16+
- [packages/message/](mdc:packages/message) - 消息通知相关功能
17+
- [packages/vueuse/](mdc:packages/vueuse) - Vue 相关实用工具集
18+
19+
## 项目配置
20+
21+
- [package.json](mdc:package.json) - 项目主配置文件
22+
- [tsconfig.json](mdc:tsconfig.json) - TypeScript 配置
23+
- [pnpm-workspace.yaml](mdc:pnpm-workspace.yaml) - PNPM 工作区配置
24+
25+
## 示例和测试
26+
27+
- [example/](mdc:example) - 使用示例项目

.cursor/rules/tree-utils.mdc

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
---
2+
description:
3+
globs:
4+
alwaysApply: false
5+
---
6+
# 树结构工具函数
7+
8+
[packages/tree/src/index.ts](mdc:packages/tree/src/index.ts) 提供了一系列处理树状结构数据的工具函数。
9+
10+
## 树遍历
11+
12+
- [packages/tree/src/breadthFirstTraverse.ts](mdc:packages/tree/src/breadthFirstTraverse.ts) - 广度优先遍历
13+
- [packages/tree/src/deepFirstTraverse.ts](mdc:packages/tree/src/deepFirstTraverse.ts) - 深度优先遍历
14+
15+
## 树节点操作
16+
17+
- [packages/tree/src/treeFindNode.ts](mdc:packages/tree/src/treeFindNode.ts) - 查找符合条件的节点
18+
- [packages/tree/src/treeFindPath.ts](mdc:packages/tree/src/treeFindPath.ts) - 查找节点路径
19+
- [packages/tree/src/treeFilterNode.ts](mdc:packages/tree/src/treeFilterNode.ts) - 过滤树节点
20+
21+
## 树结构转换
22+
23+
- [packages/tree/src/buildTreeFromList.ts](mdc:packages/tree/src/buildTreeFromList.ts) - 列表结构转树结构
24+
- [packages/tree/src/flattenTree.ts](mdc:packages/tree/src/flattenTree.ts) - 树结构转列表结构
25+
26+
## 类型定义
27+
28+
- [packages/tree/src/type.ts](mdc:packages/tree/src/type.ts) - 树相关类型定义

0 commit comments

Comments
 (0)