Skip to content

Repository files navigation

runtime-generated-type

Generates typescript code when sending the request interface.

NPM version

Install

$ npm install --save-dev runtime-generated-type

Getting Started

  • vite
import{defineConfig}from'vite'import{createRuntimeGeneratedType}from'runtime-generated-type'importpathfrom'path'exportdefaultdefineConfig({server: {proxy: {'/api': {target: 'http://jsonplaceholder.typicode.com',changeOrigin: true,rewrite: (path)=>path.replace(/^\/api/,''),configure: createRuntimeGeneratedType({dataSource: '',// 指定接口返回数据的位置outputPath: path.resolve(__dirname,'./src/types.ts'),baseUrl: '/api/*',}),},}}})
  • react-create-app -> setupProxy.js
constpath=require('path')// "http-proxy-middleware": "3.0.0-beta.1"const{createProxyMiddleware}=require('http-proxy-middleware')const{createRuntimeGeneratedType}=require('runtime-generated-type')construntimeGeneratedTypePlugin=createRuntimeGeneratedType({dataSource: '',// 指定接口返回数据的位置outputPath: path.resolve(__dirname,'./types.ts'),baseUrl: '/api/*',})module.exports=function(app){app.use(createProxyMiddleware({pathFilter: '/api',target: 'http://jsonplaceholder.typicode.com',changeOrigin: true,pathRewrite: {'^/api' : ''},plugins: [runtimeGeneratedTypePlugin],}));};

Configuration

参数类型必填参数说明示例
outputPathStringtrue生成文件路径path.resolve(__dirname, './src/types.ts')
baseUrlStringtrue配置请求接口地址的统一前缀'/api/*' (*号自动匹配任意字符)
dataSourceStringfalse指定生成类型数据源位置'data.item'
genOnceBooleanfalse每个接口仅生成一次类型
matchingArrayfalse匹配动态参数请求接口['/posts/*/comments']
prefixbooleanfalsetypeName 添加前缀Get | Post | Put | Delete ...

Request url to generate type name matching rules

  • GET: /api/v1/team/department/frontGroup/:id -> TeamDepartmentFrontGroup
  • GET: /api/v1/team/department/endGroup/:id -> TeamDepartmentEndGroup
  • GET: /api/v1/team/department/endGroup/:id/details -> TeamDepartmentEndGroupDetails
  • GET: /api/v1/teamMember -> GetTeamMember
  • PUT: /api/v1/teamMember -> PutTeamMember
  • DELETE: /api/v1/teamMember -> DeleteTeamMember
  • POST: /api/workflow/:id/inter/search -> PostWorkflowInterSearch
  • POST: /api/system/:id/inter/search -> PostSystemInterSearch
  • GET: /api/user/:id/inter/search -> GetUserInterSearch

License

MIT License © 2023 Proc Zhang

About

Generates typescript code when sending the request interface.

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages