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

dynemo

v1.1.3

Published

swagger typescript codegen

Downloads

2

Readme

简体中文

Install

  npm install @pregalaxyer/nemo
  // or
  yarn add @pregalaxyer/nemo
  // install global
  npm install @pregalaxyer/nemo -g

Example

excute the file below, your will get your swagger typescript files. options:

  1. url: your resultful swagger json url
  2. output: the folder for your swagger typescript files
  3. requestPath: customer request, such as axios, umi-request or file path
  4. exportsRequest: the options for your to decide wether create request folder, always happened when you want save local fetch changes
  5. paths: exports by paths filter

interface SwaggerConfig {
  /**
   * @description swagger api url
   */
  url: string
  /**
   * @description single-api or apis
   */
  paths?: Array<string | Regexp>
  /**
   * @description output floder
   */
  output?: string
  /**
   * @description where request module import from
   */
  requestPath?: string
  /**
   * @description request templates only create and remove when it is true
   * when you only need exportsRequest once, mostly code likes:
   * * `exportsRequest: !isRequestFloderExsit`
   */
  exportsRequest?: boolean
}

swagger.js

const main = require('@pregalaxyer/nemo')

// with esm
import main from '@pregalaxyer/nemo'

main({
  url: 'https://petstore.swagger.io/v2/swagger.json',
  output: './src/api'
})

Terminal Bash

@pregalaxyer/nemo convert -i https://petstore.swagger.io/v2/swagger.json -o ./src/api
# or after install global
npx @pregalaxyer/nemo convert -i https://petstore.swagger.io/v2/swagger.json -o ./src/api

Change request library

It easy for you to use other request library. Example:

type RequestInitWithoutBodyInit = Omit<RequestInit, 'body'>

interface Options extends RequestInitWithoutBodyInit, Record<string, any> {
  body?: Record<string, any>
  formData?: Record<string, any>
  query?: Record<string, any>
}
// default request
request<ResponseType>(url: string, options: Options)


// your request file
import request from `${library}`
import { getRequestBody, Options  } from `${output}/utils`

export default async function <T>(url, options) {
  const body: BodyInit | undefined = getRequestBody(options)
  const data = await request<T>(url, Object.assign(options, {body}))
  return data
}

TODO

  • [ ] swagger v3 support