{"id":17140058,"url":"https://github.com/mrxujiang/xijs","last_synced_at":"2025-04-05T16:08:30.930Z","repository":{"id":38346681,"uuid":"432411867","full_name":"MrXujiang/xijs","owner":"MrXujiang","description":"A business - oriented scene Js Library","archived":false,"fork":false,"pushed_at":"2024-04-11T15:16:04.000Z","size":506,"stargazers_count":294,"open_issues_count":4,"forks_count":68,"subscribers_count":7,"default_branch":"main","last_synced_at":"2024-04-14T00:37:46.568Z","etag":null,"topics":["js","js-framework","js-learning","js-lib","js-library","json-api","json-parser","stringify"],"latest_commit_sha":null,"homepage":"http://h5.dooring.cn/xijs","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MrXujiang.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2021-11-27T08:51:54.000Z","updated_at":"2024-04-13T01:28:58.000Z","dependencies_parsed_at":"2024-04-13T18:04:35.016Z","dependency_job_id":null,"html_url":"https://github.com/MrXujiang/xijs","commit_stats":{"total_commits":97,"total_committers":15,"mean_commits":6.466666666666667,"dds":0.711340206185567,"last_synced_commit":"b6251b47497937b5be70e1dc503035853867df2f"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrXujiang%2Fxijs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrXujiang%2Fxijs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrXujiang%2Fxijs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrXujiang%2Fxijs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MrXujiang","download_url":"https://codeload.github.com/MrXujiang/xijs/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247361691,"owners_count":20926643,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["js","js-framework","js-learning","js-lib","js-library","json-api","json-parser","stringify"],"created_at":"2024-10-14T20:13:45.384Z","updated_at":"2025-04-05T16:08:30.910Z","avatar_url":"https://github.com/MrXujiang.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"![](http://cdn.dooring.cn/dr/xijs.png)\n\n# xijs\n\n\u003e 招募有想法, 热衷技术的小伙伴一起共建啦! 致力于打造最好用的前端工具库, 您可以提 issue 或者 pr 来共建项目, 或者加作者微信, 一起让项目更健壮.\n\n一款面向复杂业务场景的 js 类库, 目前已支持:\n\n- parser json 解析器, 在原生 json api 基础上支持序列化和反序列化函数, 正则等\n- store 一款支持设置过期时间且支持回调的本地缓存库, 基于 localStorage 二次封装\n- formatDate 支持自定义的时间格式化函数\n- obj2url 将对象转换成编码后的 url 字符串\n- url2obj 将 url 字符串转换成对象\n- isPc 判断设备是否为 pc 端类型\n- debounce 防抖函数\n- throttle 节流函数\n- randomStr 生成指定个数随机字符串的函数\n- uuid 生成唯一 id\n- shuffle 数组乱序, 洗牌算法\n- randomStr 生成随机字符串\n- transformTree 将扁平数组转换成树结构\n\n等等开发中常用的工具函数, 轻松提高业务研发效率.\n\n## 全部函数列表\n\n- 浏览器相关\n  - getRuntimeEnv - 获取运行环境\n  - getSelection - 获取选中文本\n  - redirect - 重定向\n  - store - 本地存储库\n- 字符串操作\n  - base64 - base64编码和解码\n  - camelize - 横线转驼峰命名\n  - charCount - 获取字符数\n  - formatNumber - 数值千分位格式化\n  - formatPercent - 值转换为百分数表示\n  - hyCompact - 紧凑型驼峰命名转换\n  - hyphenate - 驼峰命名转横线命名\n  - randomStr - 生成随机字符串\n  - repeat - 生成重复字符串\n  - uuid - 生成唯一id\n- 常用判断函数\n  - isArray - 判断数组类型\n  - isEmpty - 判断空对象\n  - isPc - 判断设备类型\n  - isPhone - 判断手机号格式\n  - isEmail - 判断邮箱函数\n  - isIdCard - 判断身份证格式函数\n  - lang - 判断中英文\n  - regexp - 常用正则表达式\n  - dataDesensitization - 数据脱敏\n- 数据结构相关\n  - cloneDeep - 数据深拷贝\n  - arrayToListNode - 数组转成链表\n  - linkListToArray - 链表结构转数组结构\n  - dateCalculate - 日期计算\n  - timeCutStr - 计算时间差\n  - timeSub - 计算时间间隔\n  - transformArray - 树结构转扁平数组\n  - formatDate - 时间格式化\n  - getRawType - 获取数据类型\n  - obj2url - 将对象参数解析为url字符串\n  - transformTree - 扁平转树结构\n  - url2obj - url字符串转对象  \n  - bothLinkedList - 双向链表\n- 图片处理函数\n  - compressImg - 自定义压缩图片函数\n  - file2img - 文件转图片对象\n  - hex2rgba - hex色值转rgba\n  - rgba2obj - 将rgba值转化为rgba对象\n  - genRandomColor - 获取随机颜色\n- js高级函数\n  - debounce - 防抖函数\n  - parser - json超级解析器\n  - sleep - 睡眠函数\n  - throttle - 节流函数\n- 常用算法和数据结构\n  - bubbleSort - 冒泡排序\n  - quickSort - 快速排序\n- 数学计算\n  - average - 计算数组平均值\n  - difference - 创建一个排除指定项的数组\n  - random - 返回区域内随机数\n  - shuffle - 打乱数组\n  - factorial - 阶乘\n  - fibonacci - 计算斐波那契数\n  - sum - 求和数组\n- 几何计算\n  - coordinatesInCircle - 生成圆内任意坐标\n  - coordinatesInRect - 生成矩形内任意坐标\n  - judgePointInCircle - 判断一点是否在圆内\n- dom操作\n  - downloadFileWithText - 下载文本文件\n  - downloadFileWithUrl - 下载链接文件\n  - $ - 通过id,class等获取dom\n  - getDomPageXY - 获取dom元素在当前文档中的绝对位置\n  - getDomScreenXY - 获取dom元素相对于screen绝对位置\n  - getDomText - 获取文本内容\n  - xss - 转义html标签\n\n## API Doc\n\n[xijs 文档](http://h5.dooring.cn/xijs)\n\n## parser\n\n\u003e 该 json 解析器基于原生`JSON API`进行的上层封装, 支持序列化函数类型\n\n- 支持原生 json api 调用方式`nativeStringify`, `nativeParse`\n- 支持序列化和反序列化函数 `stringify`, `fastStringify`, `parse`\n- 支持序列化和反序列化正则 `stringify`, `fastStringify`, `parse`\n- 内置开箱即用的工具方法\n  - 判断函数类型 `isFunc`\n  - 判断对象类型 `isObj`\n  - 判断数组类型 `isArr`\n  - 判断对象或数组类型 `isArrOrObj`\n  - 判断正则类型 `isRegExp`\n\nDemo:\n\n```tsx\n/**\n * title: 打开控制台查看结果\n */\nimport { parser } from 'xijs';\n\nconst door = {\n  a: 1,\n  b: function () {},\n  c: {\n    c1: 'h5-dooring',\n    c2: () =\u003e {},\n    c3: {\n      c: '3fvc',\n      d: {\n        dd: () =\u003e {},\n        ee: /[a-z]/g,\n      },\n    },\n  },\n  d: /[0-9]/g,\n};\n\n// 将对象序列化\nconsole.log('stringify', parser.stringify(door));\nconsole.log('fastStringify', parser.fastStringify(door));\n\n// 将json数据反解析成对象\nconsole.log(parser.parse(parser.stringify(door)));\n\nconsole.log('native stringify', parser.nativeStringify(door));\n```\n\n### 注意⚠️\n对于出现`regeneratorRuntime is not defined问题的解决`, 我们可以在webpack做如下配置, 来支持es的async / await :\n```bash\nnpm install --save-dev @babel/plugin-transform-runtime\n```\n\n配置:\n\n```js\n use: {\n     loader: 'babel-loader',\n     options: {\n         plugins: [\"@babel/plugin-transform-runtime\"]\n     }\n }\n\n```\n\n## 更多推荐\n\n| name                                                                              | Description                                                                             |\n| --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- |\n| [H5-Dooring](https://github.com/MrXujiang/h5-Dooring)                             | 让 H5 制作像搭积木一样简单, 轻松搭建 H5 页面, H5 网站, PC 端网站, LowCode 平台.         |\n| [V6.Dooring](https://github.com/MrXujiang/v6.dooring.public)                      | 可视化大屏解决方案, 提供一套可视化编辑引擎, 助力个人或企业轻松定制自己的可视化大屏应用. |\n| [dooring-electron-lowcode](https://github.com/MrXujiang/dooring-electron-lowcode) | 基于 electron 的 H5-Dooring 编辑器桌面端.                                               |\n|                                                                                   |\n| [DooringX](https://github.com/H5-Dooring/dooringx)                                | 快速高效搭建可视化拖拽平台.                                                             |\n\n## 赞助 | Sponsored\n\n开源不易, 有了您的赞助, 我们会做的更好~\n\n\u003cimg src=\"http://cdn.dooring.cn/dr/WechatIMG2.jpeg\" width=\"180px\" /\u003e\n\n## 共建 | Contribute\n\n欢迎参与到项目的共建中, 您可以提 issue 或者 pr 来共建项目, 或者加作者微信, 一起让项目更健壮.\n\n## 技术反馈和交流群 | Technical feedback and communication\n\n微信：beautifulFront\n\n\u003cimg src=\"http://cdn.dooring.cn/dr/qtqd_code.png\" width=\"180px\" /\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrxujiang%2Fxijs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmrxujiang%2Fxijs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrxujiang%2Fxijs/lists"}