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

@christianv/openapi-to-flowtype

v0.9.20

Published

Command line tool for generating flow types definitions from OpenAPI 3.0 specification

Downloads

66

Readme

openapi-to-flowtype (forked)

Forked version of https://www.npmjs.com/package/openapi-to-flowtype with the following changes:

  • Use { [key: string] : mixed} for object types without any properties. Previously this was typed as {} which causes issues in exact mode
  • Fix Array<undefined> output types by falling back to mixed when no type is defined
  • Replace Array<*> with Array<mixed>
  • Add pinterest open api schema as a test
  • 0.9.3: fix issue with discriminator (anyOf, oneOf allOf) not being the first item
  • 0.9.4: fix --exact with top level object types & add --verbose option
  • 0.9.5: fix string escaping
  • 0.9.6: fix string escaping within properties
  • 0.9.6: fix string escaping within properties
  • 0.9.7: support keys starting with a numeric value + introduce prettier + improve tests
  • 0.9.8: use $ReadOnlyArray instead of Array
  • 0.9.9: fix camelize import
  • 0.9.10: fix destination parameter
  • 0.9.11: move prettier & other dependencies
  • 0.9.12: only move prettier over to dependencies
  • 0.9.13: support enum numerical literal types
  • 0.9.14: support open ended objects
  • 0.9.15: fix top level oneOf
  • 0.9.16: make values of open ended objects optional
  • 0.9.17: support keys with :
  • 0.9.18: (wrong publish)
  • 0.9.19: implement --parameters
  • 0.9.20: fix bug with --parameters

openapi-to-flowtype is a tool for generating type definitions of Flow from OpenAPI 3.0 file.

NPM version Build Status Downloads

Getting started

Install package

npm i -g openapi-to-flowtype

Generating flow type definitions

$openapi-to-flowtype <YOUR SWAGGER FILE OR URL>

This command generates a file named flowtype.js includes type definitions as default.

Options

Specify an output path

You can also specify an output path with -d option.

$openapi-to-flowtype <YOUR SWAGGER FILE PATH OR URL> -d <OUTPUT FILE PATH>

Generate types for operation titled responses as well

You can enable type generation for operation responses (if they have schema title specified) with --responses.

$openapi-to-flowtype <YOUR SWAGGER FILE PATH OR URL> --responses

Specify a suffix for generated types

You can specify a suffix for all generated types with --suffix <suffix>.

$openapi-to-flowtype <YOUR SWAGGER FILE PATH OR URL> -suffix <YOUR SUFFIX>

Transform property key to lower camel case

--lower-camel-case option transforms each property keys to lower camel case.

"Cat": {
  "type": "object",
  "properties": {
    "long_long_key": {
      "type": "string"
    }
  }
}

will be

export type Cat = { longLongKey?: string };

Generate types for parameters as well

You can enable type generation for parameters with --parameters.

$openapi-to-flowtype <YOUR SWAGGER FILE PATH OR URL> --parameters

Example

swagger file like following

---
components:
  schemas:
    Order:
      type: "object"
      properties:
        id:
          type: "integer"
          format: "int64"
        petId:
          type: "integer"
          format: "int64"
        quantity:
          type: "integer"
          format: "int32"
        shipDate:
          type: "string"
          format: "date-time"
        status:
          type: "string"
          description: "Order Status"
          enum:
            - "placed"
            - "approved"
            - "delivered"
        complete:
          type: "boolean"
          default: false
      xml:
        name: "Order"
    Category:
      type: "object"
      properties:
        id:
          type: "integer"
          format: "int64"
        name:
          type: "string"
      xml:
        name: "Category"

Output will be like below

// @flow
export type Order = {
  id?: number,
  petId?: number,
  quantity?: number,
  shipDate?: string,
  status?: "placed" | "approved" | "delivered",
  complete?: boolean,
};
export type Category = { id?: number, name?: string };

Requirements

  • Node 12+ is required

Tests

npm test

Testimonials

Based on swagger-to-flowtype by yayoc.