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

umob

v0.3.0

Published

Umob modular utilities

Downloads

7

Readme

Using npm

npm install umob

Then, assuming you're using a module-compatible system (like webpack, Rollup etc):

import { debounce } from 'umob'

CommonJS:

const { debounce } = require('umob')

Directly in a browser

<script src="index.umd.js"></script>
<script>
    Umob.debounce()
</script>

A global, Umob, will be created, containing all exports of the module version.

documentation (CN)

| 方法、描述 | 参数 | 返回 | | -------- | -------- | -------- | | dateFormat(date, [format='yyyy-MM-dd']) 将日期格式化为 'yyyy-MM-dd', 'yyyy-MM-dd hh:mm:ss' 等格式,分隔符可替换 | date (*):待格式化日期,可被格式化的日期详见 toDate 方法 [format='yyyy-MM-dd'] (string):目标日期的格式,如:'yyyy-MM-dd hh:mm:ss S q w W T' 'y+':年 'M+':月 'd+':日 'h+':时 'm+':分 's+':秒 'S':毫秒 'q+':季度 'w':周 'W':大写周 'T':T | (string):格式化后的日期,若无法格式化将返回空字符串 | | dateGap(startDate, endDate, [opt=]) 获取两个日期之间的日期(年月) | startDate (*):开始日期,支持年-月-日格式,详见 toDate 方法;支持年-月格式,详见 toMonth 方法 endDate (*):结束日期,支持年-月-日格式,详见 toDate 方法;支持年-月格式,详见 toMonth 方法 [opt=] (Object):选项对象 [opt.includeHead=true] (boolean):是否包含起始日期 [opt.includeTail=true] (boolean):是否包含结尾日期 [opt.format='yyyy-MM-dd'] (string):日期格式化 | (Array<string>):日期数组,若无法获取,将返回 [] | | calculateDate(date, num, [fmt=]) 计算date日期num天(月)之后(前)的日期 | date (number | string | Date):基准日期,若计算月份,格式见 toMonth 方法,若计算年月日日期,格式见 toDate 方法 num (number):天数(月数) [fmt=] (string):返回的日期格式,默认为yyyy-MM-dd | (string):num天(月)之后的日期,若无法计算,将返回空字符串 | | dateInterval(date1, date2, [opt=]) 获取两个日期作差的毫秒数 | date1 (number | string | Date):起始时间,格式见 toDate 方法 date2 (number | string | Date):同上 [opt=] (object):选项对象 [opt.format='ms'] (string):返回时间的格式d、h、m、s、ms(天、时、分、秒、毫秒) | (number):两个日期作差的毫秒数,若输入无效日期将返回NaN | | toDate(params) 将参数转化为日期格式 | params (*):待转化的数据。 number 类型将会作为时间戳被转化为日期 string 类型支持形如 yyyy(\D)?MM(\2)dd( hh:mm:ss)?yyyy(\D)?MM 的格式,如:'2020-07-12'、'20200712'、'2020.07.12'、'2020/07/12'、'2020.07.12 12:23:44'、'202307'、'2023-01' Date 类型将直接返回 | (Date):转化后的日期,若无法转化或为其他类型将返回 Invalid Date | | toMonth(params) 将参数转化为yyyy-MM格式的年月 | params (*):待转化的数据。 number 类型将会被转化为字符串 string 类型支持形如 yyyy(\D)?MM 的格式,如:'2020-07'、'202007'、'2020.07'、'2020/07' | (string):转化后的年-月,若无法转化或为其他类型将返回空字符串 | | debounce(fn, wait, [immediate=true]) 创建一个 debounced(防抖动)函数,该函数会从上一次被调用后,延迟 wait 毫秒后调用 fn 方法 | fn (Function):要防抖动的函数 wait (number):需要延迟的毫秒数 [immediate=true] (boolean):首次调用是否立即执行一次 fn | (Function):返回新的 debounced(防抖动)函数 | | throttle(fn, wait, [immediate=true]) 创建一个节流函数,在 wait 秒内最多执行 fn 一次的函数 | fn (Function):要节流的函数 wait (number):需要节流的毫秒数 [immediate=true] (boolean):首次调用是否立即执行一次 fn | (Function):返回新的 throttle 函数 | | getUrlParams([variable=]) 获取url的参数 | [variable=] (String):要获取的参数名称;也可为空,为空将获取url中的所有参数并返回对象 | (Object | String):返回指定的url参数值或url所有的参数对象 | | sortCallback([opt=]) 返回一个方法,该方法为sort函数的入参 | [opt=] (Object):选项对象 [opt.type='desc'] (string)desc 升序,asc 降序 [opt.key] (string | number | Symbol):当排序数组为 Array<Object> 时必填,取值为排序字段的键名 | (Function):返回sort排序方法 | | deepClone(obj) 深度克隆 | obj (*):克隆对象 | (*):返回结果与obj相同,不包括原型链上的属性 | | getCookie(name) 获取cookie | name (string):cookie键名 | (string):cookie值 | | delCookie(name, [domain=location.hostname]) 删除cookie | name (string):cookie键名 [domain=location.hostname] (string):cookie所在的域 | - | | setCookie(name, value, daysToExpire = 30, [path='/'], [domain=location.hostname]) 设置cookie | name (string):cookie键名 value (string):cookie值 [daysToExpire=30] (number):cookie过期天数 [path='/'] (string):cookie路径 [domain=location.hostname] (string):cookie所在的域 | - | | bigNumTransform(num, [opt=]) 将大数字转化为万/亿的形式 | num (number | string):待转化的数 [opt=] (Object):选项对象 [opt.float=2] (number):精度 [opt.merge=true] (boolean):返回结果是否与单位合并,若为 false 将返回数组 [opt.unit=['万', '亿']] (Array<string>):单位配置 | (Array<string> | string):返回转化后的字符串或字符串数组,若无法转化,将返回 'NaN'['NaN', ''] | | extractStr(str, startSymbol, endSymbol, [opt=]) 提取字符串两个特征字符之间的内容 | str (string):待提取的字符串 startSymbol (string):起始特征字符,若特征字符串为以下字符 []\^$.\|?*+(){} 之一,在传入时需添加 \\ 双反斜杠进行转义。传入空字符串,匹配结果将从第一个字符匹配至 endSymbol endSymbol (string):终止特征字符。传入空字符串,结果将从 startSymbol 匹配至字符串末尾 [opt=] (Object):选项对象 [opt.greedyMode=false] (boolean):是否开启贪婪模式,若为 true 返回结果中将包含最大匹配长度的字符串 [opt.global=false] (boolean):是否开启全局匹配,若为 true 将返回所有两个特征字符串之间的内容数组 | (Array<string> | string):两个特征字符之间的内容或内容数组,opt.global=true 返回结果为数组,opt.global=false 返回结果为字符串 | | extractNumbers(str, [allowNegative=false]) 提取字符串中的数字 | str (string):待提取的字符串 [allowNegative=false] (boolean):是否将 - 作为负号识别 | (Array<number>):数字组成的数组 | | isObject(variable) 判断是否为对象 | variable (any):待判断的参数 | (boolean):true | false | | isVaildDate(variable) 判断是否为有效的日期对象 | variable (any):待判断的参数 | (boolean):true | false |

documentation (EN)

| Method & Description | Parameters | Returns | | -------- | -------- | -------- | | dateFormat(date, [format='yyyy-MM-dd']) format date to 'yyyy-MM-dd', 'yyyy-MM-dd hh:mm:ss' etc. - can be replaced with other characters.If the date can't be formatted, an empty string will be returned. | date (*):date to be formatted.Refer to the toDate method for details format (string):format regular like 'yyyy-MM-dd hh:mm:ss S q w W T' 'y+':year 'M+':month 'd+':day 'h+':hour 'm+':minute 's+':second 'S':milliseconds 'q+':quarter 'w':week 'W':week of CN 'T':T | (string):formatted date |

Developing

Test single file:

npm run test:single
# node -v = v16.20.0

Configure the name of the test file in the .env.json file.This file will be created after executing npm run test:single once.

Test all files:

npm run test

Building

npm run build