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

graphql-to-openapi

v4.0.23

Published

A utility for converting the combination of an graphql schema and graphql query into an openapi specification.

Downloads

1,022

Readme

graphql-to-openapi

NPM Known Vulnerabilities codecov

Convert a graphql query + graphql schema into an openapi spec.

Demo

Not to be confused with the obviously more useful openapi-to-graphql.

Usage via CLI

npx graphql-to-openapi --yaml --schema <schemaFilename> --query <queryFilename>

Unknown Scalar Configuration via the CLI

Unknown scalars are scalar types in the graphql schema that do not obviously map to an openapi type.

The default behavior for unknown scalars is to treat them as string types in the output openapi schema. If you desire to override that behavior, supply a scalar config file to the graphq-to-openapi tool:

Example CLI usage:

npx graphql-to-openapi --scalarConfigFile myScalarConfig.json --yaml --schema <schemaFilename> --query <queryFilename>

---

myScalarConfig.json:
{
  "DateTimeScalar": {
    "type": "string",
    "description": "YYYY-MM-DD date",
    "example": "2017-01-01",
    "format": "date",
    "pattern": "YYYY-MM-DD",
    "minLength": 0,
    "maxLength": 10
  }
}

Usage as a module

import { graphqlToOpenApi } from 'graphql-to-openapi';

const { error, openApiSchema, queryErrors, schemaError } = graphqlToOpenApi({
  schema,
  query,
});

// error will contain any graphql-to-openapi errors if they exist.
// graphql-to-openapi only throws an error if you've failed to name
// the input query. The name of the input query is used to define the
// openapi route name.

// schemaError is an error in the parsing of the input schema.

// queryErrors are errors associated with parsing and validating the input query.
// This includes any validation issues when matching the query with the schema.

// openApiSchema will contain the deserialized openapi schema for the
// specified query.

For Developers contributing to this project

To get started:

  1. Clone the github repo git clone [email protected]/schwer/graphql-to-openapi
  2. npm install // install dependencies
  3. npm run test:watch

Updating the documentation:

  1. The docs subdirectory contains a create-react-app.
  2. cd docs && npm run start