npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@ranbo/bond

v2.3.7

Published

1. 从本地或远程拉取 swagger 接口文件,自动生成对应接口调用方法以及接口结构体 2. 支持多个 swagger 进行合并。 3. 支持简单接口的 mock 数据生成,当后端未指定数据 example 时也能根据字段名给出更贴合业务场景的 mock 数据。

Downloads

58

Readme

Bond

  1. 从本地或远程拉取 swagger 接口文件,自动生成对应接口调用方法以及接口结构体
  2. 支持多个 swagger 进行合并。
  3. 支持简单接口的 mock 数据生成,当后端未指定数据 example 时也能根据字段名给出更贴合业务场景的 mock 数据。

1. 安装

yarn add @ranbo/bond -D

2. 配置

| Name | Type | Default | Description | | :-------- | :------: | :-------- | :----------------------------------------- | | input | string \| string[] | | swagger 文件的的地址,同时支持远程文件地址、本地文件地址,可远程、本地地址混合。存在多个文件地址,在 bond.config.js 中使用数组传入,在.env 中以 ; 分割。 | | output | string | ./api | 输出路径。通常建议设置为 ./src/api | | request | string | | 自定义 request 文件地址 | | cookie | string | | 非必需,远程地址有身份校验的时候需要传入 | | postfix | string | Service | Service 的后缀。若不希望有后缀,可以传入空字符。 | | customConfig | CustomConfig | | 非必需,特性化配置。 | | mergeConfig | MergeConfig | | 非必需,远程地址有身份校验的时候需要传入 | | mock | MockConfig | | 非必需,需要 mock 时可以使用。 |

CustomConfig

{
  /**
   * 以何种维度聚合 service
   * service: 一个 service 合并为一个 Service 文件,通常对应一个 basePath
   * controller: 默认方式,一个 controller 一个 Service 文件
   * all: 所有 controller 全部合并到一个 Service 文件
   * default = "controller"
   */
  servicesDimension?: "service" | "controller" | "all";
  /**
   * tags 中的 name 以 controller 结尾,可以设置 removeController 为 true 将其去除。
   * default = false
   */
  removeController?: boolean;
  /**
   * 以哪个字段作为 controller 分类的 key。
   * 默认是 “name”, 但是某些团队为了在 swagger UI 上展示效果明显,将 name 设置为中文,swagger 框架会自动将 controller 解析后作为 description
   */
  tagKey?: "name" | "description";
}

MergeConfig

{
  /**
   * 按照数组顺序进行拼接,生成 operationId。 以下变量为保留词,会自动替换成对应变量并进行 camelCase 处理后拼接。其他字符串会经过 camelCase 处理后直接拼接。
   * 若无 swagger 合并需求,或 swagger 中对于 operationId 是规范的,可以不配置此项。
   * 若有 swagger 合并,且 operationId 是 swagger 框架层自动生成,则必须配置,否则可能存在调用方法名称冲突的情况,推荐设置为 ["method", "path"]
   * basePath: swagger 中的定义的 basePath
   * path: 具体某一请求的 path
   * method: 请求的方法,get、post ...
   * origin: 原始 operationId
   *
   * default = ["origin"]
   */
  operationId?: string[]; // basePath、 path、 origin、 method
}

MockConfig

{
  /** 用于生成 mock 数据的 swagger 路径 */
  input: string[];
  /** mock 文件输出目录,默认为 "./mock-server" */
  outputDir?: string;
  /** 本地 mock 服务的端口号,默认为 8008 */
  port?: number;
  /** 需要生成 mock 数据的接口路径 */
  pathList?: string[];
  /** mock 数据文件白名单,传入 mock 数据的接口路径或 mock 数据文件的文件名,列表中的接口数据文件不会被重写。也可在 mock 数据文件中增加 @overwrite 注释禁止当前文件被重写 */
  whitelist?: string[];
  /** 使用模版自定义 response 的包裹, 其中的 $data 会被替换为 mock 数据 */
  response?: string;
}

支持 bond.config.js 配置文件(推荐) 和 .env 配置文件。 在项目根目录下新建 bond.config.js 文件, 配置以上参数。

example:

.bond.config.js

module.exports = {
  input: ["https://xxxxxx/v2/api-docs-1", "https://xxxxxx/v2/api-docs-2"],
  cookie: "xxxxxxx",
  output: "./api",
  request: "./src/utils/request.ts",
};

.env

input=https://xxxxxx/v2/api-docs-1;https://xxxxxx/v2/api-docs-2
cookie=xxxxxxxx
output=../front-web/api
request=./src/utils/request.ts

3. 运行

yarn bond api

Documentation

TODO

  • model 的合并
  • 整理 middleware ,暴露方法允许自定义,暴露mockjs自定义pattern方法