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

graphinx

v0.12.1

Published

<p align="center"> <img src="./wordmark.svg" alt="Graphinx logo" height="100" /><br> <i>Beautiful, auto-generated API documentation for your GraphQL APIs.</i> <br> <br> <img src="./demo.gif" alt="Graphinx logo" width="80%" /><br> </p>

Downloads

225

Readme

Production example

Features

Less noise

| | | | ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | | Relay integration Don't pollute your documentation with hundreds of ThingEdge and ThingConnection types. Graphinx will automatically detect them and display them as Connection<Thing>. | | | Result types Similarly, Graphinx will detect return types that are unions of a Success type and error types. |

Less indirection

| | | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------- | | Some types are only used in one place. Documenting them somewhere else is unecessary, and makes answering the important question complex: what data can I get on this object? Graphinx gives template the opportunity to embed types when they are only referenced by a single other type. | |

Ready for scale

| | | | ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | | Big GraphQL APIs have a lot of types, queries and mutations. Don't let your users read a 10,000-pages-long dump of unrelated, alphabetically-sorted types. With Graphinx, you organize your schema items (types, queries, mutations and subscriptions) into modules. You can define modules manually, or define patterns to auto-categorize your items based on your source code. |

Extensible

| | | | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------- | | As with the Sphinx documentation tool, Graphinx is template-based: if you want your documentation site to have a unique look, it's really easy to do so. Graphinx essentially processes your schema into data that's ready to use for documentation site generation. Here's an example of what the generated data made available to templates looks like Right now, Graphinx offers a gorgeous default template, and a markdown template, that exports an index markdown file as well as one file per module. | A template's package.json |

Getting Started

  1. Add Graphinx to your dev dependencies:

    yarn add --dev graphinx
  2. Initialize a config file

    yarn graphinx init
  3. Follow the instructions given by the CLI ;)

Configuration

Configuration is done through a .graphinx.yaml config file. The path to the config file can be changed with --config.

You can put schema items (types and root fields) into modules by using the @graphinx(module: "module-name").

You can define the directive in your schema like this:

directive @graphinx(module: String) on OBJECT | FIELD_DEFINITION | SCALAR | ENUM | UNION | INTERFACE | INPUT_OBJECT

Schema items can also be categorized via the configuration file, see the .graphinx.yaml config file documentation

A JSON schema is available at https://raw.githubusercontent.com/graphinx/graphinx/main/config.schema.json.

Available templates

See graphinx/templates

Creating a new template

See graphinx/templates' contribution guide