在sword中, 我们贴心给大家准备了一系列的工具, 帮助大家辅助开发, 我们把这些工具都封装到了util命令中, 我们只需要在命令中指定util-name和util所要求的platform就可以使用了.

schema2interface

  • [运行时环境] unicloud
  • 在特定环境下, 我们可以将数据库的schema文件转换为interface文件, 为ts提供支持, 我们只需要在需要的unicloud文件夹下执行如下命令即可
    1. sword util --util-name=schema2interface --platform=unicloud
    image.png
    我们需要找到你的uniapp (unicloud) 项目的根目录, 在终端执行命令; 此时我们的schema2interface工具会自动查找unicloud文件夹下的database, 读取schema.json, 并且把json转换为ts类型协议, 例如这样
    1. {
    2. "bsonType": "object",
    3. "required": [],
    4. "permission": {
    5. "read": false,
    6. "create": false,
    7. "update": false,
    8. "delete": false
    9. },
    10. "properties": {
    11. "_id": {
    12. "description": "ID,系统自动生成"
    13. },
    14. "name": {
    15. "description": "名字"
    16. }
    17. }
    18. }
    转换后的协议为 ```typescript / tslint:disable / export interface List { / ID,系统自动生成 / _id: string; / 名字 / name: string; }

``` 工具会把转换后的类型协议放到unicloud下的typings目录中, 你可以自己复制到你所需要的地方, 甚至是我们的sword工程中
image.png
image.png

ps: 其实完全可以提供一个配置参数, 让用户指定类型文件的输出目录, 但是由于这个配置很难去设计, 因为这个属于util下的一个工具的属性值, 不是那么好在cli中定义, 所以暂时的方案就是输出到指定的位置. 如果你有更好的方案欢迎提出你的issue