3.19.0 • Published 4 years ago

@forrestjs/service-express-graphql v3.19.0

Weekly downloads
2
License
MIT
Repository
github
Last release
4 years ago

@forrestjs/service-express-graphql

ForrestJS service which sets up a GraphQL endpoint in your ExpressJS App.

const { runHookApp } = require('@forrestjs/hooks')
const { GraphQLString } = require('graphql')

runHookApp({
    settings: {
        expressGraphql: {
            mountPoint: '/api',
            queries: {
                info: {
                    type: GraphQLString,
                    resolve: () => 'Hello World Query',
                },
            },
            mutations: {
                info: {
                    type: GraphQLString,
                    resolve: () => 'Hello World Mutation',
                },
            },
        },
    },
    services: [
        require('@forrestjs/service-express'),
        require('@forrestjs/service-express-graphql'),
    ],
});

Configuration

mountPoint

String, where to mount the GraphQL api. Defaults to /api.

middlewares

Array, a list of middlewares to run before the express-graphql. This is useful if you wish to customize the body-parser or stuff like that.

queries, mutations

Objects, provide the queries and mutations for the GraphQL schema. You can also use a hook to do so, it's explained later on in this file.

config

Object, provide custom configuration to express-graphql.

Add a query/mutation to the graph:

Here is an example of a feature that extends the GraphQL schema and provides a really advances page counter (really old school):

const { GraphQLString } = require('graphql');

const pageViews = ({ registerQuery, registerMutation }) => {
    let hits = 0
    registerQuery('getPageView', {
        type: GraphQLInt,
        resolve: () => hits,
    })
    registerMutation('logPageView', {
        type: GraphQLInt,
        resolve: () => (hits += 1),
    })
};

export default [ '$EXPRESS_GRAPHQL', pageViews ];

Regenerate the GraphQL Schema on the fly

The entire express-graphql middleware is cached in memory to boost performances, but you can force a full rebuild of it by bumping its cache key using a middleware:

(req, res, next) => {
  if (isNeeded) {
    req.bumpGraphqlETAG();
  }
  next();
};

You can also control the specific ETAG value by setting it:

(req, res, next) => {
  if (isNeeded) {
    req.bumpGraphqlETAG(33);
  }
  next();
};
3.19.0

4 years ago

3.18.2

4 years ago

3.18.1

4 years ago

3.18.0

4 years ago

3.17.0

4 years ago

3.16.1

4 years ago

3.16.0

4 years ago

3.15.0

4 years ago

3.14.0

4 years ago

3.13.8

4 years ago

3.13.4

4 years ago

3.13.3

4 years ago

3.13.6

4 years ago

3.13.5

4 years ago

3.13.7

4 years ago

3.13.2

4 years ago

3.13.1

4 years ago

3.13.0

4 years ago

3.12.0

4 years ago

3.11.0

4 years ago

3.10.1

4 years ago

3.9.0

4 years ago

3.8.0

4 years ago

3.7.3

4 years ago

3.7.2

4 years ago

3.7.0

5 years ago

3.6.0

5 years ago

3.5.0

5 years ago

3.4.3

5 years ago

3.4.0

5 years ago

3.3.0

5 years ago

3.2.0

5 years ago

3.1.4

5 years ago

3.1.3

5 years ago

3.0.10

5 years ago

3.0.9

5 years ago

3.0.8

5 years ago

3.0.5

5 years ago

3.0.3

5 years ago

3.0.2

5 years ago

3.0.1

5 years ago

3.0.0

5 years ago

3.0.0-beta.0

5 years ago

3.0.0-alpha.9

5 years ago

3.0.0-alpha.8

5 years ago

3.0.0-alpha.7

5 years ago

3.0.0-alpha.6

5 years ago

3.0.0-alpha.4

5 years ago

3.0.0-alpha.3

5 years ago

3.0.0-alpha.2

5 years ago

3.0.0-alpha.1

5 years ago

3.0.0-alpha.0

5 years ago

2.9.12

5 years ago

2.9.11

5 years ago

2.9.10

5 years ago

2.9.8

5 years ago

2.9.6

5 years ago

2.9.5

5 years ago

2.9.4

5 years ago

2.9.3

5 years ago

2.9.2

5 years ago

2.9.1

5 years ago

2.9.0

5 years ago

2.8.5

5 years ago

2.8.4

5 years ago

2.8.3

5 years ago

2.8.2

5 years ago

2.8.0

5 years ago

2.7.3

5 years ago

2.7.3-y.0

5 years ago

2.7.3-alpha.4

5 years ago

2.7.3-alpha.3

5 years ago

2.7.3-alpha.2

5 years ago

2.7.3-alpha.1

5 years ago

2.7.3-alpha.0

5 years ago

2.7.2

5 years ago

2.7.1

5 years ago

2.7.0

5 years ago

2.7.0-alpha.5

5 years ago

2.7.0-alpha.4

5 years ago

2.7.0-alpha.3

5 years ago

2.7.0-alpha.2

5 years ago

2.7.0-alpha.1

5 years ago

2.7.0-alpha.0

5 years ago

2.6.1

5 years ago

2.6.0

5 years ago

2.5.0

5 years ago

2.4.1

5 years ago

2.4.0

5 years ago

2.3.0

5 years ago

0.1.3

5 years ago

0.1.2

5 years ago

0.1.1

5 years ago

0.1.1-alpha.4

5 years ago

0.1.1-alpha.3

5 years ago

0.1.1-alpha.2

5 years ago

0.1.1-alpha.1

5 years ago

0.1.1-alpha.0

5 years ago

0.1.0

5 years ago

0.0.63-alpha.0

5 years ago

0.0.61-alpha.0

5 years ago

0.0.60-alpha.0

5 years ago

0.0.58-alpha.0

5 years ago

0.0.57-alpha.0

5 years ago

0.0.55-alpha.0

5 years ago

0.0.53-alpha.0

5 years ago

0.0.52-alpha.0

5 years ago

0.0.50-alpha.0

5 years ago

0.0.49-alpha.0

5 years ago

0.0.29-alpha.0

5 years ago

0.0.23-alpha.0

5 years ago

0.0.22-alpha.0

5 years ago

0.0.21-alpha.0

5 years ago

0.0.20-alpha.0

5 years ago

0.0.19-alpha.0

5 years ago

0.0.18-alpha.0

5 years ago

0.0.17-alpha.0

5 years ago