apollo-mongoose-plugin
TypeScript icon, indicating that this package has built-in type declarations

1.0.1 • Public • Published

Apollo Mongoose Plugin

npm version types license bundlephobia

Apollo GraphQL plugin to add Mongodb query information on the extensions node.

You will have access to the queries executed by Mongoose and execution times directly from the GraphQL response as bellow:

Apollo Mongoose Plugin

Installation

If you’re using npm:

npm install apollo-mongoose-plugin

With yarn:

yarn add apollo-mongoose-plugin

Usage

Adding the apollo-mongoose-plugin plugin to your project is done in 2 steps:

  1. register the mongoose query collector plugin: it will add hooks to collect and measure execution times of your queries.
  2. register the apollo plugin: it will use the previous query collector to return queries on the GraphQL response.
import {
  ApolloMongoosePlugin,
  mongoCollectorPlugin,
} from 'apollo-mongoose-plugin';
import { ApolloServer } from 'apollo-server';
import mongoose from 'mongoose';

// first: register mongoose query collector plugin
// 🔔  Make sure you are registering the mongoose plugin
//     before you are creating mongoose models
mongoose.plugin(mongoCollectorPlugin);

// then: register apollo plugin
const server = new ApolloServer({
  // ...schema, dataSources
  plugins: [new ApolloMongoosePlugin()],
});

🚨   Be aware that it is best not to activate this plugin in production. For example, you can do this:

if (process.env.NODE_ENV !== 'production')
  mongoose.plugin(mongoCollectorPlugin);

const server = new ApolloServer({
  // ...schema, dataSources
  plugins: [
    process.env.NODE_ENV !== 'production' && new ApolloMongoosePlugin(),
  ].filter(Boolean),
});

API

ApolloMongoosePlugin

This is the core plugin, that you register with Apollo Server.

Options

Name Default Description
formatMongoQuery formatMongoQueryAsString Function called to format queries in the GraphQL response. You can create your own by implementing FormatMongoQuery
mongoCollector MongooQueryCollector.getInstance() Instance of mongoose query collector

Contributing

You want to help? That’s awesome!

Check out the details of our contribution process (it’s fairly standard).

License and copyright

This library is © Samuel Kauffmann and is MIT licensed. See LICENSE.md for details.

Package Sidebar

Install

npm i apollo-mongoose-plugin

Weekly Downloads

5

Version

1.0.1

License

ISC

Unpacked Size

61.9 kB

Total Files

47

Last publish

Collaborators

  • skauffmann