0.0.2 • Published 12 months ago

runtime-generated-type v0.0.2

Weekly downloads
-
License
MIT
Repository
github
Last release
12 months ago

Install

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

Getting Started

  • vite
import { defineConfig } from 'vite'
import {createRuntimeGeneratedType} from 'runtime-generated-type'
import path from 'path'

export default defineConfig({
  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
const path = require('path')
// "http-proxy-middleware": "3.0.0-beta.1"
const {createProxyMiddleware} = require('http-proxy-middleware')
const {createRuntimeGeneratedType} = require('runtime-generated-type')

const runtimeGeneratedTypePlugin = 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

0.0.2

12 months ago

0.0.1

12 months ago