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

rs-commonjs

v1.4.4

Published

项目中常用的方法

Downloads

13

Readme

rs-common 公共方法

uuid 通用唯一识别码
/**
 * 通用唯一识别码
 * @rerurns string
 */
getuuid();
seStorage 设置本地存储
/**
 * 设置本地存储
 * @param {*} name 存储字段
 * @param {*} content 存储内容
 * @param {*} storage 存储位置 sessionStorage / localStorage, 默认 sessionStorage
 */
seStorage(name, content, (storage = "sessionStorage"));

| 参数 | 默认值 | 可选值 | 是否必填 | 说明 | | ------- | -------------- | ----------------------------- | -------- | -------- | | name | | | true | 存储字段 | | content | | | true | 存储内容 | | storage | sessionStorage | sessionStorage / localStorage | false | 存储位置 |

getStorage 获取本地存储
/**
 * 获取本地存储
 * @param {*} name 存储字段
 * @param {*} storage 存储位置 sessionStorage / localStorage, 默认 sessionStorage
 * @returns string | object | array
 */
getStorage(name, (storage = "sessionStorage"));

| 参数 | 默认值 | 可选值 | 是否必填 | 说明 | | ------- | -------------- | ----------------------------- | -------- | -------- | | name | | | true | 存储字段 | | storage | sessionStorage | sessionStorage / localStorage | false | 存储位置 |

removeStorage 删除本地存储
/**
 * 删除本地存储
 * @param {*} name 存储字段
 * @param {*} storage 存储位置 sessionStorage / localStorage, 默认 sessionStorage
 */
removeStorage(name, (storage = "sessionStorage"));

| 参数 | 默认值 | 可选值 | 是否必填 | 说明 | | ------- | -------------- | ----------------------------- | -------- | -------- | | name | | | true | 存储字段 | | storage | sessionStorage | sessionStorage / localStorage | false | 存储位置 |

formatTime 日期格式化
/**
 * 日期格式化
 * @param {*} date 日期类型 Date | string | null | undefined | number
 * @param {*} format 日期格式  默认 yyyy-MM-dd HH:mm:ss
 * @returns 格式化后的日期字符串
 */
formatTime(date, (format = "yyyy-MM-dd HH:mm:ss"));

| 参数 | 默认值 | 可选值 | 是否必填 | 说明 | | ------ | ------------------- | ----------------------------------------- | -------- | -------- | | date | | Date / string / null / undefined / number | true | 日期类型 | | format | yyyy-MM-dd HH:mm:ss | | false | 日期格式 |

formatTimeByStr 将字符串转成日期格式
/**
 * @description: 将字符串转成日期格式
 * @param dateStr 日期字符串 如20220321 -> 2022-03-21
 * @param format  日期格式  默认 yyyy-MM-dd格式 (yyyy-MM-dd HH:mm:ss)
 * @returns 格式化后的日期字符串
 */
formatTimeByStr(dateStr, (format = "yyyy-MM-dd"));

| 参数 | 默认值 | 可选值 | 是否必填 | 说明 | | ------- | ---------- | ----------------------------------------- | -------- | ---------- | | dateStr | | Date / string / null / undefined / number | true | 日期字符串 | | format | yyyy-MM-dd | yyyy-MM-dd HH:mm:ss | false | 日期格式 |

beforeTime 获取之前的日期
/**
 * 获取之前的日期
 * @param {*} date 日期类型 Date | string | null | undefined | number
 * @param {number} num 小时数
 * @param {string} type 类型, hour/day/month/year
 * @param {string} format 日期格式
 * @returns 前几小时的完整日期
 */
beforeTime(date, num, type, format?);

| 参数 | 默认值 | 可选值 | 是否必填 | 说明 | | ------ | ------ | ----------------------------------------- | -------- | ------------------------------------------ | | date | | Date / string / null / undefined / number | true | 日期类型 | | num | | number | true | 数量 | | type | day | hour/day/month/year | true | 处理类型,day - 前几天,hour - 前几小时... | | format | | yyyy-MM-dd HH:mm:ss | false | 日期格式,不传则默认返回 Date 格式的数据 |

