0.0.3 • Published 3 years ago

@daoxin/utils v0.0.3

Weekly downloads
-
License
MIT
Repository
github
Last release
3 years ago

@daoxin/utils

安装

npm install @daoxin/utils

接口文档

baseUtils

成员说明
deepCopyJSON ()深度复制(采用JSON解析方式)
deepCopy ()深度复制(采用递归式)
createGuid ()创建GUID
createIntRandom ()创建指定范围的随机整数
isFromMobileBrowser ()判断网页是否通过移动端设备打开
copyText ()复制文本
$extend ()对象扩展(JQuery $.extend 实现代码)
debounce ()防抖
throttle ()节流
loadCss ()加载css
loadJs ()加载js
getArrayItemRandom ()随机获取数组中的一个子集

cookieUtils

成员说明
set ()设置Cookie
del ()删除Cookie
get ()获取Cookie
getUseJSON ()取Cookie(结果为经过JSON解析的对象)

storageUtils

成员说明
local.set ()设置LocalStorage
local.get ()获取LocalStorage
local.getUseJSON ()获取经过JSON解析的LocalStorage
local.remove()移除指定LocalStorage
local.clear ()清空LocalStorage
session.set ()设置SessionStorage
session.get ()获取SessionStorage
session.getUseJSON ()获取经过JSON解析的LocalStorage
session.remove ()移除指定SessionStorage
session.clear ()清空SessionStorage

descriptoUtils

成员说明
AutoBind ()自动绑定this上下文装饰器
Debounce ()防抖
Throttle ()节流

cryptoUtils

成员说明
setGlobelKey ()设置全局Key
setGlobelIV ()设置全局IV
encrypto ()加密字符串
decrypto ()解密字符串

extArray

成员说明
new extArray().clear()清空
new extArray().insert()插入对象
new extArray().removeIndex()移除指定位置的对象
new extArray().removeValue()移除指定的对象
new extArray().reset()替换
new extArray().unique()去重处理
new extArray().getUnique()获取唯一值
new extArray().equal()数组间是否相等
new extArray().findItem()查找符合条件的第一个对象
new extArray().findItems()查找符合条件的所有对象
new extArray().propToArr()对象属性转数组
new extArray().last()数据的最后一位

extDate

成员说明
new extDate().format()日期格式化字符串
new extDate().getNextDate()获取前后日期
new extDate().getMonth()获取月份

extNumber

成员说明
new extNumber().divide()整除
new extNumber().floor()向下取整
new extNumber().ceil()向上取整
new extNumber().abs()绝对值
new extNumber().round()保留位
new extNumber().toDate()转化为日期对象
new extNumber().toDateFormat()转化为日期格式化字符串
new extNumber().toCashString()转化为现金字符串
new extNumber().toChineseString()转化为中文数字字符串

extString

成员说明
new extString().trimAll()清空所有空格
new extString().toDate()转化为日期对象
new extString().toDateFormat()转化为日期格式化字符串

使用样例

import { baseUtils } from '@daoxin/utils'

test('deepCopyJSON: can run true', () => {

  const obj = {
    a: 1, b: '2', c: '', d: false, e: {}, f: () => 1, g: null, h: class {}
  }
  const newObj = baseUtils.deepCopyJSON(obj)

  expect(newObj !== obj).toBe(true)
  expect(newObj.a).toBe(1)
  expect(newObj.b).toBe('2')
  expect(newObj.c === '').toBe(true)
  expect(newObj.d).toBe(false)
  expect(typeof newObj.e).toBe('object')
  expect(typeof newObj.f === 'undefined').toBe(true)
  expect(newObj.g === null).toBe(true)
  expect(typeof newObj.h === 'undefined').toBe(true)
})

test('deepCopy: can run true', () => {

  const obj = {
    a: 1, b: '2', c: '', d: false, e: {}, f: () => 1, g: null, h: class {}
  }
  const newObj = baseUtils.deepCopy(obj)

  expect(newObj !== obj).toBe(true)
  expect(newObj.a).toBe(1)
  expect(newObj.b).toBe('2')
  expect(newObj.c === '').toBe(true)
  expect(newObj.d).toBe(false)
  expect(typeof newObj.e).toBe('object')
  expect(newObj.f()).toBe(1)
  expect(newObj.g === null).toBe(true)
  expect(typeof newObj.h).toBe('function')
})

