@ruanmingze/happykit
v1.0.3
Published
HappyKit(快乐工具箱)- 一个Node.js实用工具库
Downloads
34
Maintainers
Readme
HappyKit(快乐工具箱)
HappyKit是一个Node.js实用工具库,提供了丰富的工具函数,涵盖字符串处理、数组操作、日期格式化、数据验证、文件处理、网络请求、数学计算等常用功能领域。
许可证
本项目采用GPL-2.0-Only许可证进行许可。
安装
使用npm
npm install @ruanmingze/happykit使用yarn
yarn add @ruanmingze/happykit使用pnpm
pnpm add @ruanmingze/happykit版本说明
HappyKit提供两个版本:
| 版本 | 文件名 | 适用环境 | 说明 |
|------|--------|----------|------|
| Node.js版 | happykit.js | Node.js、Electron | 完整功能,包含文件系统、网络请求等Node.js模块 |
| 浏览器版 | happykit.browser.js | 浏览器、前端项目 | 纯前端功能,不包含Node.js特有模块 |
使用方法
Node.js环境
const HappyKit = require('@ruanmingze/happykit');
// 使用示例
console.log(HappyKit.capitalize('hello')); // 'Hello'前端环境(CDN)
<script src="https://lib.ruanmgjx.dpdns.org/happykit.browser.js"></script>
<script>
// 使用示例
console.log(HappyKit.capitalize('hello')); // 'Hello'
</script>前端环境(npm + 打包工具)
import * as HappyKit from '@ruanmingze/happykit';
// 使用示例
console.log(HappyKit.capitalize('hello')); // 'Hello'API概览
字符串处理
format(str, ...args)- 格式化字符串capitalize(str)- 首字母大写camelToKebab(str)- 驼峰转连字符kebabToCamel(str)- 连字符转驼峰trim(str)- 移除字符串首尾空格repeat(str, times)- 重复字符串truncate(str, length, ellipsis)- 截取字符串randomString(length)- 生成随机字符串
数组操作
unique(arr)- 数组去重sort(arr, order)- 数组排序filter(arr, callback)- 数组筛选map(arr, callback)- 数组映射reduce(arr, callback, initialValue)- 数组归约merge(...arrs)- 数组合并chunk(arr, size)- 数组分割shuffle(arr)- 数组随机排序
日期处理
formatDate(date, format)- 格式化日期getTimeDiff(date1, date2, unit)- 计算时间差getCurrentDate()- 获取当前日期addDays(date, amount, unit)- 日期相加isToday(date)- 判断是否是今天getDaysInMonth(year, month)- 获取月份的天数isLeapYear(year)- 判断是否是闰年
数据验证
validateEmail(email)- 验证邮箱格式validatePhone(phone)- 验证手机号格式validateURL(url)- 验证URL格式validateIdCard(idCard)- 验证身份证号格式validatePassword(password)- 验证密码强度isEmpty(value)- 验证是否为空isNumber(value)- 验证是否是数字isString(value)- 验证是否是字符串
文件处理
readFile(filePath, encoding)- 读取文件内容writeFile(filePath, content, encoding)- 写入文件内容fileExists(filePath)- 检查文件是否存在createDirectory(dirPath, recursive)- 创建目录listDirectory(dirPath)- 列出目录内容joinPath(...paths)- 连接路径getFileExtension(filePath)- 获取文件扩展名getFileName(filePath, includeExtension)- 获取文件名
网络请求
sendRequest(url, options, data)- 发送HTTP/HTTPS请求get(url, options)- 发送GET请求post(url, data, options)- 发送POST请求put(url, data, options)- 发送PUT请求del(url, options)- 发送DELETE请求downloadFile(url, destPath)- 下载文件
数学计算
random(min, max)- 生成随机数randomInt(min, max)- 生成随机整数abs(num)- 计算绝对值sqrt(num)- 计算平方根square(num)- 计算平方cube(num)- 计算立方average(arr)- 计算平均值sum(arr)- 计算数组总和max(arr)- 计算数组最大值min(arr)- 计算数组最小值
顶部标题栏(Electron应用)
createTLBar(options)- 创建非绝对定位的顶部标题栏updateTitleBarTitle(titleBar, title)- 更新标题栏标题
示例代码
创建顶部标题栏
const { createTLBar } = require('happykit');
// 创建标题栏
const titleBar = createTLBar({
title: '我的应用',
backgroundColor: '#2c3e50',
textColor: '#ffffff',
height: 60,
onMinimize: () => {
console.log('最小化');
},
onMaximize: () => {
console.log('最大化');
},
onClose: () => {
console.log('关闭');
}
});
// 添加到页面
document.body.appendChild(titleBar);字符串处理
const { format, capitalize, truncate } = require('happykit');
console.log(format('Hello {0}, welcome to {1}!', 'John', 'HappyKit')); // 'Hello John, welcome to HappyKit!'
console.log(capitalize('hello world')); // 'Hello world'
console.log(truncate('This is a long string', 10)); // 'This is a...'数组操作
const { unique, sort, chunk } = require('happykit');
console.log(unique([1, 2, 2, 3, 4, 4, 5])); // [1, 2, 3, 4, 5]
console.log(sort([3, 1, 4, 1, 5, 9], 'desc')); // [9, 5, 4, 3, 1, 1]
console.log(chunk([1, 2, 3, 4, 5, 6], 2)); // [[1, 2], [3, 4], [5, 6]]日期处理
const { formatDate, getTimeDiff } = require('happykit');
const date = new Date();
console.log(formatDate(date, 'YYYY-MM-DD HH:mm:ss')); // '2023-10-01 12:34:56'
const date1 = new Date('2023-10-01');
const date2 = new Date('2023-10-05');
console.log(getTimeDiff(date1, date2, 'days')); // 4数据验证
const { validateEmail, validatePhone, validateURL } = require('happykit');
console.log(validateEmail('[email protected]')); // true
console.log(validatePhone('13812345678')); // true
console.log(validateURL('https://www.example.com')); // true构建
开发环境
npm run dev生产环境(Node.js版本)
npm run build浏览器版本
npm run build:browser构建所有版本
npm run build:all测试
npm run test文档
生成API文档:
npm run doc贡献
欢迎提交Issue和Pull Request!
联系方式
如有问题或建议,请通过Issue与我们联系。
