{"id":15270879,"url":"https://github.com/chenbimo/yidash","last_synced_at":"2025-04-08T09:13:20.030Z","repository":{"id":250778755,"uuid":"835451031","full_name":"chenbimo/yidash","owner":"chenbimo","description":"yidash（易大师）一万个JavaScript实用方法库。","archived":false,"fork":false,"pushed_at":"2024-12-01T12:27:20.000Z","size":664,"stargazers_count":132,"open_issues_count":3,"forks_count":67,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-01T08:42:21.392Z","etag":null,"topics":["helper","lodash","utils"],"latest_commit_sha":null,"homepage":"https://yidash.yicode.tech","language":"JavaScript","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/chenbimo.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,"publiccode":null,"codemeta":null}},"created_at":"2024-07-29T21:41:56.000Z","updated_at":"2025-03-31T09:28:39.000Z","dependencies_parsed_at":"2024-07-30T03:27:50.118Z","dependency_job_id":"9d3857c3-7a1e-4526-8e04-bf8c12d16fb7","html_url":"https://github.com/chenbimo/yidash","commit_stats":{"total_commits":455,"total_committers":47,"mean_commits":9.680851063829786,"dds":0.4989010989010989,"last_synced_commit":"2f39ac9cb11bbc1d1aaa002bb8c50cbb96a978cd"},"previous_names":["chenbimo/yidash"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chenbimo%2Fyidash","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chenbimo%2Fyidash/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chenbimo%2Fyidash/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chenbimo%2Fyidash/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chenbimo","download_url":"https://codeload.github.com/chenbimo/yidash/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247809964,"owners_count":20999816,"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":["helper","lodash","utils"],"created_at":"2024-09-30T08:05:07.664Z","updated_at":"2025-04-08T09:13:19.985Z","avatar_url":"https://github.com/chenbimo.png","language":"JavaScript","readme":"## yidash（易大师）一万个JavaScript实用方法库\r\n\r\n`警告⚠️`：未发布 **v2.0.0** 之前，均为不稳定版本，慎用！！！\r\n\r\n![logo](https://static.yicode.tech/logo/yidash2.png)\r\n\r\n## 🏠 官网\r\n\r\n[文档官网 https://yidash.yicode.tech](https://yidash.yicode.tech)\r\n\r\n## 🛖 仓库\r\n\r\n[github https://github.com/chenbimo/yidash](https://github.com/chenbimo/yidash)\r\n\r\n## 🧊 安装\r\n\r\n```bash\r\nnpm install yidash\r\n# 或\r\npnpm add yidash\r\n```\r\n\r\n## 🍼 使用\r\n\r\n`注意⚠️`：本项目暂时只提供 `ESM` 包。\r\n\r\n```javascript\r\nimport { yd_number_validNumber, yd_regexp_trainNumber, yd_tree_array2Tree } from 'yidash';\r\nconsole.dir(\r\n    yd_tree_array2Tree([\r\n        { id: 1, pid: 0 },\r\n        { id: 2, pid: 1 },\r\n        { id: 3, pid: 2 }\r\n    ])\r\n);\r\nconsole.dir(yd_regexp_trainNumber);\r\nconst validNumber = yd_number_validNumber();\r\nconsole.log(validNumber(1.111)); // 1.11\r\nconsole.log(validNumber(1.571333)); // 1.57\r\nconsole.log(validNumber('1..221333')); // 1.22\r\nconsole.log(validNumber('1.2213.33')); // 1.22\r\nconsole.log(validNumber('1.')); // 1.\r\nconsole.log(validNumber('1.2')); // 1.20\r\nconsole.log(validNumber('1.2.')); // 1.20\r\n```\r\n\r\n## 🎁 贡献和福利\r\n\r\n### **贡献者交流群**\r\n\r\n加笔者微信 `chensuiyime`，注明 `yidash` ，拉你进微信交流群。\r\n\r\n群内将解答关于代码贡献相关的问题。\r\n\r\n### **代码贡献步骤**\r\n\r\n1. 访问本仓库。\r\n2. fork本仓库main分支。\r\n3. 拉取fork后的仓库。\r\n4. 修改代码。\r\n5. push代码到fork后的仓库。\r\n6. 发起pull request。\r\n7. 等待笔者验证与合并。\r\n\r\n**注意**：只提交lib中的函数到本仓库合并即可，其他文件不要提交。\r\n\r\n### **开发守则**\r\n\r\n1. 必须写 `JSDoc注释`，不然别人看不懂，不知道怎么用。\r\n2. 必须写 `函数作者`，标签为 `@author`，如 `@author chensuiyi`。\r\n3. 必须写 `函数别名`，标签为 `@alias`，如 `@alias yd_is_array`。\r\n4. 必须写 `案例说明`，标签为 `@example`，如 `@example yd_is_array([1,2,3])`。\r\n5. 必须写 `测试用例`，在 `test目录` 下，与 `lib目录` 中的结构一一对应。\r\n6. 必须 `4格缩进`，不喜欢的请不要参与本项目。\r\n7. 必须按 `提交主题：提交描述` 写清楚提交信息。\r\n8. 必须 `一个函数一个文件`，不能多个导出函数写到一个文件中。\r\n9. 所有 `import` 导入，除第三方包和内置模块外，其他必须写上文件扩展名。\r\n10. 函数名称必须清楚地表达函数作用，不用晦涩难懂的单词。\r\n11. 函数必须使用 `default` 默认导出，且导出的必须是一个 `箭头函数`。\r\n12. 能用 `const` 定义的地方尽量用 `const`。\r\n13. 不能使用 `var` 定义变量。\r\n14. `不要炫技`，用尽量简单易懂的方式，宁愿多写几行，也不要增加理解难度。\r\n15. `es-toolkit` 和 `lodash` 已经存在的函数不要重复实现。\r\n16. `只有几行代码` 的函数不要添加进来。\r\n17. 尽量不要函数引入函数，每个函数尽量独立，不依赖其他函数。\r\n18. 除导出函数外，其余函数不能使用多行注释，只能使用单行注释。\r\n19. 一个工具函数的代码行数不超过500行（`特殊情况例外`）。\r\n20. 代码风格以笔者规范为准（会进行沟通），不能擅自修改代码规范。\r\n21. 笔者会对所有提交的代码进行审核，并根据情况增删代码。\r\n22. 如若本项目产生收益，仓库所有者（陈随易）拥有对收益的完全支配权。\r\n23. 如果提交代码，便视为同意以上守则，请查阅并确认后参与。\r\n\r\n### **函数开发说明**\r\n\r\n目前用到的依赖如下：\r\n\r\n2. es-toolkit\r\n3. date-fns\r\n\r\n`lib` 目录下，每一个目录是一个函数类型集合。\r\n\r\n每个目录下，不能再创建目录，只能创建函数文件。\r\n\r\n函数名称尽量简短且清楚地表达函数的作用。\r\n\r\n对外导出的函数名称 = 前缀 + 目录 + 函数。\r\n\r\n比如 `lib/is/array.js` 函数，则其对外导出的函数名称是 `yd_is_array`。\r\n\r\n这个函数名称会自动生成，不要手动书写。\r\n\r\n**函数的JSDoc示例：**\r\n\r\n`@author` `@category` `@alias` `@example` 是必备标签。\r\n\r\n`@alias` 标签必须写函数的导出全名，不然在文档中会有显示问题。\r\n\r\n标签顺序已添加eslint规则，会自动进行排序。\r\n\r\n```javascript\r\n/**\r\n * 计算剩余时间\r\n * @author 陈随易 \u003chttps://chensuiyi.me\u003e\r\n * @category 日期时间\r\n * @alias yd_datetime_leftTime\r\n * @param {number} seconds 剩余时间秒数\r\n * @returns {object} 返回剩余时间的不同单位值\r\n * @summary 这个函数用来根据传入的时间，来计算该时间到当前时间还有多少年、多少月、多少天、等等。\r\n * @example\r\n * yd_datetime_leftTime(10000);\r\n * 结果：{\r\n *      years: 0,\r\n *      months: 0,\r\n *      weeks: 0,\r\n *      days: 0,\r\n *      hours: 2,\r\n *      minutes: 166,\r\n *      seconds: 10000,\r\n *      text: '2 小时',\r\n *      type: '还剩'\r\n * }\r\n */\r\n```\r\n\r\n### **git提交格式**\r\n\r\n能够明确表达提交的内容就行\r\n\r\n举例：\r\n\r\n-   yd_is_number函数增加判断机制\r\n-   yd_number_thousands重新设计\r\n-   增加yd_is_array函数\r\n\r\n### **贡献者福利**\r\n\r\n1. 增加开源参与度。\r\n2. 体会开源的乐趣。\r\n3. 为自己的职业经历增加一个彩蛋。\r\n4. 你的函数将会被每一个使用yidash的人看到。\r\n5. 额外获得VSCode扩展fnMap永久注册码一枚。\r\n\r\n**fnMap地址**：`https://marketplace.visualstudio.com/items?itemName=chensuiyi.fn-map`。\r\n\r\n1. 每个注册用户可以免费领取一个永久注册码（登录自动领取）。\r\n2. 每个贡献者可以额外领取一个（私聊我即可）。\r\n\r\n### **贡献者**\r\n\r\n\u003ca href=\"https://github.com/chenbimo/yidash/graphs/contributors\"\u003e\r\n  \u003cimg src=\"https://contrib.rocks/image?repo=chenbimo/yidash\" /\u003e\r\n\u003c/a\u003e\r\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchenbimo%2Fyidash","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchenbimo%2Fyidash","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchenbimo%2Fyidash/lists"}