test('createGuid: can run true', () => {
  const guid = baseUtils.createGuid()
  expect(guid.length).toBe(36)
})

test('createIntRandom: can run true', () => {
  const num = baseUtils.createIntRandom(0, 1)
  expect(num === 1 || num === 0).toBe(true)
})


test('$extend: can run true', () => {
  const obj = { a: 1, b: { b1: 2 } }
  baseUtils.$extend(true, obj, {
    c: 2, b: { b2: 3 }
  })
  expect(obj.a).toBe(1)
  expect(obj.c).toBe(2)
  expect(obj.b.b1).toBe(2)
  expect(obj.b.b2).toBe(3)
})
import { cryptoUtils } from '@daoxin/utils'

test('encrypto and decrypto: can run true', () => {
  const str = 'hello world'
  const enStr = cryptoUtils.encrypto(str)
  const deStr = cryptoUtils.decrypto(enStr)
  expect(deStr).toBe(str)
})

$ext

成员说明
$ext(arg0: number).divide()整除
$ext(arg0: number).floor()向下取整
$ext(arg0: number).ceil()向上取整
$ext(arg0: number).abs()绝对值
$ext(arg0: number).round()保留位
$ext(arg0: number).toDate()转化为日期对象
$ext(arg0: number).toDateFormat()转化为日期格式化字符串
$ext(arg0: number).toCashString()转化为现金字符串
$ext(arg0: number).toChineseString()转化为中文数字字符串
$ext(arg0: Date).format()日期格式化字符串
$ext(arg0: Date).getNextDate()获取前后日期
$ext(arg0: Date).getMonth()获取月份
$ext(arg0: string).trimAll()清空所有空格
$ext(arg0: string).toDate()转化为日期对象
$ext(arg0: string).toDateFormat()转化为日期格式化字符串
$ext(arg0: Array).insert()插入对象
$ext(arg0: Array).removeIndex()移除指定位置的对象
$ext(arg0: Array).removeValue()移除指定的对象
$ext(arg0: Array).unique()去重处理
$ext(arg0: Array).getUnique()获取唯一值
$ext(arg0: Array).equal()数组间是否相等
$ext(arg0: Array).findItem()查找符合条件的第一个对象
$ext(arg0: Array).findItems()查找符合条件的所有对象
$ext(arg0: Array).propToArr()对象属性转数组
$ext(arg0: Array).last()数据的最后一位

使用样例

import $ext,{ extDate } from '@daoxin/utils'
console.log("extDate===>",new extDate(new Date()).format('yyyy-MM-dd'))
console.log("$ext===>",$ext(new Date()).format('yyyy-MM-dd'))
// 方式一:
/* eslint-disable no-undef */
import $ext from '@daoxin/utils'

test('trimAll() can run', () => {
  const str = '  tes  test  '
  const newStr = $ext(str).trimAll()
  expect(newStr).toBe('testest')
})

test('toDate() can run', () => {
  const dateStr = '2020/1/1'
  const date = $ext(dateStr).toDate()
  expect(date.getFullYear()).toBe(2020)
})

test('toDateFormat() can run', () => {
  const dateStr = '2020/1/1'
  const year = $ext(dateStr).toDateFormat('yyyy')
  expect(year).toBe('2020')
})


// 方式二:
import { extString } from '@daoxin/utils'
test('trimAll() can run', () => {
  const str = '  tes  test  '
  const $ext=new extString(str);
  const newStr = $ext.trimAll()
  expect(newStr).toBe('testest')
})
/* eslint-disable no-undef */
import $ext from '@daoxin/utils'

test('insert() can run', () => {
  const arr = [1, 0, 2]
  $ext(arr).insert(3, 9)
  expect(arr[3]).toBe(9)
  $ext(arr).insert(0, -1)
  expect(arr[0]).toBe(-1)
})

test('removeIndex() can run', () => {
  const arr = [1, 0, 2]
  $ext(arr).removeIndex(2)
  expect(arr.length).toBe(2)
  const v = $ext(arr).removeIndex(0, true)
  expect(v).toBe(1)
})

test('clear() can run', () => {
  const arr = [1, 0, 2]
  $ext(arr).clear()
  expect(arr.length).toBe(0)
})

test('reset() can run', () => {
  const arr = [1, 0, 2]
  $ext(arr).reset(3, 3, 3, 3)
  expect(arr.length).toBe(4)
})

