Global

Members

easySessionStorage

Source:

通用 easySessionStorage

Example
import { easySessionStorage } from '@jairwinl/utils/esm/easySessionStorage';

// 写入
easySessionStorage.setItem('key', { a: 'a' });

// 读取
easySessionStorage.getItem('key') || {};

// 删除指定key
easySessionStorage.removeItem('key');

// 全部清除
easySessionStorage.clear();

msg

Source:

校验arg参数数据类型

Methods

appendQueriesToUrl(url, params)

Source:

向url中添加query
备注: key/value均会进行一次encodeURIComponent

Example
import { appendQueriesToUrl } from '@jairwinl/utils/esm/appendQueriesToUrl';

appendQueriesToUrl('https://example.com', { a: 'b', c: 'd' })

// => 'https://example.com?a=b&c=d'
Parameters:
Name Type Description
url string
params object

kv键值对,如: {chInf: 'abc'};

arrayToObject(arr, key) → {object}

Source:

数组元素均为对象,转换后对象的key值为数组对象元素的某key对应value

Parameters:
Name Type Description
arr array

待转换数组

key string

转换依据,数组对象元素的key

Returns:

res 转换后的对象

Type
object

box(promise)

Source:

异步函数无需 try-catch,让异步编码开发体验更佳。

  1. 减少 try-catch 引入的嵌套
  2. 防止出现大而全的 try-catch
  3. 自动推导类型,避免 try-catch 丢失类型
  4. 最重要的是逼迫开发者将异常放到第一位去考虑,避免忘记 try-catch 导致 Unhandled Promise rejection
Example
const [error, resp] = await box(ajax.get(url));
if (error || !resp.success) {
   const err = error || resp;
   console.log('error');
   throw err;
}
return resp;
Parameters:
Name Type Description
promise

Promise Promise

Returns:

返回 tuple,失败则第一项是 error,成功第一项为 undefined,第二项是返回值

downloadFileUseJS(blob, name, prefix)

Source:
Example
import { downloadFileUseJS } from '@jairwinl/utils/esm/downloadFileUseJS';

downloadFileUseJS(data)

downloadFileUseJS(data, '测试文件', 'xls')
Parameters:
Name Type Default Description
blob Blob

file文件流

name string 文件

文件名称

prefix string xls

文件名称后缀

formatDate(timeStamp, formatopt) → {string}

Source:

时间戳格式化输出

Example
import { formatDate } from '@jairwinl/utils/esm/formatDate';

formatDate();
Parameters:
Name Type Attributes Default Description
timeStamp string timestamp

日期

format string <optional>
YYYY-MM-DD HH:mm:ss

时间格式

Returns:

时间格式输出

Type
string

getQueryString(key) → {string}

Source:

获取url链接参数

Example
import { getQueryString } from '@jairwinl/utils/esm/getQueryString';

export type IQueryStringKey = 'id'

getQueryString<IQueryStringKey>('id') as string; // 详情ID
Parameters:
Name Type Description
key string

链接参数

Returns:

链接参数

Type
string

isArray(v) → {Boolean}

Source:

判断一个给定的值是否是数组。在新的浏览器环境中使用 Array.isArray,否则使用 polyfill

Example
import { isArray } from '@jairwinl/utils/esm/isArray';

isArray([])
// => true

isArray({})
// => false
Parameters:
Name Type Description
v any

需要判断的值

Returns:

是数组则返回 true

Type
Boolean

jsonParseSafely(value, parseFailedDefaultValue) → {*}

Source:

危险的 JS 内置函数:JSON.parse

Example
import { jsonParseSafely } from '@jairwinl/utils/esm/jsonParseSafely';

jsonParseSafely(window.sessionStorage.getItem(key))
Parameters:
Name Type Default Description
value string

需要检查的输入

parseFailedDefaultValue * {}

解析失败默认返回{}

Returns:

解析失败默认返回{},支持自定义

Type
*

parse(qs, sep, eq, options)

Source:

解析 URL query string

Parameters:
Name Type Description
qs string

需要解析的 URL query string

sep string

用于界定键值对的子字符串。默认为 '&'

eq string

用于界定 key 和 value 的子字符串。默认为 '='

options object

自定义解析行为

Properties
Name Type Description
decodeURIComponent function

自定义解码

stringify(obj, sep, eq, options) → {string}

Source:

将对象转换成 query string

Example
stringify({})
// => ''

stringify({key: 'value', undef: undefined })
// => 'key=value&undef='
Parameters:
Name Type Description
obj object

需要序列化成 URL query string 的对象。属性值支持数组。

sep string

用于界定键值对的子字符串。默认为 '&'

eq string

用于界定 key 和 value 的子字符串。默认为 '='

options object

自定义编码行为

Properties
Name Type Description
encodeURIComponent function

用于自定义的 encodeURIComponent

Returns:
Type
string