deepCopy 深拷贝复杂类型变量
/**
 * 深拷贝复杂类型变量
 * @param {object} target 复杂类型数据 object
 * @returns 新的复杂数据
 */
deepCopy(target);

| 参数 | 默认值 | 可选值 | 是否必填 | 说明 | | ------ | ------ | ------ | -------- | -------- | | target | | | true | 目标数据 |

mergeObjAttr 合并对象
/**
 * 合并对象
 * @param {*} origin 原始对象
 * @param {*} target 目标对象,需要被合并的对象
 * @param {*} rtNewObj 是否返回一个新对象,默认为false
 * @param {*} level 当前遍历层级,属于内部参数,调用时不必传入
 * @returns
 */
mergeObjAttr(origin, target, (rtNewObj = false), (level = 1));

| 参数 | 默认值 | 可选值 | 是否必填 | 说明 | | -------- | ------ | ------ | -------- | ------------------------------------------ | | origin | | | true | 原始对象 | | target | | | true | 目标对象,需要被合并的对象 | | rtNewObj | false | | false | 是否返回一个新对象,默认为 false | | level | 1 | | false | 当前遍历层级,属于内部参数,调用时不必传入 |

mergeArray 合并数组
/**
 * 合并数组
 * 这个合并数组并不是一般的合并,它跟普通的合并区别在于如果大家都是对象则合并属性,参考mergeObjAttr方法
 * @param origin: 原始数组
 * @param target: 目标数组
 * @param rtNewArray: 是否返回一个新数组,默认为false
 * @param level: 当前遍历层级,属于内部参数,调用时不必传入
 */
mergeArray(origin, target, (rtNewArray = false), (level = 1));

| 参数 | 默认值 | 可选值 | 是否必填 | 说明 | | ---------- | ------ | ------ | -------- | ------------------------------------------ | | origin | | | true | 原始数组 | | target | | | true | 目标数组,需要被合并的对象 | | rtNewArray | false | | false | 是否返回一个新数组,默认为 false | | level | 1 | | false | 当前遍历层级,属于内部参数,调用时不必传入 |

getDataType 获取数据类型
/**
 * 获取数据类型
 * @param {*} data 数据
 * @param {boolean} isStatic 是否严格, 默认false, 即在object下, 只区分array, 不做Date等的区分
 * @returns 返回数据类型 object/array/string/....
 */
getDataType(data);

| 参数 | 默认值 | 可选值 | 是否必填 | 说明 | | -------- | ------ | ------- | -------- | ------------------------------------------------------------------------------------- | | data | | any | true | 目标数据 | | isStatic | false | boolean | false | 是否返回严格的数据类型,默认 false, 即在 object 下, 只区分 array, 不做 Date 等的区分 |

cleanData 规范字典数据
/**
 * 规范字典数据
 * @param {*} dic {Object} key对象 如{value:"code",label:"name"} 即code->value name->label,意思是将原数据中code字段的数据赋值给value字段
 * @param {*} data {Array}  需处理的数据
 * @param {*} keep {Array}  是否保留原数据的其他字段
 * @param {*} childrenName {Object} 子数据的key值替换  如{'children':'childs'}  将原数据中的childs转成children
 * @returns array
 */
cleanData(data, dic, (keep = false), (childrenName = { children: "children" }));

| 参数 | 默认值 | 可选值 | 是否必填 | 说明 | | ------------ | -------------------------------- | ------ | -------- | ------------------------ | | data | [] | | true | 需处理的数据 | | dic | {value: dataKey, label: dataKey} | | true | key 对象 | | keep | false | | false | 是否保留原数据的其他字段 | | childrenName | {'children': dataKey} | | false | 子数据的 key 值替换 |

flatData 扁平化数组对象数据
/**
 * 扁平化数组对象数据, 将树结构 -》 列表数据
 * @param {Array} data   需处理的数据
 * @param {Object} dic  key对象 如{resule:"code",label:"name"} 即code->value name->label 为{}则不存在转化字段
 * @param {String} childName  子集的集合字段
 * @returns array 一维数组
 */
flatData(data, (dic = {}), (childName = "children"));

| 参数 | 默认值 | 可选值 | 是否必填 | 说明 | | --------- | -------- | ------------------------- | -------- | -------------- | | data | [] | | true | 需处理的数据 | | dic | {} | {resultKey: dataKey, ...} | false | key 对象 | | childName | children | | false | 子集的集合字段 |

arrToObj 将数组转成对象
/**
 * @param {*} data 数组数据
 * @param {*} dataKey 以数组中哪一个字段的数据作为对象的key
 * @param {Object} dic  key对象 如{resultKey: dataKey,...}  为{}则不存在转化字段
 * @returns object
 */
arrToObj(data, (dic = {}), (childName = "children"));

| 参数 | 默认值 | 可选值 | 是否必填 | 说明 | | ------- | ------ | ------------------------ | -------- | -------------------------------------- | | data | [] | | true | 数组数据 | | dataKey | | data 里面任意的 key | true | 以数组中哪一个字段的数据作为对象的 key | | dic | {} | {resultKey: dataKey,...} | false | 转化字段配置, 为{}则不存在转化字段 |

listToTree 把列表数据转换成树结构, 列表数据必须有父节点标识
/**
 * 把列表数据转换成树结构, 列表数据必须有父节点标识
 * @param {*} data 列表数据
 * @param {*} parentId 父节点的唯一标识数据
 * @param {*} dic {id: dataKey, parentId: dataKey2,...}
 * @param {*} level
 * @returns array
 */
listToTree(data, (parentId = null), dic, (level = 0));

| 参数 | 默认值 | 可选值 | 是否必填 | 说明 | | -------- | -------------------------------- | ------ | -------- | ------------ | | data | [] | | true | 需处理的数据 | | parentId | | | true | 父节点的 id | | dic | {id: dataKey, parentId: dataKey} | | true | key 对象 | | level | {value: dataKey, label: dataKey} | | true | 层级 |

cleanDataByChart 处理 echarts 的数据
/**
 * 处理echarts的数据
 * @param {*} data object/array
 * @param {*} dic {resultKey1: dataKey1, resultKey2: {value: dataKey2, ...}}
 * @returns {object}
 */
cleanDataByChart(data, dic);

| 参数 | 默认值 | 可选值 | 是否必填 | 说明 | | ---- | ---------------------------------------------------------- | ------------ | -------- | ------------ | | data | [] | array/object | true | 需处理的数据 | | dic | {resultKey1: dataKey1, resultKey2: {value: dataKey2, ...}} | | true | key 对象 |

dealWithData 处理判空数据
/**
 * 处理判空数据
 * @param {number | null | undefined | string} data 数据
 * @param {string} unit 单位
 * @param {object} base {
 *   emptyArr: [], - 判空的集合,不传则默认为[null, undefined]
 *   abs: false,  - 是否取绝对值
 *   subValue: "-", - 数据为空时替代的文本, 不传则默认为 '-'
 *   subUnit: '',  - 数据为空时替代的单位,不传则使用unit
 *   fn: null - 在判断emptyArr之后判断的方法
 * }
 * @returns {string|*}
 */
dealWithData(data, unit, base);

| 参数 | 默认值 | 可选值 | 是否必填 | 说明 | | ---- | ------ | ---------------------------------------------------------------------- | -------- | -------------- | | data | | number / null / undefined /string | true | 需处理的数据 | | unit | | | false | 单位, 默认为'' | | base | | { emptyArr: [], abs: false, subValue: "-", subUnit: '', fn: () => '' } | false | 配置 |

formatNumber 格式化数字
/**
 * 格式化数字
 * @param {number | null | undefined | string} data 数据
 * @param {number} fixedNum 保留的小数位数,默认不处理
 * @param {string} unit 单位
 * @returns {string|*}
 */
formatNumber(num, fixedNum, unit);

| 参数 | 默认值 | 可选值 | 是否必填 | 说明 | | -------- | ------ | --------------------------------- | -------- | -------------------------- | | data | | number / null / undefined /string | true | 需处理的数据 | | fixedNum | | | false | 保留的小数位数,默认不处理 | | unit | '' | | false | 单位 |

inRange 判断数据是否在区间中
/**
 * 判断数据是否在区间中
 * @param {number} number 目标数据
 * @param {string} range 比较范围 []/[)/()/(]
 * @param {string} compareType 判断类型 取值: in - 区间内 out - 区间外
 *
 * @returns boolean
 */
inRange(number, range, (compareType = "in"));

| 参数 | 默认值 | 可选值 | 是否必填 | 说明 | | ----------- | ------ | ----------------------------------- | -------- | --------------------------------- | | number | | number / null / undefined /string | true | 目标数据 | | range | | '[0,10]'/'[0,10)'/'(0,10)'/'(0,10]' | true | 比较范围 | | compareType | in | in/out | false | 判断类型 in - 区间内 out - 区间外 |

equals 判断数据是否相等
/**
 * 判断数据是否相等
 * @param {*} data1 数据1
 * @param {*} data2 数据2
 * @param {*} compare 比较的基准 ==/===
 * @returns boolean
 */
equals(data1, data2, (compare = "=="));

| 参数 | 默认值 | 可选值 | 是否必填 | 说明 | | ------- | ------ | ------------------------------------------ | -------- | ---------- | | data1 | | number / null / undefined /string / object | true | 数据 1 | | data2 | | number / null / undefined /string / object | true | 数据 2 | | compare | == | == / === | false | 比较的基准 |

downloadFile 导出文件
/**
 * 导出文件
 * @param blob 文件|blob类型
 * @param downloadName 导出的文件名称
 * @param type 文件扩展名 | 默认xls
 * @param defDate 文件名后面是否要加上日期 | 默认true
 */
downloadFile(blob, downloadName, (type = "xls"), (defDate = true));

| 参数 | 默认值 | 可选值 | 是否必填 | 说明 | | ------------ | ------ | ------ | -------- | ------------------------ | | blob | | blob | true | 文件二进制流 | | downloadName | | string | true | 导出的文件名称 | | type | xls | | false | 文件扩展名 | | defDate | true | | false | 文件名后面是否要加上日期 |

filterAsyncRoutes 获取权限路由
/**
 * 获取权限路由
 * @param routes  本地配置的路由资源
 * @param resource  后端返回的权限资源
 * @returns {[]}
 */
filterAsyncRoutes(routes, resource);

| 参数 | 默认值 | 可选值 | 是否必填 | 说明 | | -------- | ------ | ------ | -------- | ------------------ | | routes | [] | | true | 本地配置的路由资源 | | resource | [] | | true | 后端返回的权限资源 |

getRealApi 获取目标 api
/**
 * 获取api
 * @param {*} apiStr api组装的字符串
 * @param {*} apis   api集合
 */
getRealApi(apiStr, apis);

| 参数 | 默认值 | 可选值 | 是否必填 | 说明 | | ------ | ----------------- | ------ | -------- | ---------------- | | apiStr | 'xxx.xxxx' | string | true | api 组装的字符串 | | apis | {xxx: {xxxx: ''}} | object | true | api 集合 |

debounce 防抖
/** 防抖函数
 * @param {Function} func
 * @param {number} wait
 * @param {boolean} immediate
 * @param {object} context
 * @return {Function} 事件处理函数
 */
debounce(fn, delay, immediate, context);

| 参数 | 默认值 | 可选值 | 是否必填 | 说明 | | --------- | -------- | -------- | -------- | ------------ | | fn | () => {} | function | true | 执行的方法 | | delay | 1000 | number | true | 延时时间 | | immediate | false | boolean | false | 是否立即执行 | | context | this | | | 上下文对象 |

throttle 节流函数
/** 防抖函数
 * @param {Function} func
 * @param {number} wait
 * @param {boolean} immediate
 * @param {object} context
 * @return {Function} 事件处理函数
 */
throttle(fn, (delay = 200), (immediate = false), (context = this));

| 参数 | 默认值 | 可选值 | 是否必填 | 说明 | | --------- | -------- | -------- | -------- | ------------ | | fn | () => {} | function | true | 执行的方法 | | delay | 1000 | number | true | 延时时间 | | immediate | false | boolean | false | 是否立即执行 | | context | this | | | 上下文对象 |

initPromise 设置微任务事件
/** 设置微任务事件
 * @param {Function} callback
 */
initPromise(callback);

| 参数 | 默认值 | 可选值 | 是否必填 | 说明 | | -------- | -------- | -------- | -------- | ---------- | | callback | () => {} | function | true | 执行的方法 |