{"id":13495522,"url":"https://github.com/lvqq/aries","last_synced_at":"2025-11-12T22:29:33.074Z","repository":{"id":45180088,"uuid":"436615723","full_name":"lvqq/aries","owner":"lvqq","description":"🚀 A openapi tool based on swagger document","archived":false,"fork":false,"pushed_at":"2022-10-01T03:54:59.000Z","size":473,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-21T17:56:48.021Z","etag":null,"topics":["aries","markdown","mock","openapi","request","swagger","typescript"],"latest_commit_sha":null,"homepage":"","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/lvqq.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2021-12-09T12:52:15.000Z","updated_at":"2023-03-29T04:48:51.000Z","dependencies_parsed_at":"2022-07-22T11:17:41.525Z","dependency_job_id":null,"html_url":"https://github.com/lvqq/aries","commit_stats":null,"previous_names":[],"tags_count":23,"template":false,"template_full_name":null,"purl":"pkg:github/lvqq/aries","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lvqq%2Faries","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lvqq%2Faries/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lvqq%2Faries/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lvqq%2Faries/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lvqq","download_url":"https://codeload.github.com/lvqq/aries/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lvqq%2Faries/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":284122917,"owners_count":26951149,"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","status":"online","status_checked_at":"2025-11-12T02:00:06.336Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["aries","markdown","mock","openapi","request","swagger","typescript"],"created_at":"2024-07-31T19:01:35.543Z","updated_at":"2025-11-12T22:29:33.059Z","avatar_url":"https://github.com/lvqq.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"[![npm version](https://img.shields.io/npm/v/@tooltik/aries.svg)](https://www.npmjs.com/package/@tooltik/aries) [![npm download count](https://img.shields.io/npm/dm/@tooltik/aries.svg)](https://www.npmjs.com/package/@tooltik/aries) [![coverage](https://coveralls.io/repos/github/lvqq/aries/badge.svg?branch=main)](https://coveralls.io/github/lvqq/aries?branch=main) ![GitHub Workflow Status](https://img.shields.io/github/workflow/status/lvqq/aries/CI) [![license](https://img.shields.io/npm/l/@tooltik/aries.svg)](LICENSE) \r\n\r\n## Aries ♈️\r\nAries is a swagger converter cli, support typescript declaration, axios request function, markdown docs, mock server and so on\r\n\r\n## Support\r\nSwagger 2.0, json or yaml format\r\n\r\n## Env\r\nNodeJS \u003e= 12\r\n\r\n## Install\r\n```bash\r\n# with npm\r\nnpm install @tooltik/aries --save-dev\r\n\r\n# with yarn\r\nyarn add @tooltik/aries --dev\r\n\r\n# with pnpm\r\npnpm add @tooltik/aries --save-dev\r\n```\r\n\r\n## Usage in command line \r\n```\r\naries \u003ccommand\u003e [options]\r\n```\r\n\r\n### Samples\r\n\r\nGenerate **typescript declaration**, get `generate.ts`:\r\n```bash\r\naries to-ts -u ./swagger.json -o ./generate.ts\r\n```\r\n\r\nGenerate **request function** and **typescript declaration**, get `request.ts` and `request.types.ts`\r\n```bash\r\naries to-ts -u ./swagger.json -o ./request.ts\r\n```\r\n\r\nGenerate **markdown** doc, get `doc.md`:\r\n```bash\r\naries to-ts -u ./swagger.json -o ./doc.md\r\n```\r\n\r\nStart a **mock server** :\r\n```bash\r\naries mock-server -u ./swagger.json\r\n```\r\n\r\n### Command options\r\n```bash\r\nCommands:\r\n  to-ts [options]    Convert swagger to typescript declaration\r\n  to-request [options]   Convert swagger to request function, generate \u003coutput\u003e file and \u003coutput\u003e.types file\r\n  to-md [options]    Convert swagger to markdown docs\r\n  to-mock [options]  Convert swagger to mock json\r\n  mock-server [options]  Start a local server to return the mock interface\r\n```\r\n\r\n#### to-ts\r\n```\r\nOptions:\r\n  -u, --url \u003curl\u003e       Swagger link to generate, support relative path or remote url\r\n  -o --output \u003coutput\u003e  Specify output file path (default: \"./swagger.types.ts\")\r\n  -p --pattern \u003cpattern...\u003e  Pattern to be matched for request path, support glob rule\r\n  --no-autoRequired     Do not generate the property as required automatically when there is no required array in definitions\r\n```\r\n\r\n#### to-request\r\n```\r\nOptions:\r\n  -u, --url \u003curl\u003e       Swagger link to generate, support relative path or remote url\r\n  -o --output \u003coutput\u003e  Specify output file path (default: \"./swagger.request.ts\")\r\n  -p --pattern \u003cpattern...\u003e  Pattern to be matched for request path, support glob rule\r\n  --no-autoRequired     Do not generate the property as required automatically when there is no required array in definitions\r\n```\r\n\r\n#### to-md\r\n```\r\nOptions:\r\n  -u, --url \u003curl\u003e       Swagger link to generate, support relative path or remote url\r\n  -o --output \u003coutput\u003e  Specify output file path (default: \"./swagger.docs.md\")\r\n  -p --pattern \u003cpattern...\u003e  Pattern to be matched for request path, support glob rule\r\n  --no-autoMock         Do not generate the mock samples automatically when there is no example in schema\r\n```\r\n\r\n#### to-mock\r\n```\r\nOptions:\r\n  -u, --url \u003curl\u003e       Swagger link to generate, support relative path or remote url\r\n  -o --output \u003coutput\u003e  Specify output file path (default: \"./swagger.mock.json\")\r\n  -p --pattern \u003cpattern...\u003e  Pattern to be matched for request path, support glob rule\r\n  --no-autoMock         Do not generate the mock response automatically when there is no example in schema\r\n```\r\n\r\n#### mock-server\r\n```\r\nOptions:\r\n  -u, --url \u003curl\u003e       Swagger link, support relative path or remote url\r\n  -p, --port \u003cport\u003e     Mock server port (default: 3000)\r\n  -p --pattern \u003cpattern...\u003e  Pattern to be matched for request path, support glob rule\r\n  --no-autoMock         Do not generate the mock response automatically when there is no example in schema\r\n```\r\n\r\n### .ariesrc\r\nAdd `.ariesrc.ts` or `.ariesrc.js` in your project root directory. Support all options in command. And the command line has a higher priority than `.ariesrc`\r\n\r\n| Property | Type  | Required | Default | Description |\r\n| ----- | ----- | ----- | ----- | ----- |\r\n| url | string | Y | - | swagger url, support relative path and remote url |\r\n| output | string | Y | - | output file path |\r\n| pattern | string[] | N | ['/**/*'] | Glob rule to be matched for request path |\r\n| autoMock | boolean | N | true | we use example to generate mock data by default, using `autoMock` to determine whether mock automatically when there is no example in schema when using `to-md/to-mock/mock-server` |\r\n| formatMock | function | N | - | format the mock response or samples when using `to-md/to-mock/mock-server`, the parameter is origin mock data generated by example or autoMock |\r\n| autoRequired | boolean | N | true | determine whether the property is required by default when there is no required property in schema when using `to-ts/to-request` |\r\n| port | number | N | 3000 | change the mock server port when using `mock-server` |\r\n\r\n#### .ariesrc samples\r\n```typescript\r\n// .ariesrc.ts\r\nimport { defineConfig } from '@tooltik/aries'\r\n\r\nexport default defineConfig({\r\n  url: './swagger.json',\r\n  autoMock: true,\r\n  autoRequired: true,\r\n})\r\n```\r\n\r\n## Api reference\r\nSupport usage in esm or cjs, and arguments are same with `.ariesrc` export:\r\n\r\n```javascript\r\nimport { toTs, toRequest, toMd, mockServer } from '@tooltik/aries'\r\n\r\ntoTs({\r\n    url: './test/swagger.json',\r\n    output: './test/output.node.swagger.types.ts',\r\n    autoRequired: true,\r\n})\r\n\r\ntoRequest({\r\n    url: './test/swagger.json',\r\n    output: './test/output.node.swagger.types.ts',\r\n    autoRequired: true,\r\n})\r\n    \r\ntoMd({\r\n    url: './test/swagger.json',\r\n    output: './test/output.node.swagger.docs.md',\r\n    pattern: '/user/**/*',\r\n    autoMock: true,\r\n    formatMock: (data) =\u003e {\r\n      return {\r\n          code: 0,\r\n          msg: 'success',\r\n          data,\r\n      }\r\n    },\r\n})\r\n\r\nmockServer({\r\n  url: './test/swagger.json',\r\n  port: 3000,\r\n  autoMock: true,\r\n  formatMock: (data) =\u003e {\r\n    return {\r\n        code: 0,\r\n        msg: 'success',\r\n        data,\r\n    }\r\n  },\r\n})\r\n```\r\n\r\n## Dev\r\nInstall\r\n```bash\r\npnpm install\r\n```\r\n\r\nLink package after build\r\n```bash\r\npnpm build \u0026 pnpm link --global\r\n```\r\n\r\nRun dev watch\r\n```bash\r\npnpm dev\r\n```\r\n\r\nMake changes and run test\r\n```bash\r\npnpm test\r\n```\r\n\r\nUninstall\r\n```bash\r\npnpm rm --global @tooltik/aries\r\n```\r\n\r\n## LICENSE\r\nMIT","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flvqq%2Faries","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flvqq%2Faries","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flvqq%2Faries/lists"}