Skip to content

Conversation

jin-sir
Copy link
Collaborator

@jin-sir jin-sir commented Jun 22, 2025

变更类型

请选择以下选项以描述 PR 的类型:

  • Bug 修复(修复现有问题)
  • 新功能(添加了一个功能)
  • 代码优化(性能改进、代码重构)
  • 文档更新
  • 单测新增或修改
  • 其他(请说明):

相关问题

变更内容

优化

  • browserCheck
    • 更名 checkBrowserSupport
    • 使用 ua-parser-js 获取浏览器信息
    • 版本对比精确到小版本
  • copy
    • 使用 Promise 替换 callback
    • 优先使用 navigator.clipboard
  • downLoadData
    • 更名 downloadFile
    • 使用 Promise 替换 callback,且将 Response 作为参数传递
  • convertBytes
    • 更名 formatBytes
    • 新增 decimals 参数,控制小数位数
    • 优化计算逻辑
  • generateAKey、getRandomStr
    • 合并并命名为 getKey
    • 使用 nanoid 生成 key
  • generateFullUrlPath
    • 更名 generateUrlWithQuery
    • 新增 object 和 array 参数的处理:将对象转换为 JSON 字符串
  • getQueryParameters
    • 兼容 generateFullUrlPath ,新增 object 和 array 的解析
  • isMacOs
    • 更名 isMacOS
    • 使用 ua-parser-js 判断
  • isWindows
    • 使用 ua-parser-js 判断
  • isMobileDevice
  • localDB
    • set 支持批量添加
    • clear 支持保留部分 key
  • dateTime
    • 删除 dateTime 中的所有函数,新增 formatDateTime
    • formatDateTime 支持将传入的时间根据传入的格式进行格式化
    • 同时提供 DayjsFormat 枚举,其中包含了常见的时间格式,方便使用
  • getBase64、base64Encode
    • 合并为 toBase64
    • 非文件使用 js-base64 进行编码
  • percent
    • 更名 toPercent
    • 放开最大值 1 的限制
  • exchangeOrder
    • 更名 toSortOrder
  • getThousandth
    • 更名 toThousand

新增

  • formatSecond
    • 格式化秒数:3661 -> 1h1m1s
  • fromBase64
    • 从 js-base64 导出,解码 base64 字符串
  • getTypeOfValue
    • 获取传入的值的类型
  • sessionDB
    • 功能同 localDB

对应 Previewer

https://jin-sir.github.io/dt-utils/

@jin-sir jin-sir requested a review from liuxy0551 June 23, 2025 02:58
@jin-sir jin-sir force-pushed the feat_utils branch 16 times, most recently from d8de76a to f9fb886 Compare August 11, 2025 04:11
Copy link
Contributor

@LuckyFBB LuckyFBB left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

想到一个问题,这个里面有些 console 是用中文写的,可能源码合并到产品里面之后,中文校验不通过

@@ -0,0 +1,28 @@
import { nanoid } from 'nanoid';
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这个是否需要单元测试啊

export { default as dayjs } from 'dayjs';
export * as idb from 'idb';
export { default as Cookie } from 'js-cookie';
export * as lodash from 'lodash-es';
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这些是为了以后大家都走 utils 引入吗?

* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API/Using_IndexedDB|MDN IndexedDB 使用指南}
* @see {@link https://caniuse.com/#feat=indexeddb|浏览器兼容性}
*/
class IndexedDB {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这个单元测试需要吗?

/**
* IndexedDB
*
* @deprecated
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

是打了移除标记吗?

text: 'Guide',
items: [
{ text: 'Quick Start', link: '/quickstart' },
{ text: 'contribution', link: '/contribution' },
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

contribution 开头应该大写,和其他不统一了。另外这里是不是可以都改成中文的,因为下方方法的目录名称也都是中文


# Class: ~~IndexedDB~~

Defined in: [indexedDB/index.ts:37](https://github.com/DTStack/dt-utils/blob/main/src/indexedDB/index.ts#L37)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Defined in 的地址好像都为 main 分支,应该改为 master。另外这个地址是手动维护的吧,后续如果在定义方法的那一行之前添加其他内容,似乎还得修改这里的 Defined 链接

@@ -22,7 +22,7 @@

1、请 `fork` 本项目,`clone` 自己的仓库,按照上述分支定义从 `master` 分支新建 `feat` 分支进行开发,分支命名用下划线加上版本号、功能名,如:`feat_1.x_xxx`

2、`feat` 分支开发完毕后,本地执行 `yarn lint` 命令,再执行 `yarn test` 命令,均通过后向相应人员提 PR,期望合入 `release` 分支,待相应人员 review 代码后合入
2、`feat` 分支开发完毕后,本地执行 `pnpm lint` 命令,再执行 `pnpm test` 命令,均通过后向相应人员提 PR,期望合入 `release` 分支,待相应人员 review 代码后合入
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

release 分支基本不用,可以根据实际情况编辑下分支规则

*
* @example
* ```typescript
* import { LocalIndexedDB } from 'dt-utils';
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

全局搜 LocalIndexedDB,还残留有四处,应更名为 IndexedDB,记得使用 rebase 到 rename 那个 commit

/**
* LocalIndexedDB
*
* @deprecated
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

为啥废弃,是因为想要直接用第三方包吗,会影响文档

image image


### format

`string` = `DateTimeFormat.STANDARD`
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

可以链接一下 DateTimeFormat 的内容有哪些


Defined in: [formatSecond/index.ts:28](https://github.com/DTStack/dt-utils/blob/main/src/formatSecond/index.ts#L28)

将秒数转换为时间格式 (HH[h]mm[m]ss[s])
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. 是否可以支持传入 h, m, s 这三个单位,比如有些地方需要展示为 18分26秒运行时长:03:21:18
  2. HH:mm:ss 是带 0 的,也就是 02h21m18s 这种形式。看是要改文档,还是说要支持传入 format

const parser = new UAParser();
const result = parser.getOS();

return result.name === 'macOS';
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

image image

Mac 和 Windows 都需要实际测一下,目前这里判断 name === 'macos' 是不对的
image

源码:https://github.com/faisalman/ua-parser-js/blob/1.0.x/src/ua-parser.js


`string`

— Base64 字符串。支持标准格式和 URL 安全格式
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这个 是中文的吧,没渲染成功
image


`string`

— UTF-8 字符串
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

开头的这个 是中文的吧,没渲染成功

@liuxy0551
Copy link
Collaborator

image 这个 commit 的内容好像不太对,似乎是把改文档路径的内容也提进去了

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants