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

gems-tools

v0.0.14

Published

a custom typescript utility class

Downloads

4

Readme

简介

这是一个定制化的工具库,不断补充工具函数,工具类,原生类拓展等

仅支持 ES6 import 语法使用

推荐配合 typescript 下使用

bug 反馈 Email:[email protected]

更新日志

v0.0.1

  • 2021-7-29 初始化项目 新增 GMapGMath

v0.0.2

  • 2021-7-29 修改打包入口和导出路径,使得更便捷的引入

v0.0.3

  • 2021-7-30 新增 gTypegObj 工具函数

v0.0.4

  • 2021-7-30 完成文档自动化生成构建和注释补充

v0.0.5

  • 2021-8-3 优化文档目录
  • 2021-8-3 新增 gArray 工具函数

v0.0.6

  • 2021-8-4 开始编写gUtils 新增 gNextTick 函数

v0.0.7

  • 2021-8-4 fixed 修复引入错误

v0.0.8

  • 2021-8-4 gNextTick 更名为 nextTick,新增 copy
  • 2021-8-9 nextTick 升级,现在可以更准确的在下一 tick 执行任务了

v0.0.9

  • 2021-8-9 新增 GStorage

v0.0.10

  • 2021-8-9 新增 GTime

v0.0.11

  • 2021-9-6 优化导出

v0.0.13

  • 2021-10-3 修复导出

v0.0.14

  • 2021-10-3 修复 node 下无 window 导致报错的 bug

api 文档

gArray

类型 function tools

针对数组的一些工具函数

forEachType

从左/右(left/right)遍历数组 柯里化函数

  • 参数 type "left" | "right"
  • 参数 arr T[]
  • 参数 cb (value: T, index: number, array: T[]) => void
  • 返回值 array T[]
  • 示例
forEachType("right")([1,2,3],(v,k,arr)=>console.log(v,k,arr)]);

forEach

左遍历

  • 参数 arr T[]
  • 参数 cb (value: T, index: number, array: T[]) => void
  • 返回值 array T[]

forEachRight

右遍历

  • 参数 arr T[]
  • 参数 cb (value: T, index: number, array: T[]) => void
  • 返回值 array T[]

isArrayLike

判断是否类数组

  • 参数 val any
  • 返回值 boolean

flatten

拉平数组

  • 参数 arr array
  • 参数 depth depth 最多拉平的层级 默认1
  • 返回值 array

deepFlatten

深度拉平数组

  • 参数 arr array
  • 返回值 array

unique

数组去重

  • 参数 arr array
  • 返回值 array

intersection

获取数组交集

  • 参数 arrT []数组1
  • 参数 arrR []数组2
  • 返回值 []两数组同栈集合

intersectionAll

取多个数组的交集

  • 参数 ...arr [][]多个数组
  • 返回值 数组交集

union

多个元素的并集(去重)

  • 参数 ...arr [][]多个数组
  • 返回值 数组并集

difference

两个数组的差集

  • 参数 arrT []数组1
  • 参数 arrR []数组2
  • 返回值 数组差集

differenceAll

多个数组的差集

  • 参数 ...arr [][]多个数组
  • 返回值 数组差集

array2Tree

将单层级数组转化为树形结构

parentId为父元素的唯一标识,id为元素的唯一标识,默认为'id', pid为元素的父元素标识,默认为'pid',children为要生成多层级子元素的字段名,默认为'children'

  • 参数 arr 扁平数组
  • 参数 parentId
  • 参数 options <{ id = "id", pid = "pid", children = "children" }>
  • 返回值 树形数组

tree2Array

树状结构转为一维数组

id为每个元素的唯一标识,默认为'id',children为多层级的子元素列表字段,默认为'children'

  • 参数 arr 扁平数组
  • 参数 parentId
  • 参数 options <{ id = "id", children = "children" }>
  • 返回值 一维数组

array2Object

数组转为对象

如果数组元素为对象时指定对象的某个唯一字段为 key 值,没有指定则默认为下标索引值

  • 参数 arr 数组
  • 参数 key
  • 返回值 object

getTreeChains

根据标识获取树状结构的数据链

  • 参数 id number|string
  • 参数 tree <{children:[]}>[]
  • 参数 options <{ id: "id", pId: "pId", children: "children" }>
  • 返回值 array

arrayLike2Array

类数组转为数组

  • 参数 obj Iterable | ArrayLike
  • 返回值 T[]

chunk

根据给定长度进行分组

  • 参数 arr T[]
  • 参数 size number
  • 返回值 T[][]

compact

过滤列表中的空数据

  • 参数 arr T[]
  • 返回值 T[]

countBy

根据条件获取元素的出现次数

  • 参数 arr T[]
  • 返回值 T[]

countByValue

获取指定元素的出现次数

  • 参数 arr
  • 参数 val
  • 返回值 number

indexOfAll

获取指定元素的下标值

  • 参数 arr
  • 参数 val
  • 返回值 number[]

shuffe

随机排序

  • 参数 arr
  • 返回值 number[]

sample

随机取数组中数据

size为取出元素的个数

  • 参数 arr any[]
  • 参数 size number
  • 返回值 any[]
  • 示例
sample([1, 2, 3, 4, 5, 6, 7, 8, 9], 3) 结果=>[4, 6, 8]

GMap

类型 class 继承 Map

array

静态方法

  • 参数 map 接收GMap或者Map类型
  • 返回值 {key,value}[]

getKeys

静态方法

  • 参数 map 接收GMap或者Map类型
  • 返回值 key[]

getKeys

  • 返回值 key[]

getValues

  • 返回值 value[]

getEntrues

  • 返回值 <[key,value]>[]

map

  • 参数 callback (value,key,index)=>T
  • 返回值 T[]

filter

  • 参数 callback (value,key,index)=>boolean
  • 返回值 value[]

GMath

类型 class

注意!该类下的方法皆为静态方法

randomLenNum

随机长度数字

  • 参数 length
  • 参数 isNumber
  • 返回值 string|number

randomStr

随机字符串

  • 返回值 string

randomBoolean

随机布尔值

  • 参数 float
  • 返回值 boolean

randomRange

随机数字范围

  • 参数 min
  • 参数 max
  • 参数 float
  • 返回值 number

randomArray

随机返回数组中的一项

  • 参数 arr T[]
  • 返回值 T

randomLength

随机长度范围内的整值(多适用于随机取数组索引)

  • 参数 length
  • 返回值 number

precision

精度控制

  • 参数 num 浮点数
  • 参数 precision 精度 默认=2 保留2位小数
  • 返回值 number

between

判断两数或日期之间

  • 参数 source T 判断目标 可以是number|string|Date
  • 参数 target T[]判断范围
  • 参数 border 是否含边界 默认false 含左侧
  • 返回值 boolean

gObj

类型 function tools

针对对象的一些工具函数

keys

获取keys 等同于Object.keys

  • 参数 data object
  • 返回值 (keyof data)[]

omitBy

忽略某些属性

  • 参数 origin object 需要操作的对象
  • 参数 callback (origin[key])=>boolean 忽略的方法 类似数组filter 用法
  • 返回值 object

pick

挑选某些属性

  • 参数 origin 被操作对象
  • 参数 propList 需要挑选的字段数组
  • 返回值 object

clone

浅拷贝

  • 参数 origin 拷贝对象
  • 返回值 new origin

deepClone

深拷贝

  • 参数 data 拷贝对象 可以是正则/日期对象
  • 返回值 new origin

extend

合并对象 基于Object.assign

  • 参数 target 源对象
  • 参数 args 其余对象
  • 返回值 target

filterKeys

根据保留/删除(keep/remove)类型过滤字段 柯里化函数

  • 参数 type "keep"|"remove"
  • 参数 obj
  • 参数 keys string[] 保留或者删除的数组
  • 返回值 object
  • 示例
filterKeys("keep")({a:1,b:2},['a']);

keepKeys

保留给定字段 filterKeys("keep")

  • 参数 obj
  • 参数 keys string[] 保留或者删除的数组
  • 返回值 object

removeKeys

删除给定字段 filterKeys("remove")

  • 参数 obj
  • 参数 keys string[] 保留或者删除的数组
  • 返回值 object

replaceKeys

替换对象字段名

  • 参数 obj
  • 参数 rules {[key in obj]:newKey}
  • 返回值 object

mergeProperties

覆盖对象属性 以初始化对象为基准 去除新对象多余字段,为缺失字段填充默认值,浅操作,仅对第一层字段有效

  • 参数 distObject 初始化对象
  • 参数 srcObject 传递过来新对象
  • 返回值 object

GStorage

类型 class 继承 Map

useGStore

直接使用,传入命名空间,会查找或创建并返回对应实例

  • 参数 namespaced string
  • 返回值 GStorage

init

实例方法 初始化 自动调用

saveState

实例方法 保存当前命名空间本地存储信息 自动调用

setItem

存储字段名对应的内容信息

  • 参数 key
  • 参数 data
  • 返回值 state 整个store对象

getItem

获取字段名对应的内容信息

  • 参数 key
  • 返回值 value store中key对应的值

removeItem

删除字段名对应的内容信息

  • 参数 key
  • 返回值 state 整个store对象

clear

清除当前命名空间

GTime

类型 class

一些时间和日期方法

formatZero

静态方法,补零

  • 参数 num
  • 参数 len 2
  • 返回值 string

getDigitTime

静态方法 获取时分秒,

  • 参数 time 默认当前时间
  • 返回值 xx:xx:xx

gType

类型 function tools

isType

判断类型的基础方法 柯里化函数

  • 参数 type string 类型字符串
  • 参数 val 判断的值
  • 返回值 boolean
  • 示例
isType('String')('测试用例');

isObject

  • 参数 val
  • 返回值 boolean

isEmptyObject

  • 参数 val
  • 返回值 boolean

isArray

  • 参数 val
  • 返回值 boolean

isArguments

  • 参数 val
  • 返回值 boolean

isNull

  • 参数 val
  • 返回值 boolean

isNumber

  • 参数 val
  • 返回值 boolean

isString

  • 参数 val
  • 返回值 boolean

isBoolean

  • 参数 val
  • 返回值 boolean

isFunction

  • 参数 val
  • 返回值 boolean

isPromise

  • 参数 val
  • 返回值 boolean

isDate

  • 参数 val
  • 返回值 boolean

isRegExp

  • 参数 val
  • 返回值 boolean

isMap

  • 参数 val
  • 返回值 boolean

isSet

  • 参数 val
  • 返回值 boolean

isSymbol

  • 参数 val
  • 返回值 boolean

isError

  • 参数 val
  • 返回值 boolean

isUndefined

  • 参数 val
  • 返回值 boolean

isEmpty

  • 参数 val
  • 返回值 boolean

isNaN

  • 参数 val
  • 返回值 boolean

isElement

  • 参数 val
  • 返回值 boolean

gUtils

类型 function tools

一些好用的工具函数,不针对类型

nextTick

  • 参数 cb 即将执行的函数
  • 参数 ctx 传入cb的参数

copy

复制到剪贴板

  • 参数 string