npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

como-ts-utils

v1.0.6

Published

基于typescript的基本工具库

Downloads

12

Readme

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>