Skip to content

zdhsoft/xmcommon

Repository files navigation

xmcommon

一个js 通用库, 将一些常用的函数之类的,移到这里方便使用

目录

[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 包含了队列和堆栈的简单实现。

版本变更说明

1.1.0

  • 增加从公元元年到当前时间的天数的函数

1.0.9

  • * 升级单元测试的mocha的版本
  • * 优化货币类,增加读取带千分位的金额
  • * 增加typesript的重载函数
  • utils增加getMapkeys,getMapValues,getMapKeyValues,getSetKeys等函数

1.0.8 2022-07-20

  • 优化工程项目
  • 修复vscode下,无代码提示的bug.

1.0.7 2022-07-12

  • 增加enum YesOrNo枚举
  • 增加TOptions类型

1.0.6 2022-07-11

  • 增加MD5FromStringList,MD5FromBufferList,MD5FromBuffer三个方法

1.0.5 2022-07-08

  • 增加isEmpty和isTrueEmpty的方法,这个方法和thinkjs中对应的方法的作用是一样的
  • 将一些isXXX的函数,引用lodash或js自带的,不再封装一次,直接引用了
  • 日志增加msg接口,用于专门写收发消息文件

1.0.3 2022-04-14

  • * 将一些用不到的函数以及类标注为deprecated,还会保留,在2.0的时候会删除
  • * 这里的utils,datetimeUtils,watchRequire,common_ret,CNYCurrency等已经常过了常时间的使用,暂无问题,可以放心使用了

0.9.21 2022-3-2

  • utils增加calcPageOffsetByPageInfo,calcPageOffset,notNullEmptyString三个函数

0.9.20 2022-2-24

  • * 修改fileExistsSync描述错误

0.9.19 2022-2-23

  • utils增加isDirSync, isFileSync方法
  • * 更新依赖库的版本

0.9.18 2022-01-23

  • 增加基于数组实现的Queue和Stack两个类

0.9.17 2022-01-22

  • utils增加一组选项默认值方法 stringOpts, intOpts, numberOpts, boolOpts, objectOpts, 当传入参数不是指定类型时,会返回默认值
  • utils增加一个方法limitString,超过指定的长度,会自动截取指定的长度

0.9.16 2022-01-07

  • 给common_ret增加assignFrom方法
  • 增加ICommonRetBase的定义
  • - 删除datatimeUtils的version方法
  • datetimeUtils增加getDateString和getTimeString方法

0.9.15 2022-01-05

  • * 更新依赖库的版本
  • * 优化utils.formatNumber函数

0.9.14 2022-01-05

  • 增加utils.calcMaxPage方法
  • 增加utils.roundPageInfo方法

0.9.13 2021-12-02

  • * 将一些any类型改为unknown类型

0.9.12 2021-11-29

  • * CNYCurrency类的format方法,增加无千分位分隔符的参数

0.9.11 2021-11-16

  • * 使用prettier格式化代码
  • * 使用eslint对代码进行检查

0.9.10 2021-11-15

  • * 修复shortpath的bug

0.9.8 2021-11-15

  • * 优化日志管理类,增加创建接口和设置猫缺省接口。

0.9.7 2021-11-12

  • 日志增加log方法
  • * 更新部分依赖包

0.9.6 2021-09-29

  • * 修改common_ret和XCommonRet的设置error的参数类型定义为number

0.9.5 2021-09-28

  • * 增加类的导出

0.9.4 2021-09-28

  • * 更新readme.md

0.9.3 2021-09-28

  • 增加一个XCommonRet替代common_ret,主要不是支持泛型

0.9.2 2021-09-05

  • 增加一个BufferWapper类

0.9.1 2021-09-03

  • * 解决不能引入的问题

0.9.0 2021-09-02

  • * 将通用库使用typescript改写,改写量比较大,还没有全面的测试,这个版本请慎用,请尽量用0.1.9这个版本。
  • * 增加一些单元测试例子

0.1.9 2021-05-08

  • * 依赖的lodash库,出现安全警告,在这里更新依赖库

0.1.8 2021-04-28

  • - 标注httpcall为@deprecated 计划在未来的版中,准备删除这个
  • * 为common_ret增加toString等方法内容。

0.1.7 2020-12-24

  • 增加fileExists判断文件或目录是否存在
  • * 修复makedirs存在的bug
  • 增加renameFile方法

0.1.4 2020-08-20

  • 增加watchRequire注意事项说明
  • * 更新lodash的库

0.1.3 2020-06-05

  • 增加utils.randomInteger,随机整数
  • 增加utils.randomScope,随机范围整数
  • 增加utils.randomBetween,随机整数,批定开始和结束值
  • * 更新依赖包的版本

0.1.2 2019-07-20

  • * 优化utils.formatPercentage生成成
  • 增加utils.roundPercentage,将百分比的值精度控制到 0.0001%

0.1.1 2019-07-14

  • * 收到github提示,说依赖的lodash有问题,所以这里升级一下 lodash , 还是高级别的
  • * We found a potential security vulnerability in one of your dependencies.

0.1.0 2019-07-14

  • * fixbug 修复utils.mkdirSync在linux下,使用绝对路径会失败的bug
  • 增加utils.mkdirSyncEx,用于返回具体的错误信息
  • 增加utils.formatPercentage,用于生成百分比字符串

0.0.22 2019-07-04

  • * 修改index.d.ts,增加允许默认值参数定义

0.0.21 2019-06-28

  • * fixbug: 不能正确识别增加CNYCurrency类型的对象
  • 增加CNYCurrency.isCurrency函数,判断是否是CNYCurrency类型
  • datetimeUtils增加比较日期的时间差函数

0.0.20 2019-06-26

  • * 原生成中文货币大写存在问题,重新找了一个新的版本替换 来源:https://www.jb51.net/article/89661.htm
  • 增加多情况货币测试
  • * 修复乘除的bug, 对于自乘与自除,返回的是boolean,判断成功失败
  • * 优化人民币大写生成, 主要有小于1元的情况,分为0的时候,要加整
  • * 增加生成大写,index.d.ts定义

0.0.17 2019-06-24

  • * 增加CNYCurrency构造函数默认值0, 如果传入null或undefined也视为0, 测试CNYCurrency 1-100000000之间的值
  • CNYCurrency 增加assign赋值函数
  • * 将index.d.ts中的utils.JsonParse的定义返回值由{}改为any

0.0.16 2019-06-03

  • * 修复生成大写的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 壹仟叁佰贰拾壹万伍仟贰佰叁拾陆元肆角玖分

0.0.15 2019-06-01

  • 增加CNYCurrency 中文货币类

0.0.14 2019-04-20

  • * 优化index.d.ts部分注释, 将object变化any, 将[string]变化string[] 这样在typescript的可以正常使用
  • codeUtils增加MD5FromArgs
  • CHttpCall 增加 asyncJsonPost 和 asyncJsonGet方法

0.0.13 2019-03-28

  • * 优化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"
  }
}

0.0.12 2019-02-18

  • 修改readme.md说明

0.0.10 2019-02-18

  • 增加index.d.ts,使用的时候,可以在vscode有代码提示说明了

0.0.9 2019-02-10

  • datetimeUtils 增加diffLocalDays,CalcLocalDaysByUTC,CalcLocalDaysByDate等函数
  • datetimeUtils 修改getNow()的描述错误
  • datetimeUtils 增加getLocalNow()和getLocalNowSecond()

0.0.8 2018-12-21

  • datetimeUtils 补全上次未能提交的函数

0.0.7 2018-12-12

  • datetimeUtils 增加了ToLocalTime,ToUTCTime,getTodayZeroTime,isSameDay等函数

0.0.6 2018-11-01

  • 增加了bitUtil对整数位处理函数,可以用于标志位处理
  • 增加utils中的ToInteger, ToFloat, JsonParse和mkdirsSync等几个函数

0.0.5 2018-10-31

  • * 更新依赖包 lodash 4.17.10 -->4.17.11

0.0.4 2018-10-31

  • 增加日志前缀缩短处理
//文件: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

0.0.3

  • 初始版本