como-ts-utils
TypeScript icon, indicating that this package has built-in type declarations

1.0.6 • Public • Published

como-ts-utils

基于typescript的基本工具库

常用工具库[ComoTsUtils]

    /**
     * 全局统一返回数据结构
     * @param data 
     * @param error 
     * @param msg 
     * @param code 
     */
    AppResult<T extends any>(msg:string,data:T,error:boolean = true,code:number = 0) => AppResultType<T>
    /**
     * 生成随机数
     * @param minNum 
     * @param maxNum 
     */
    MtRand(minNum:number = 0,maxNum:number = 1) => number
    /**
     * 字符串实现*号隐藏  罗* 137*****35等等
     * @param str 
     * @param startLen 前面多少位不用隐藏
     * @param lastLen  后面多少位不用隐藏
     */
    StrMiddenHidden(str:string,startLen:number = 0,lastLen:number = 0) => string
    /**
     * 获取时间
     * @param timer true / false true 获取豪秒时间 false 获取秒时间
     */
    Time(timer:boolean = false) => number
    /**
     * 时间格式转时间戳
     * @param formatDate 
     */
    StrToTime(formatDate:string) => number
    /**
     * 格式化时间 像php Date的一样使用
     * @param formatDate 
     * Y-m-d H:i:s 获取时间 2023-01-12 21:28:23
     * Y-m-d H:i 获取时间 2023-01-12 21:28
     * Y-m-d 获取时间 2023-01-12
     * @param timer 不传默认是当前时间
     */
    Date(formatDate:string,timer?:number) => string
    /**
     * 获取一个月多少天 如2022-01-10 15:10:00 如2022-01-10 默认当前时间
     * @param fromatDate 
     */
    MonthDay(fromatDate?:string) => number
    /**
     * 获取一年有多少天 如2022-01-10 15:10:00 如2022-01-10 默认当前时间
     * @param fromatDate 
     */
    YearDay(fromatDate?:string) => number
    /**
     * 获取一年的第一天时间格式 默认当前时间 如2022-01-10 15:10:00 如2022-01-10
     * @param fromateData 
     */
    YearFirstDay(fromateData?:string) => string | boolean
    /**
     * 获取一年的最后一天时间格式 默认当前时间 如2022-01-10 15:10:00 如2022-01-10
     * @param fromateData 
     */
    YearLastDay(fromateData?:string) => string | boolean
    /**
     * 获取某个日期是当年中的第几天 默认当前时间 如2022-01-10 15:10:00 如2022-01-10
     * @param fromatDate 
     */
    DateToYearDay(fromatDate?:string) => number | boolean
    /**
     * 获取某个日期在这一年的第几周 默认当前时间 如2022-01-10 15:10:00 如2022-01-10
     * @param fromatDate 
     */
    DateToYearWeek(fromatDate?:string) => number | boolean
    /**
     * 判断是否是润年 默认当前时间 如2022-01-10 15:10:00 如2022-01-10
     * @param fromatDate 
     */
    IsLeapYear(fromatDate?:string) => boolean
    /**
     * 获取字符串的md5值
     * @param str 
     */
    MD5(str:string) => string
    /**
     * aes加密
     * @param str 
     * @param secret 
     */
    AesEncode(str:string,secret:string = 'szjcomo') => string
    /**
     * ase解密
     * @param str 
     * @param secret 
     */
    AesDecode(str:string,secret:string = 'szjcomo') => string
    /**
     * sha1加密
     * @param str 
     */
    Sha1(str:string) => string
    /**
     * sha256加密
     * @param str 
     */
    Sha256(str:string) => string
    /**
     * base64加密
     * @param str 
     */
    Base64Encode(str:string) => string
    /**
     * base64解密
     * @param str 
     */
    Base64Decode(str:string) => string
    /**
     * json加密
     * @param data 
     */
    JsonEncode<T extends Object>(data:T) => string
    /**
     * json解密
     * @param data 
     */
    JsonDecode<T extends any>(data:string) => T
    /**
     * 宽松的验证是否身份证号码
     * @param data 
     */
    IsIdCardno(data:string) => boolean
    /**
     * 严格的验证是否身份证号码
     * @param data 
     */
    IsIdentityNumber(data:string) => boolean
    /**
     * 身份证号码17位自动补全
     * @param data 
     */
    RepairIdentity(data:string) => string
    /**
     * 根据身份证号码获取生肖
     * @param idcard 
     */
    GetZodiac(idcard:string) => string
    /**
     * 根据身份证号码获取星座
     * @param idcard 
     */
    GetStarsign(idcard:string) => string
    /**
     * 根据身份证号码获取年龄
     * @param idcard 
     * @param newDay 
     * @param newMonth 
     * @param newYear 
     * @returns 
     */
    GetAge(idcard:string,newDay:number = 0,newMonth:number = 0,newYear:number = 0) => number
    /**
     * 根据身份证号码获取出生日期
     * @param idcard 
     */
    GetBorn(idcard:string) => string
    /**
     * 根据身份证号码获取性别
     * @param idcard 
     */
    GetGender(idcard:string) => string
    /**
     * 去除字符串首尾空
     * @param str 
     * @param trimType type 1-所有空格  2-前后空格  3-前空格 4-后空格
     */
    Trim(str:string,trimType:number = 2) => string
    /**
     * 获取字符串长度
     * @param str 
     */
    StrLen(str:string) => number
    /**
     * 获取随机字符串
     * @param len 
     * @param randType  type default [字符串和数字] number[纯数字] letter[纯字母]
     */
    StrRand(len:number = 4,randType:string = 'default') => string
    /**
     * 强制格式化为小数点后两位,不够补0 四舍五入
     * @param money 
     */
    MoneyFormat2(money:number | string) => string
    /**
     * html 标签转义
     * @param str 
     */
    HtmlEscape(str:string) => string
    /**
     * html 标签反转义
     * @param str 
     */
    HtmlUnEscape(str:string) => string
    /**
     * 判断是否为空
     * @param data 
     */
    Empty(data:any) => boolean
    /**
     * 判断是否为数字
     * @param data 
     */
    IsNumber(data:any) => boolean
    /**
     * 判断是否全是字母
     * @param data 
     */
    IsAlpha(data:any) => boolean
    /**
     * 判断是否全是中文
     * @param data 
     */
    IsChinese(data:any) => boolean
    /**
     * 判断是否是数字和字母的组合
     * @param data 
     */
    IsAlphaNumber(data:any) => boolean
    /**
     * 判断是否是一个手机号
     * @param data 
     */
    IsPhone(data:any) => boolean
    /**
     * 判断是否是一个对象
     * @param data 
     */
    IsObject(data:any) => boolean
    /**
     * 判断是否是一个电话号码
     * @param data 
     */
    IsTel(data:any) => boolean
    /**
     * 判断是否是一个qq号
     * @param data 
     */
    IsQQ(data:any) => boolean
    /**
     * 判断是否是email
     * @param data 
     */
    IsEmail(data:any) => boolean
    /**
     * 判断是否是一个url
     * @param data 
     */
    IsURL(data:any) => boolean
    /**
     * 判断是否是一个数组
     * @param data 
     */
    IsArray(data:any) => boolean
    /**
     * 判断是否在数组里面
     * @param data 
     * @param el 
     */
    InArray(data:any[],el:any) => boolean
    /**
     * 判断是否是一个函数
     * @param data 
     */
    IsFunction(data:any)=>boolean
    /**
     * 取数组的平均值
     * @param data 
     */
    ArrayAvg(data:number[]) => number
    /**
     * 数组求和
     * @param data 
     */
    ArraySum(data:number[]) => number
    /**
     * 取数组最小值
     * @param data 
     */
    ArrayMin(data:number[]) => number
    /**
     * 取数组最大值
     * @param data 
     */
    ArrayMax(data:number[]) => number
    /**
     * 数组移动某个值
     * @param data 
     * @param el 
     */
    ArrayRemove<T extends any>(data:T[],el:T) => T[]
    /**
     * 数组去重
     * @param data 
     */
    ArrayUnique<T extends any>(data:T[]) => T[]
    /**
     * 数组排序
     * @param arr 
     */
    ArraySort(arr:number[]) => number[]
    /**
     * 数组合并
     * @param arr 
     * @param arr1 
     */
    ArrayMerge<T extends any>(arr:T[],arr1:T[]) => T[]
    /**
     * 数组去掉最后一个值
     * @param arr 
     */
    ArrayPop<T extends any>(arr:T[]) => T[]
    /**
     * 从数组中随机取出一个值
     * @param arr 
     */
    ArrayRand<T extends any>(arr:T[]) => T
    /**
     * 将一组数组转换成多维数组
     * @param data 
     * @param pid 
     * @param pidField 
     * @param pkField 
     * @param childrenfield 
     */
    ArrayRecursion<T extends any>(data:T[],pid:number = 0,pidField:string = 'pid',pkField:string = 'id',childrenfield:string = 'children')=>T[]
    /**
     * 多维数组转一维数组
     * @param data 
     * @param childrenfield 
     */
    ArrayRecursiveBack<T extends any>(data:T[],childrenfield:string = 'children') => T[]
    /**
     * 自定义加密函数
     * @param str 
     * @param secret 
     */
    ComoEncode(str:string,secret:string = '0l23456789ABCDEFGHIJKLMNOPQRSTUVWXYZ') => string
    /**
     * 自定义解密函数
     * @param str 
     * @param secret 
     */
    ComoDecode(str:string,secret:string = '0l23456789ABCDEFGHIJKLMNOPQRSTUVWXYZ') => string

