60+開箱即用的工具函數(shù)庫xijs更新指南(v1.2.5)
xijs 是一款開箱即用的 js 業(yè)務(wù)工具庫, 聚集于解決業(yè)務(wù)中遇到的常用函數(shù)邏輯問題, 幫助開發(fā)者更高效的開展業(yè)務(wù)開發(fā).
接下來就和大家一起分享一下v1.2.5 版本的更新內(nèi)容以及后續(xù)的更新方向.
貢獻(xiàn)者列表:
1. 數(shù)據(jù)深拷貝cloneDeep
該模塊主要由 20savage 貢獻(xiàn), 支持 symbol, map, set, weakmap, weakset 等特殊類型的深拷貝, 并防止對(duì)象循環(huán)引用, 具體使用如下:
import { cloneDeep } from 'xijs';
const door = cloneDeep([1, 2, 3, 4, 5]);
console.log(door); // -> [1, 2, 3, 4, 5]
2. 敏感數(shù)據(jù)脫敏函數(shù)dataDesensitization
該模塊主要由 kevin 貢獻(xiàn), 具體使用如下:
// 按需引入
import { dataDesensitization } from 'xijs';
console.log('610222188709080909: ', dataDesensitization('idCard', '610222188709080909'));
console.log('18396781187: ', dataDesensitization('phone', '18396781187'));
console.log('深證市龍崗區(qū)五和: ', dataDesensitization('address', '深證市龍崗區(qū)五和'));
測試用例結(jié)果:
import { dataDesensitization, repeat } from 'xijs';
describe('數(shù)據(jù)脫敏相關(guān)測試', () => {
test('數(shù)據(jù)脫敏', () => {
expect(dataDesensitization('idCard', '610222188709080909')).toEqual('61**************09')
expect(dataDesensitization('phone', '18396781187')).toEqual('183****1187')
expect(dataDesensitization('custom', '18396781187', 1, 8)).toEqual('1********87')
expect(dataDesensitization('address', '深證市龍崗區(qū)五和')).toEqual('深證******')
expect(dataDesensitization('email', '1832291@qq.com')).toEqual('1****1@qq.com')
expect(dataDesensitization('username', '小小西')).toEqual('小**')
expect(dataDesensitization('fixPhone', '012-1823293')).toEqual('012-*******')
});
});
3. 數(shù)字金額轉(zhuǎn)為大寫capitalizedAmount
該模塊主要由 ayangweb 貢獻(xiàn), 最大只支持到千億, 具體使用如下:
import { capitalizedAmount } from 'xijs';
capitalizedAmount(100000000); // 壹億元整
capitalizedAmount('2023.04'); // 貳仟零貳拾叁元肆分
capitalizedAmount(-1024); // 欠壹仟零貳拾肆元整
這個(gè)功能還是非常實(shí)用的, 感興趣的朋友可以直接使用.
4. ip地址補(bǔ)全函數(shù)completeIp
該模塊主要由 ayangweb 貢獻(xiàn), 具體使用如下:
import { completeIp } from 'xijs';
const newIp = completeIp('127.0.0.1');
console.log(newIp); // 127.000.000.001
5. formData轉(zhuǎn)成JSON格式formDataToJson
該模塊主要由 kevin 貢獻(xiàn), 具體使用如下:
import { formDataToJson } from 'xijs';
const data = new FormData();
data.set('user', '1');
data.set('age', 29);
data.set('phone', '18329208292')
console.log(formDataToJson(data));
這個(gè)函數(shù)也非常常用, 我們?cè)谔幚肀韱螖?shù)據(jù)進(jìn)行提交時(shí)非常有用.
6. cookie操作類XCookie
該模塊主要由 EasyRo 貢獻(xiàn), 具體介紹如下:
使用方式介紹:
import { XCookie } from 'xijs';
// 設(shè)置 cookie,
XCookie.set('foo', 'bar', {
path: './',
maxAge: 10,
secure: true,
domain: 'localhost',
expires: 'Wed, 21 Oct 2023 07:28:00 GMT',
});
// 獲取 cookie
XCookie.get('foo'); // bar
// 刪除 cookie
XCookie.remove('foo');
XCookie.get('foo'); // ''
// 獲取所有 cookie
XCookie.set('foo', 'bar');
XCookie.set('foo1', 'bar1');
XCookie.allCookies(); // {foo: 'bar', foo1: 'bar1'}
接下來我們跑一下單元測試, 對(duì)整個(gè)庫做一個(gè)全面的掃描:
整個(gè)測試一共花了12.25s, 測試全部通過, 各位小伙伴們可以放松食用.
為了方便大家更好的了解 xijs 這個(gè)庫, 我列一個(gè)完整的目錄結(jié)構(gòu)供大家參考, 也可以直接用 xijs 的在線文檔中去參考學(xué)習(xí).
文檔地址: http://h5.dooring.cn/xijs
全部函數(shù)列表
歡迎大家star推薦和共建, 讓前端工作更高效.
github: https://github.com/MrXujiang/xijs