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

openapi-codegen

v2.2.2

Published

OpenAPI 3.0 CodeGen

Downloads

10,327

Readme

OpenAPI-CodeGen

Build status

Node.js-based codegen for OpenAPI documents. This project was initially a 24-hour hackathon. The local model adaptor code is entirely original and has been reverse-engineered from the existing documentation and template usage.

Work in progress

Supports OpenAPI 3.0.x natively, and Swagger/OpenAPI 1.2 and 2.0 by internal conversion. Node.js LTS versions are supported.

Usage

Installing

npm i -g openapi-codegen

or

  • clone the repository, and
  • npm i

or

npx -p openapi-codegen cg ...

CLI

cg [options] {[path]configName} {openapi-definition}

Options:
  --help           Show help                                           [boolean]
  --version        Show version number                                 [boolean]
  --filter         Filter term to use with --list                       [string]
  --list           List available templates for provider (og or sc)     [string]
  -d, --debug      Turn on debugging information in the model          [boolean]
  -f, --flat       Do not include config-name in output directory structure
                                                                       [boolean]
  -l, --lint       Lint input definition                               [boolean]
  -o, --output     Specify output directory         [string] [default: "./out/"]
  -s, --stools     Use swagger-tools to validate OpenAPI 2.0 definitions
                                                                       [boolean]
  -t, --templates  Specify templates directory                          [string]
  -v, --verbose    Increase verbosity                                  [boolean]
  -z, --zip        Create a .zip file instead of individual files      [boolean]

e.g.

node cg --verbose nodejs defs/generator.yaml

In this case, the generated code will be written to the .out/nodejs directory.

You can also load the OpenAPI definition from a URL.

API

const renderer = require('openapi-codegen');
// load a config and a definition
renderer.main(definition,config,configName);

Templates

The local templates were taken directly from swagger-codegen. This project is also licensed under Apache-2.0 for this reason. Generated code is explicitly covered by the Unlicense. Code to downconvert OpenAPI 3.0 definitions is taken from Angular-Swagger-UI and is MIT licensed.

You can also use the latest online templates from two providers: og (openapi-generator) and sc (swagger-codegen). The --list and --filter options allow you to see which templates are available. Note that using the online templates involves sending your API definition to a remote server.

Contributors

See here for a partial list of template contributors.

Status of the template configurations

The local templates with a status have a working (if not necessarily tested) configuration in the configs directory. Contributions are welcomed from the community of new and updated configurations and template updates.

|Template|Type|Status|README|Authors (TODO)|Config Maintainer| |---|---|---|---|---|---| |_common|meta| contains Apache-2.0 and Unlicense licenses|| |Ada|client|Untested |akka-scala|| |android|| |apache2|configuration|needs work|| |apex|| |aspnetcore|| |bash|client|Syntax ok, needs testing||@bkryza|@MikeRalphson |clojure|client|Untested| |codegen|meta|Demo only|||@MikeRalphson |confluenceWikiDocs|documentation|Tested with Docker server|| |cpprest|| |csharp|| |csharp-dotnet2|client|Untested|| |dart|| |debug|meta|used for dumping the model state||@Mermade|@MikeRalphson |Eiffel|| |elixir|| |erlang-client|client|Untested|| |erlang-server|server| |finch|| |flash|| |flaskConnexion|server|Needs testing|| |go|client|Builds, needs testing|| |go-server|server|Builds and runs|| |Groovy|?|untested|| |haskell-http-client|client|||| |haskell-servant|server|Untested|| |htmlDocs|documentation|Appears to work|| |htmlDocs2|documentation|Appears to work, no console errors logged|| |Java|| |JavaInflector|| |JavaJaxRS|| |JavaPlayFramework|| |Javascript|client|Untested|| |Javascript-Closure-Angular|client|Untested |JavaSpring|| |JavaVertXServer|| |JMeter|meta|Untested|| |kotlin-client|| |lua|client|Compiles OK| |lumen|| |MSF4J|| |nancyfx|| |nodejs|server|tested :white_check_mark:||@jfiala|@MikeRalphson| |objc|| |openapi|meta|outputs the input definition (in OpenAPI 3.0.x form) :white_check_mark:||@Mermade|@MikeRalphson |perl|| |php|| |php-silex|?|untested|| |php-symfony|| |pistache-server|| |powershell|| |python|client|needs testing|||@mpnordland |qt5cpp|| |r|| |rails5|| |restbed|server|Untested|| |ruby|| |rust|| |rust-server|| |scala|| |scalatra|| |scalaz|client|Untested|| |sinatra|server|Syntax checks OK|| |slim|server|Untested|| |swagger|meta|outputs the input definition (in original form if OpenAPI 2.0) :white_check_mark:|| |swagger-static|documentation|tested template modified to include partials|| |swift|| |swift3|| |swift4|| |tizen|| |typescript-angular|| |typescript-angularjs|| |typescript-axios|client|tested||jaredpalmer| |typescript-aurelia|| |typescript-fetch|client|compiles with tsc ok|| |typescript-jquery|| |typescript-node|client|compiles with tsc ok|| |undertow|| |validator|meta|uses swagger2openapi's OpenAPI 3.0 validator internally :white_check_mark:|| |ze-ph|

New Templates

These templates are examples of how features of OpenAPI Codegen may be used, and best-practices in naming model properties.

|Template|Type|Status|README|Authors|Config Maintainer| |---|---|---|---|---|---| |testing.dredd|testing|In progress|README|@Mermade|@MikeRalphson|

Documentation