数据结构验证工具库[ComoTsRuleUtil]

    /**
     * 字段名称
     * @param fieldName 
     */
    Name(fieldName:string) => ComoTsRuleUtil
    /**
     * 是否必须存在
     * @param errMsg 
     */
    Required(errMsg?:string) => ComoTsRuleUtil
    /**
     * 字段值是否不能为空
     * @param errMsg 
     */
    NotEmpty(errMsg?:string) => ComoTsRuleUtil
    /**
     * 是否去掉首尾空
     */
    Trim() => ComoTsRuleUtil
    /**
     * 判断是否为json
     * @param errMsg 
     */
    IsJson(errMsg?:string) => ComoTsRuleUtil
    /**
     * 设置字段默认值
     * @param value 
     */
    DefaultValue(value:any) => ComoTsRuleUtil
    /**
     * 扩展验证器
     * @param cb 
     */
    ExtendRule(cb:ComoRulesExtend) => ComoTsRuleUtil
    /**
     * 是否是一个日期格式 2023-01-01 或 2023/01/01
     * @param errMsg 
     */
    IsDate(errMsg?:string) => ComoTsRuleUtil
    /**
     * 字段值转为数字
     * @param errMsg 
     */
    Number(errMsg?:string) => ComoTsRuleUtil
    /**
     * 是否邮箱格式
     * @param errMsg 
     */
    IsEmail(errMsg?:string) => ComoTsRuleUtil
    /**
     * 字段值的最大长度
     * @param errMsg 
     */
    MaxLength(len:number,errMsg?:string) => ComoTsRuleUtil
    /**
     * 字段值最小长度
     * @param len 
     * @param errMsg 
     */
    MinLength(len:number,errMsg?:string) => ComoTsRuleUtil
    /**
     * 字段最大值
     * @param value 
     * @param errMsg 
     */
    MaxValue(value:number,errMsg?:string) => ComoTsRuleUtil
    /**
     * 字段最小值
     * @param value 
     * @param errMsg 
     */
    MinValue(value:number,errMsg?:string) => ComoTsRuleUtil
    /**
     * 字段值必须全是字母
     * @param errMsg 
     */
    IsLetters(errMsg?:string) => ComoTsRuleUtil
    /**
     * 字段值必须全是中文
     * @param errMsg 
     */
    IsChinese(errMsg?:string) => ComoTsRuleUtil
    /**
     * 字段值必须是字母和数字的组合
     * @param errMsg 
     */
    IsLettersNumber(errMsg?:string) => ComoTsRuleUtil
    /**
     * 必须是中文或字母
     * @param errMsg 
     */
    IsChineseOrLetters(errMsg?:string) => ComoTsRuleUtil
    /**
     * 字母或数字或下划线组合
     * @param errMsg 
     * @returns 
     */
    IsLettersOrNumber(errMsg?:string) => ComoTsRuleUtil
    /**
     * 字段值必须是一个手机号的格式
     * @param errMsg 
     */
    IsPhone(errMsg?:string) => ComoTsRuleUtil
    /**
     * 字段值必须是一个对象
     * @param errMsg 
     */
    IsObject(errMsg?:string) => ComoTsRuleUtil
    /**
     * 字段值必须是一个数组
     * @param errMsg 
     */
    IsArray(errMsg?:string) => ComoTsRuleUtil
    /**
     * 字段值必须是一个qq号码
     * @param errMsg 
     */
    IsQQ(errMsg?:string) => ComoTsRuleUtil
    /**
     * 字段值必须是一个url
     * @param errMsg 
     */
    IsURL(errMsg?:string) => ComoTsRuleUtil
    /**
     * 字段值必须在这个数组里
     * @param arr 
     * @param errMsg 
     */
    InArray(arr:any[],errMsg?:string) => ComoTsRuleUtil
    /**
     * 字段值必须是一个IP格式
     * @param errMsg 
     */
    IsIp(errMsg?:string) => ComoTsRuleUtil
    /**
     * 字段值必须与另外一个字段值相等
     * @param field 
     * @param errMsg 
     */
    Ref(field:string,errMsg?:string) => ComoTsRuleUtil
    /**
     * 字段值必须为身份证号码格式 非严格身份证验证模式
     * @param errMsg 
     */
    IsIdCard(errMsg?:string) => ComoTsRuleUtil
    /**
     * 身份证号码严格模式验证
     * @param errMsg 
     */
    IsIdentityNumber(errMsg?:string) => ComoTsRuleUtil
    /**
     * html转议
     * @param errMsg 
     */
    HtmlEscape(errMsg?:string) => ComoTsRuleUtil
    /**
     * 获取验证规则对象
     */
    Rules() => ComoRules

数据结构验证[ComoTsValidate]

/**
 * 实现验证 
 * 请使用try catch 捕获错误 只有正确才有返回值
 * 未通过验证的只会抛出异常Error
 * @param rules 
 * @param data 
 */
ComoTsValidate<T extends Object>(rules:ComoValidateRules,data:ComoObjectType) => Promise<T | void>

Readme

Keywords

none

Package Sidebar

Install

npm i como-ts-utils

Weekly Downloads

9

Version

1.0.6

License

ISC

Unpacked Size

86.1 kB

Total Files

14

Last publish

Collaborators

  • como20170606