No Proscribed Meaning

    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.

    Install

    npm i apollo-mongoose-plugin

    DownloadsWeekly Downloads

    57

    Version

    1.0.1

    License

    ISC

    Unpacked Size

    61.9 kB

    Total Files

    47

    Last publish

    Collaborators

    • skauffmann