60+開箱即用的工具函數庫xijs更新指南(v1.2.5)
xijs 是一款開箱即用的 js 業務工具庫, 聚集于解決業務中遇到的常用函數邏輯問題, 幫助開發者更高效的開展業務開發.
接下來就和大家一起分享一下v1.2.5 版本的更新內容以及后續的更新方向.
貢獻者列表:
1. 數據深拷貝cloneDeep
該模塊主要由 20savage 貢獻, 支持 symbol, map, set, weakmap, weakset 等特殊類型的深拷貝, 并防止對象循環引用, 具體使用如下:
import { cloneDeep } from 'xijs';
const door = cloneDeep([1, 2, 3, 4, 5]);
console.log(door); // -> [1, 2, 3, 4, 5]
2. 敏感數據脫敏函數dataDesensitization
該模塊主要由 kevin 貢獻, 具體使用如下:
// 按需引入
import { dataDesensitization } from 'xijs';
console.log('610222188709080909: ', dataDesensitization('idCard', '610222188709080909'));
console.log('18396781187: ', dataDesensitization('phone', '18396781187'));
console.log('深證市龍崗區五和: ', dataDesensitization('address', '深證市龍崗區五和'));
測試用例結果:
import { dataDesensitization, repeat } from 'xijs';
describe('數據脫敏相關測試', () => {
test('數據脫敏', () => {
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', '深證市龍崗區五和')).toEqual('深證******')
expect(dataDesensitization('email', '1832291@qq.com')).toEqual('1****1@qq.com')
expect(dataDesensitization('username', '小小西')).toEqual('小**')
expect(dataDesensitization('fixPhone', '012-1823293')).toEqual('012-*******')
});
});
3. 數字金額轉為大寫capitalizedAmount
該模塊主要由 ayangweb 貢獻, 最大只支持到千億, 具體使用如下:
import { capitalizedAmount } from 'xijs';
capitalizedAmount(100000000); // 壹億元整
capitalizedAmount('2023.04'); // 貳仟零貳拾叁元肆分
capitalizedAmount(-1024); // 欠壹仟零貳拾肆元整
這個功能還是非常實用的, 感興趣的朋友可以直接使用.
4. ip地址補全函數completeIp
該模塊主要由 ayangweb 貢獻, 具體使用如下:
import { completeIp } from 'xijs';
const newIp = completeIp('127.0.0.1');
console.log(newIp); // 127.000.000.001
5. formData轉成JSON格式formDataToJson
該模塊主要由 kevin 貢獻, 具體使用如下:
import { formDataToJson } from 'xijs';
const data = new FormData();
data.set('user', '1');
data.set('age', 29);
data.set('phone', '18329208292')
console.log(formDataToJson(data));
這個函數也非常常用, 我們在處理表單數據進行提交時非常有用.
6. cookie操作類XCookie
該模塊主要由 EasyRo 貢獻, 具體介紹如下:
使用方式介紹:
import { XCookie } from 'xijs';
// 設置 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'}
接下來我們跑一下單元測試, 對整個庫做一個全面的掃描:
整個測試一共花了12.25s, 測試全部通過, 各位小伙伴們可以放松食用.
為了方便大家更好的了解 xijs 這個庫, 我列一個完整的目錄結構供大家參考, 也可以直接用 xijs 的在線文檔中去參考學習.
文檔地址: http://h5.dooring.cn/xijs
全部函數列表
歡迎大家star推薦和共建, 讓前端工作更高效.
github: https://github.com/MrXujiang/xijs