Skip to content

AQian0/shi-jian

Repository files navigation

shi-jian

中文 | English

⚠️ 该库仍在开发中,API 可能会发生变更

shi-jian(时间),一个富有人体工学的现代 JavaScript 日期处理库。

特点

🚀 零生产依赖

shi-jian 不包含任何生产依赖,可以安全地导入到项目中,无需担心依赖冲突或包体积膨胀。

🌐 原生与现代 API

基于原生 DateIntl 对象构建,充分利用浏览器与 Node.js 提供的原生 API,并随 JavaScript 标准演进持续优化。

🔒 不变性

提供良好的不变性保证,确保数据不会被意外修改,支持无副作用的函数式编程风格。

📘 类型支持

内置 TypeScript 类型定义,提供完善的类型检查与智能提示,提升开发体验。

快速开始

安装

npm install @aqian0/shi-jian
pnpm add @aqian0/shi-jian
bun add @aqian0/shi-jian

理念

null vs undefined

优先采用undefined作为标准falsy。一方面null在实现上先天具有一定劣势,在诸多方法上需要进行额外的判定与处理,而undefined在不涉及到数据库与类的前端场景下,无疑更加通用。另一方面从现实意义的角度上进行考量,无论如何日期都是存在的,当用户在获取日期的时候,要么获取到未定义为日期的值,要么获取到真实日期对应的值,不可能出现日期为空这种情况。

错误处理

由于shi-jian是一个零依赖的库,所以不太可能做一些比较复杂且全面的错误处理,这也和它轻量级的定位不符。考虑到它较为“扁平”的使用场景,直接将错误信息抛出是可以接受的,这是设计上的一个取舍。

路线图

  • falsy值处理规范化

  • 异常与错误处理优化

  • 性能提升

    • 函数缓存

    • 打包大小

    • 复杂函数调用

    • 正则替换与转换

  • 类型声明调整

  • 测试功能完善

  • 文档

    • JSDoc

    • 英文版本

  • CI/CD

    • 审查

    • 发布

致谢

  • tempo: 灵感与设计来源,早期代码极大参考了该项目源码。

About

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors