Skip to content

keq-request/keq-cli

Repository files navigation

logo

KEQ-CLI

version downloads dependencies license Codecov

简体中文

Transform Swagger 3.0 to the function that send request by keq.

Usage

Prepare

You need prepare a Swagger 3.0 file first.

Compile

npx keq-cli compile  -o ./output -m userService ./swagger.json

Options:

option description
-o --outdir The output directory
-m --module-name The module name
--file-naming-style File naming style.(default 'snakeCase', see more in change-case)
--request The request package used in compiled result.(default 'keq')

Use In Coding

import { request, mount } from 'keq'
import { setHeader } from 'keq-header'
import proxy from 'keq-proxy'
import updateUser from './outdir/userService/update_user'


request
  // set your middleware for module
  .use(mount.module('userService'), setHeader('x-custom-header', 'custom_value'))
  // set modlue request url
  .use(proxy.module('userService', 'http://example.com/api'))



async function action() {
  await updateUser({ id: 1, name: 'Marry' })
}

Configuration file

Use configuration files is easy to regeneration. By default, keq-cli will search for .keqrc.yml, .keqrc.json, keqrc.js.config. You can use -c --config <config_file_path> to set the config file you wanted.

npx keq-cli build
npx keq-cli build -c ./.keqrc.yml

Compared with keq-cli compile, the configuration file can set multiple modules with multiple url for different environments.

The yml configuration file Example:

outdir: ./output
fileNamingStyle: snakeCase
modules:
  userService: ./swagger.json
  coreService: http://example.com/swagger.json

The json configuration file Example:

{
  "outdir": "./output",
  "fileNamingStyle": "snakeCase",
  "modules": {
    "userService": "./swagger.json",
    "coreService": "http://example.com/swagger.json"
  }
}