一个js 通用库, 将一些常用的函数之类的,移到这里方便使用
-
使用typescript重写的1.0版正式发布。
[TOC]
npm install xmcommon
- datetimeUtils 日期时间相关的处理工具函数
- utils 一些常用的工具类函数
- watchRequire 监控文化变化的函数
- SimpleCode 一种换位加编码的类
- getLogger 取日志对象的函数
- setGetLogger 设置getLogger函数的函数,用于替换现有的getLogger函数
- codeUtils 一些编码相关的函数,有md5,sha254,base64等函数
- error_common, error_utils 通用错误信息和错误相关函数
- common_ret 通用返回的类
- bitUtils 二进制标志的工具类
- CNYCurrency 中文货币类
- list_sturct 包含了队列和堆栈的简单实现。
- 增加从公元元年到当前时间的天数的函数
- * 升级单元测试的mocha的版本
- * 优化货币类,增加读取带千分位的金额
- * 增加typesript的重载函数
- utils增加getMapkeys,getMapValues,getMapKeyValues,getSetKeys等函数
- 优化工程项目
- 修复vscode下,无代码提示的bug.
- 增加enum YesOrNo枚举
- 增加TOptions类型
- 增加MD5FromStringList,MD5FromBufferList,MD5FromBuffer三个方法
- 增加isEmpty和isTrueEmpty的方法,这个方法和thinkjs中对应的方法的作用是一样的
- 将一些isXXX的函数,引用lodash或js自带的,不再封装一次,直接引用了
- 日志增加msg接口,用于专门写收发消息文件
- * 将一些用不到的函数以及类标注为deprecated,还会保留,在2.0的时候会删除
- * 这里的utils,datetimeUtils,watchRequire,common_ret,CNYCurrency等已经常过了常时间的使用,暂无问题,可以放心使用了
- utils增加calcPageOffsetByPageInfo,calcPageOffset,notNullEmptyString三个函数
- * 修改fileExistsSync描述错误
- utils增加isDirSync, isFileSync方法
- * 更新依赖库的版本
- 增加基于数组实现的Queue和Stack两个类
- utils增加一组选项默认值方法 stringOpts, intOpts, numberOpts, boolOpts, objectOpts, 当传入参数不是指定类型时,会返回默认值
- utils增加一个方法limitString,超过指定的长度,会自动截取指定的长度
- 给common_ret增加assignFrom方法
- 增加ICommonRetBase的定义
- - 删除datatimeUtils的version方法
- datetimeUtils增加getDateString和getTimeString方法
- * 更新依赖库的版本
- * 优化utils.formatNumber函数
- 增加utils.calcMaxPage方法
- 增加utils.roundPageInfo方法
- * 将一些any类型改为unknown类型
- * CNYCurrency类的format方法,增加无千分位分隔符的参数
- * 使用prettier格式化代码
- * 使用eslint对代码进行检查
- * 修复shortpath的bug
- * 优化日志管理类,增加创建接口和设置猫缺省接口。
- 日志增加log方法
- * 更新部分依赖包
- * 修改common_ret和XCommonRet的设置error的参数类型定义为number
- * 增加类的导出
- * 更新readme.md
- 增加一个XCommonRet替代common_ret,主要不是支持泛型
- 增加一个BufferWapper类
- * 解决不能引入的问题
- * 将通用库使用typescript改写,改写量比较大,还没有全面的测试,这个版本请慎用,请尽量用0.1.9这个版本。
- * 增加一些单元测试例子
- * 依赖的lodash库,出现安全警告,在这里更新依赖库
- - 标注httpcall为@deprecated 计划在未来的版中,准备删除这个
- * 为common_ret增加toString等方法内容。
- 增加fileExists判断文件或目录是否存在
- * 修复makedirs存在的bug
- 增加renameFile方法
- 增加watchRequire注意事项说明
- * 更新lodash的库
- 增加utils.randomInteger,随机整数
- 增加utils.randomScope,随机范围整数
- 增加utils.randomBetween,随机整数,批定开始和结束值
- * 更新依赖包的版本
- * 优化utils.formatPercentage生成成
- 增加utils.roundPercentage,将百分比的值精度控制到 0.0001%
- * 收到github提示,说依赖的lodash有问题,所以这里升级一下 lodash , 还是高级别的
- * We found a potential security vulnerability in one of your dependencies.
- * fixbug 修复utils.mkdirSync在linux下,使用绝对路径会失败的bug
- 增加utils.mkdirSyncEx,用于返回具体的错误信息
- 增加utils.formatPercentage,用于生成百分比字符串
- * 修改index.d.ts,增加允许默认值参数定义
- * fixbug: 不能正确识别增加CNYCurrency类型的对象
- 增加CNYCurrency.isCurrency函数,判断是否是CNYCurrency类型
- datetimeUtils增加比较日期的时间差函数
- * 原生成中文货币大写存在问题,重新找了一个新的版本替换 来源:https://www.jb51.net/article/89661.htm
- 增加多情况货币测试
- * 修复乘除的bug, 对于自乘与自除,返回的是boolean,判断成功失败
- * 优化人民币大写生成, 主要有小于1元的情况,分为0的时候,要加整
- * 增加生成大写,index.d.ts定义
- * 增加CNYCurrency构造函数默认值0, 如果传入null或undefined也视为0, 测试CNYCurrency 1-100000000之间的值
- CNYCurrency 增加assign赋值函数
- * 将index.d.ts中的utils.JsonParse的定义返回值由{}改为any
- * 修复生成大写的bug,主要是百==>佰 千==>仟
let m = [];
let c = new CNYCurrency(-12345);
m.push(c);
m.push(c.add(109999));
m.push(c.sub(10));
m.push(c.div(0.01));
m.push(c.mul(10));
m.push(c.mul(0.01));
let tt = new CNYCurrency(0);
tt.selfAdd(2805307.04);
tt.selfAdd(4323515.28);
tt.selfAdd(2805307.04);
tt.selfAdd(3281107.13);
m.push(tt);
for(let mm of m) {
console.log(mm.value, mm.intValue, mm.toString(), mm.format(true, true), mm.Chinese());
}
//输出结果
//-12345 -1234500 -12345.00 ¥-1,2345.00 负壹万贰仟叁佰肆拾伍元整
//97654 9765400 97654.00 ¥9,7654.00 玖万柒仟陆佰伍拾肆元整
//-12355 -1235500 -12355.00 ¥-1,2355.00 负壹万贰仟叁佰伍拾伍元整
//-1234500 -123450000 -1234500.00 ¥-123,4500.00 负壹佰贰拾叁万肆仟伍佰元整
//-123450 -12345000 -123450.00 ¥-12,3450.00 负拾贰万叁仟肆佰伍拾元整
//-123.45 -12345 -123.45 ¥-123.45 负壹佰贰拾叁元肆角伍分
//13215236.49 1321523649 13215236.49 ¥1321,5236.49 壹仟叁佰贰拾壹万伍仟贰佰叁拾陆元肆角玖分
- 增加CNYCurrency 中文货币类
- * 优化index.d.ts部分注释, 将object变化any, 将[string]变化string[] 这样在typescript的可以正常使用
- codeUtils增加MD5FromArgs
- CHttpCall 增加 asyncJsonPost 和 asyncJsonGet方法
- * 优化index.d.ts部分注释
- utils增加options对参数解析的方法 用于node启动后,传入参数的接收处理
let {utils} = require("../lib/utils");
let v = ["../tt", "--env", "aaaaa", "--version", "1.0.0", "aaaaa", "--flag", "true", "-aaaaa"];
let k = utils.options(v);
console.log(JSON.stringify(k, null, 2));
//对于参数接收用 let k = utils.options(process.argv);
运行结果
{
"_": [
"../tt",
"aaaaa",
"-aaaaa"
],
"args": {
"env": "aaaaa",
"version": "1.0.0",
"flag": "true"
}
}
- 修改readme.md说明
- 增加index.d.ts,使用的时候,可以在vscode有代码提示说明了
- datetimeUtils 增加diffLocalDays,CalcLocalDaysByUTC,CalcLocalDaysByDate等函数
- datetimeUtils 修改getNow()的描述错误
- datetimeUtils 增加getLocalNow()和getLocalNowSecond()
- datetimeUtils 补全上次未能提交的函数
- datetimeUtils 增加了ToLocalTime,ToUTCTime,getTodayZeroTime,isSameDay等函数
- 增加了bitUtil对整数位处理函数,可以用于标志位处理
- 增加utils中的ToInteger, ToFloat, JsonParse和mkdirsSync等几个函数
- * 更新依赖包 lodash 4.17.10 -->4.17.11
- 增加日志前缀缩短处理
//文件:example/test.js
let comm = require("xmcommon");
let log = comm.getLogger(__filename);
log.info("hello world");
//[example\test 2018-10-31 19:29:09.802 INFO] hello world
- 初始版本