# stool **Repository Path**: Cyluone/stool ## Basic Information - **Project Name**: stool - **Description**: 帮助SupOS平台用户类Git方式开发服务与可编程组件 - **Primary Language**: Unknown - **License**: MIT-0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-08-17 - **Last Updated**: 2024-10-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # supos `supos` git push pull 的形式管理平台以下概念 1. 服务脚本 2. 可编程组件 ## 特点 - 多平台开发时,`supos` 管理多个平台的服务脚本和可编程组件 - 结合 代码开发工具 + Git 可协同管理服务脚本和可编程组件 - 可编程组件改动看效果时,无需频繁提交代码。只需 `supos ext watch` 帮助自动提交可编程组件 - 表单转 DDL ,辅助掌控全局 ## Install ``` $ npm install -g supos ``` ## Use Example ``` $ supos debug ? 选择【A表单】的服务进行调试? yes ***【A表单】下所有服务*** ? 请选择服务! > 服务名称:serviceA(Integer int,Long long,Float float,Double double,Boolean bool,String str) ------------------------------ ? int(INTEGER)> 1 ? long(LONG)> 1 ? float(FLOAT)> 1 ? double(DOUBLE)*> 1 ? bool(BOOLEAN)> true ? str(STRING)*> 123 ------------------------------ # 以下为服务执行的输出日志和返回结果 #略 ``` ## 获取帮助 您可以使用以下命令获取帮助信息: - 查看全局帮助信息: ``` supos --help ``` - 查看特定命令的帮助信息(例如 `remote` 命令): ``` supos remote --help ``` - 查看子命令的帮助信息(例如 `remote add` 子命令): ``` supos remote add --help ``` 每个命令的帮助信息都包含了详细的使用说明和示例。 ## Usage ### 1. init config ```bash $ supos init ? 重置将初始化所有配置文件,是否重置[N]! yes SUCCESS 已成功初始化.... ``` ### 2. add your remote address ```bash $ supos remote add -m -u -p $ supos remote add pdd -m http://127.0.0.1:8080 -u admin -p pwd123 pdd,admin 请记住您的平台编号和当前账户! ``` ### 3. config your default remote ```bash $ supos remote login pdd SUCCESS 已切换成平台pdd,地址为:http://127.0.0.1:8080 ``` ### 4. login your remote ```bash $ supos remote login SUCCESS 用户登录成功! #or $ supos login SUCCESS 用户登录成功! ``` ### 5. pull remote all template and service to loacl env ```bash $ supos template init 将重新拉取所有表单及所有表单服务,成功后需重新配置默认工作的表单! SUCCESS 车间管理-workshopManage server total:1 ---------------- 查询车间数据-queryAll-(String factoryId)==MD5: 66d11897e372ad2b01733ef1cebd4a84 rsnyc 车间管理-workshopManage use time 3425 ``` ### 6. Select the default template to work under it ```bash $ supos template #1. 先有个可供选择的表单列表,可进行搜索。 ? 请选择工作区的表单模板! > A表单 B表单 C表单 (Use arrow keys to reveal more choices) A表单 #2.选择后会输出 SUCCESS 您选择了【A表单】 #3. 最后完整的日志 ? 请选择工作区的表单模板! A表单 SUCCESS 您选择了【A表单】 ``` ### 7. 调试模板下的服务 ```bash $ supos debug ``` ### 8. # 初始化平台无关级别的配置 supos ext init # 拉取所有可编程组件 ### 9. For more features, please use Supos -h ```bash $ supos -h #略 更多详细用法请参考各命令的帮助信息,例如 `supos service --help`。 ``` ## TODO - 服务 - [ ] 物模板服务支持 - [ ] 表单模板 - [ ] 考虑使用 Sql 同步 表单模板,引导形成 **一个模式**。 - [X] 可添加服务 - [X] 可单独添加服务参数 - [x] 可删除服务 - [x] 可单独删除参数,通过修改服务删除 supos service update -i - [x] debug 可选记录历史传参 - [x] 在该命令下添加option 记录是否记录历史。 -[x] 考虑在debug时是同样加option去选择历史参,还是提前确认什么模式去选择历史参。 - [x] 按职责拆分代码 - [ ] ~~切换平台后将之前登录的平台主动退出去~~ - [ ] 提供平台级迁移功能 - [ ] APP级 - [ ] 表单级 - [ ] 属性 - [ ] 服务级 - [ ] 可编程 - [ ] push 代码时,拉取 libs 查看更新时间,没更新就不进行上传,加速上传 - [ ] 其他 - 如何与 git 相结合 - [x] 考虑 process.cwd() 定位,引起用户在别的目录下执行,会引起问题 - 功能逐渐变多 objectHelp 代码需职责拆分 ## 优化建议 - 使用 `inquirer` 库来实现交互式命令行界面,以提高用户体验。 - 使用 `axios` 库来处理 HTTP 请求,以提高性能和可靠性。 - 使用 `chalk` 库来添加颜色和样式,以提高可读性和用户体验。 - 使用 `ora` 库来显示加载动画,以提高用户体验。 - 使用 `commander` 库来处理命令行参数,以提高用户体验。 - 使用 `fs` 库来处理文件系统,以提高用户体验。 - 使用 `path` 库来处理文件路径,以提高用户体验。 - 使用 `os` 库来处理操作系统,以提高用户体验。 - 使用 `crypto` 库来处理加密,以提高用户体验。 - 根据您提供的代码库信息,我对extensions类的优化有以下建议: - 代码结构优化: - 将lib/extensions.js文件拆分成多个smaller的模块,每个模块负责特定的功能。例如: - initExtensions.js: 处理初始化相关的函数 - pullExtensions.js: 处理拉取组件相关的函数 - pushExtensions.js: 处理推送组件相关的函数 - buildExtensions.js: 处理构建依赖相关的函数 - 这样可以提高代码的可读性和可维护性。 - 错误处理优化: - 在lib/extensions.js中,使用更具体的错误类型,而不是简单地抛出字符串。创建自定义错误类,如ExtensionError,以便更好地处理和区分不同类型的错误。 - 配置管理优化: - 将硬编码的配置项(如bulitInDependencies, ignoreFileArr等)移到单独的配置文件中,便于集中管理和修改。 - 异步操作优化: - 考虑使用Promise.all()来并行处理一些独立的异步操作,提高性能。例如,在initAppExtensions函数中,可以并行处理libs和controls的拉取。 - 日志记录优化: - 使用更结构化的日志记录方式,考虑引入专门的日志库(如winston),以便更好地管理和分析日志。 - 测试覆盖率提高: - 在tests/supos.test.js中添加更多针对extensions功能的单元测试和集成测试,提高代码的可靠性。 - 依赖注入考虑: - 考虑使用依赖注入的方式来管理外部依赖(如DB, ConfigDB等),这样可以提高代码的可测试性和灵活性。 - 代码复用优化: - 提取一些常用的操作为工具函数,放在单独的utils.js文件中,以减少代码重复。 - 类型检查引入: - 考虑使用TypeScript或Flow来引入静态类型检查,可以提前发现潜在的类型错误。 - 文档完善: - 为主要的函数和模块添加详细的JSDoc注释,便于其他开发者理解和使用代码。 - 性能优化: - 使用性能分析工具来识别可能的性能瓶颈,特别是在文件操作和网络请求方面。 - 安全性提升: - 检查所有的文件操作和网络请求,确保它们都经过适当的安全处理,防止潜在的安全漏洞。 - refactor 内容对比时 前后hash 本地DBhash 对比平台内容 hash,一致时,将本地新内容推送至平台 ## Notice - 添加 5x 版本平台需自己找到加密后的密码进行添加 ## LICENSE MIT