{"id":19989997,"url":"https://github.com/ng-alain/sts","last_synced_at":"2025-04-14T14:41:01.384Z","repository":{"id":65424475,"uuid":"172503830","full_name":"ng-alain/sts","owner":"ng-alain","description":"Swagger to sf schema \u0026 st column in ng-alain","archived":false,"fork":false,"pushed_at":"2022-01-01T10:47:36.000Z","size":25,"stargazers_count":21,"open_issues_count":1,"forks_count":3,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-04-28T06:22:27.660Z","etag":null,"topics":["anguar","angular-cli","delon","json-schema","ng-alain","swagger"],"latest_commit_sha":null,"homepage":null,"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/ng-alain.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}},"created_at":"2019-02-25T12:42:06.000Z","updated_at":"2022-03-09T06:43:50.000Z","dependencies_parsed_at":"2023-01-23T01:45:27.300Z","dependency_job_id":null,"html_url":"https://github.com/ng-alain/sts","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ng-alain%2Fsts","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ng-alain%2Fsts/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ng-alain%2Fsts/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ng-alain%2Fsts/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ng-alain","download_url":"https://codeload.github.com/ng-alain/sts/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248898417,"owners_count":21179772,"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":["anguar","angular-cli","delon","json-schema","ng-alain","swagger"],"created_at":"2024-11-13T04:50:53.405Z","updated_at":"2025-04-14T14:41:01.348Z","avatar_url":"https://github.com/ng-alain.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"## ng-alain-sts [![Build Status](https://img.shields.io/travis/ng-alain/sts/master.svg?style=flat-square)](https://travis-ci.org/ng-alain/ng-alain-sts) [![NPM version](https://img.shields.io/npm/v/ng-alain-sts.svg?style=flat-square)](https://www.npmjs.com/package/ng-alain-sts)\n\nConvert Swagger API to [sf](https://ng-alain.com/form/schema) Schema \u0026 [st](https://ng-alain.com/components/table#STColumn) columns in [ng-alain](https://ng-alain.com) projects.\n\n## 如何使用\n\n`ng-alain-sts` 是一个 Node 插件，你可以使用命令行或直接调用 `generator` 方法来获取转换后的 `sf` Schema 和 `st` 列描述。\n\n```bash\n# via npm\nnpm i ng-alain-sts --save-dev\n# via yarn\nyarn add -D ng-alain-sts\n```\n\n### ng-alain\n\n`ng-alain-sts` 是专注于 NG-ALAIN，因此在 NG-ALAIN CLI 提供一个快捷命令：\n\n```bash\nng g ng-alain:sts\n```\n\n它包含 `list`、`edit` 两个[自定义模板](https://ng-alain.com/cli/generate#Custom-template-page)，可以通过指令根据 Swagger API 接口来生成列表、编辑页。\n\n```bash\nng g ng-alain:module trade\nng g ng-alain:tpl swagger-list list -m=trade -t=trade --swaggerPath=/pet/findByStatus\n```\n\n\u003e 更多请参考[sts](https://ng-alain.com/cli/plugin#sts)插件。\n\n### 命令行\n\n```bash\nng-alain-sts -t=sf -p=/pet swagger.json\n```\n\n**参数**\n\n| 参数名          | 类型     | 默认                  | 描述                       |\n|-----------------|----------|-----------------------|--------------------------|\n| `-t` `--type`   | `sf,st`  | `sf`                  | 指定生成类型               |\n| `-p` `--path`   | `string` | `-`                   | **必填** 指定 `paths` 路径 |\n| `-m` `--method` | `string` | `get`                 | 指定请求方法               |\n| `-c` `--config` | `string` | `swagger-config.json` | 指定配置文件路径           |\n\n### 调用\n\n```ts\nconst sts = require('ng-alain-sts/src/generator');\n\nawait sts.generator(\n  'https://petstore.swagger.io/v2/swagger.json',\n  { type: 'sf' },\n  { descriptionIsTitle: true }\n);\n```\n\n## 配置文件\n\nSwagger API 接口对于每一个后端语言或企业风格有着统一的编码风格、约定，如何更好的利用这些约定使生成的结构更符合当前的开发风格，从而进一步提升开发体验；配置文件给予了一些更自由空间，我们建议针对自己的接口风格定制不同的配置信息。\n\n### Config\n\n| 参数             | 说明                     | 类型  | 默认值 |\n|------------------|-------------------------|-------|--------|\n| `requestOptions` | Swagger JSON 文件[网络请求配置项](https://github.com/request/request#requestoptions-callback) | `any` | -      |\n| `pathPrefix` | 路径前缀 | `string` | - |\n| `propertyMapNames` | 自定义属性名称映射 | `{ [name: string]: string }` | `{ id: '编号', name: '名称' }` |\n| `descriptionIsTitle` | 指定 `description` 为 `title`，并删除 `description` | `boolean` | `true` |\n| `sf` | `sf` 配置项 | `SFConfig` | - |\n| `st` | `st` 配置项 | `STConfig` | - |\n\n### SFConfig\n\n| 参数             | 说明                     | 类型  | 默认值 |\n|------------------|-------------------------|-------|--------|\n| `method` | 指定默认方法名 | `string` | `put` |\n| `singleArray` | 由于 `sf` 并不支持这种类型，默认被转化为 `select` 小部件 | `SFSchema` | - |\n| `properties` | 自定义属性的 `Schema` | `PathConfig[]` | - |\n| `xmlBlackNames` | XML 属性白名单，这些信息会以优先级最高直接传递给 `ui` | `string[]` | - |\n| `propertyCallback` | 递归属性回调 | `(optinos: SFPropertyCallbackOptions) =\u003e void` | - |\n| `finishedCallback` | 完成时回调 | `(optinos: SFFinishedCallbackOptions) =\u003e void` | - |\n\n**singleArray**\n\n单类型数组默认被转化为 `select` 小部件：\n\n```ts\n{\n  type: 'string',\n  ui: {\n    widget: 'select',\n    mode: 'tags',\n  },\n  default: null,\n}\n```\n\n### STConfig\n\n| 参数             | 说明                     | 类型  | 默认值 |\n|------------------|-------------------------|-------|--------|\n| `method` | 指定默认方法名 | `string` | `get` |\n| `properties` | 自定义属性的 `Schema` | `PathConfig[]` | - |\n| `nameToType` | 根据名称自定义类型 | `{ [name: string]: STColumnType }` | - |\n| `xmlBlackNames` | XML 属性白名单，这些信息会以优先级最高直接传递给 `STColumn` | `string[]` | `['i18n']` |\n| `propertyCallback` | 递归属性回调 | `(optinos: STPropertyCallbackOptions) =\u003e void` | - |\n| `finishedCallback` | 完成时回调 | `(optinos: STFinishedCallbackOptions) =\u003e void` | - |\n\n**nameToType**\n\n定制根据名称自定义类型，默认值为：\n\n```ts\n{\n  price: 'currency',\n  amount: 'currency',\n  num: 'number',\n  count: 'number',\n  avatar: 'img',\n  mp: 'img',\n  modified: 'date',\n  created: 'date',\n}\n```\n\n### PathConfig\n\n| 参数    | 说明    | 类型  | 默认值 |\n|--------|---------|-------|--------|\n| `name` | 属性名称 | `string` | - |\n| `path` | 指定路径，若不指定则该属性名对所有 path 有效 | `string` | - |\n| `value` | 值分为 `SFSchema` 或 `STColumn` 类型 | `SFSchema | STColumn` | - |\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fng-alain%2Fsts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fng-alain%2Fsts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fng-alain%2Fsts/lists"}