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

@gql-tools/hypergraph-express-middleware

v0.1.0-alpha.4

Published

Hypergraph Express Middleware

Downloads

8

Readme

Hypergraph Express Middleware

Fastest way to create Graphql Server with Express

Installation

  • yarn add @gql-tools/hypergraph-express-middleware

Usage

middleware
  • Add Middleware
import { middleware } from ' @gql-tools/hypergraph-express-middleware';

const context = { dbConnection, otherGlobals };
app.use('/graphql', middleware(context));
  • Now place your Resolvers in graphs/resolvers.js.

  • And your types in graphs/types.

  • You can change default locations by defining new paths in .hypergraphrc in your project root.

{
  "types": "some/other/graphs",
  "resolvers": "src/other/resolvers"
}
playground
import { playground } from ' @gql-tools/hypergraph-express-middleware';

app.use('/graphiql', playground(/* graphql route*/ '/graphql'));
merge
  • Merges two graphql resolvers, useful if you want to divide resolver to different files

Why Hypergraph? or Hot-ish Reloading of Resolvers

  • Hypergraph seperates your main node application with the graphql resolvers. You can have separate Dev Servers for your resolvers and Node Server so whenever there are changes in Resolvers only the resolver server is reloaded.

  • Hypergraph does cache invalidation during development in order to achieve hot-ish reloading for Resolvers, so it relies on NODE_ENV environment variable. Server reloading will not work if there's no NODE_ENV var present.

  • Hot Reloading can be achieved with any server, nodemon or webpack-dev-server or both(Required that only one does reloading).

eg with Nodemon

const resolverReload = nodemon({
  script: 'path to root resolver',
  watch: ['root resolver', 'types dir if you want'],
  nodeArgs: process.argv.slice(2),
}).on('quit', process.exit);

const expressReload = nodemon({
  script: 'path to express app',
  watch: ['express dir'],
  nodeArgs: process.argv.slice(2),
}).on('quit', process.exit);