test('removeValue() can run', () => {
  const arr = [1, 0, 2, 0, 2]
  $ext(arr).removeValue(0)
  expect(arr.length).toBe(4)
  $ext(arr).removeValue(2, true)
  expect(arr.length).toBe(2)
})

test('unique() can run', () => {
  const arr = [1, 0, 2, 0, 2]
  $ext(arr).unique(0)
  expect(arr.length).toBe(3)
})

test('getUnique() can run', () => {
  const arr = [1, 0, 2, 0, 2]
  const newArr = $ext(arr).getUnique(0)
  expect(arr.length).toBe(5)
  expect(newArr.length).toBe(3)
})

test('unique() can run', () => {
  const arr = [1, 0, 2, 0, 2]
  const arr2 = [1, 0, 2, 0, 2]
  const b = $ext(arr).equal(arr2)
  expect(b).toBe(true)
})

test('findItem() can run', () => {
  const arr = [{ a: 1, b: 2 }, { a: 2, b: 3 }]
  const ret = $ext(arr).findItem('a', 1)
  expect(ret.a).toBe(1)
  expect(ret.b).toBe(2)
})

test('findItems() can run', () => {
  const arr = [{ a: 1, b: 2 }, { a: 2, b: 3 }, { a: 2, b: 4 }]
  const ret = $ext(arr).findItems('a', 2)
  expect(ret.length).toBe(2)
  expect(ret[0].b).toBe(3)
  expect(ret[1].b).toBe(4)
})

test('propToArr() can run', () => {
  const arr = [{ a: 1, b: 2 }, { a: 2, b: 3 }, { a: 2, b: 4 }]
  const ret = $ext(arr).propToArr('a')
  expect(ret.length).toBe(3)
  expect(ret[0]).toBe(1)
  expect(ret[1]).toBe(2)
  expect(ret[2]).toBe(2)
})

test('last() can run', () => {
  const arr = [1, 0, 2, 0, 2]
  const last = $ext(arr).last()
  expect(last).toBe(2)
})
/* eslint-disable no-undef */
import $ext from '@daoxin/utils'

test('format() can run', () => {
  const date = new Date()
  const year = $ext(date).format('yyyy')
  const month = $ext(date).format('M')
  const d = $ext(date).format('d')
  const h = $ext(date).format('h')
  const m = $ext(date).format('m')
  const s = $ext(date).format('s')
  expect(year).toBe(date.getFullYear().toString())
  expect(month).toBe((date.getMonth() + 1).toString())
  expect(d).toBe(date.getDate().toString())
  expect(h).toBe(date.getHours().toString())
  expect(m).toBe(date.getMinutes().toString())
  expect(s).toBe(date.getSeconds().toString())
})

test('getMonth() can run', () => {
  const date = new Date()
  const month = $ext(date).getMonth()
  expect(month).toBe(date.getMonth() + 1)
})

test('getNextDate() can run', () => {
  const date = new Date('2021/2/28')
  const dateExt = $ext(date)
  expect(dateExt.getNextDate(1).getMonth() + 1).toBe(3)
  expect(dateExt.getNextDate(-1).getDate()).toBe(27)
})
/* eslint-disable no-undef */
import $ext from '@daoxin/utils'

test('divide() can run', () => {
  const num = 7
  expect($ext(num).divide(3)).toBe(2)
})

test('floor() can run', () => {
  const num = 7.9
  expect($ext(num).floor()).toBe(7)
})

test('ceil() can run', () => {
  const num = 7.1
  expect($ext(num).ceil()).toBe(8)
})

test('abs() can run', () => {
  const num = -7.1
  expect($ext(num).abs()).toBe(7.1)
})

test('round() can run', () => {
  expect($ext(7.4).round()).toBe(7)
  expect($ext(7.5).round()).toBe(8)
  expect($ext(7.5).round(-1)).toBe(10)
  expect($ext(7.54).round(1)).toBe(7.5)
})

test('toDate() can run', () => {
  expect($ext(0).toDate().getFullYear()).toBe(1970)
})

test('toDateFormat() can run', () => {
  expect($ext(0).toDateFormat('yyyy')).toBe('1970')
})

test('toCashString() can run', () => {
  expect($ext(100000000).toCashString()).toBe('100,000,000')
})

test('toDateFormat() can run', () => {
  expect($ext(100000000).toChineseString()).toBe('一亿')
})