Gathering detailed insights and metrics for graphql-relay-mongoose
Gathering detailed insights and metrics for graphql-relay-mongoose
Gathering detailed insights and metrics for graphql-relay-mongoose
Gathering detailed insights and metrics for graphql-relay-mongoose
mongoose-relay-paginate
Uses mongoose to create a relay compatible cursor based pagination.
relay-mongoose
## About `relay-mongoose` is a small library with a few utilities to make implementing [relay compliant server easier](https://relay.dev/docs/en/graphql-server-specification.html). It provides a class that enhanced the base `mongoose.Model` with a few rel
global-relay-id-mongoose
Mongoose helpers to add relay compatible object identification to your GraphQL Schema.
graphql-cursor
A Relay cursor pagination plugin for mongoose schema.
A library to help construct connection with edges and cursors for a graphql-js server supporting react-relay with mongoose ODM.
npm install graphql-relay-mongoose
Typescript
Module System
Min. Node Version
Node Version
NPM Version
JavaScript (100%)
Total Downloads
0
Last Day
0
Last Week
0
Last Month
0
Last Year
0
MIT License
1 Stars
10 Commits
2 Watchers
1 Branches
2 Contributors
Updated on Aug 29, 2017
Latest Version
0.1.2
Package Id
graphql-relay-mongoose@0.1.2
Size
27.46 kB
NPM Version
2.15.11
Node Version
4.8.4
Cumulative downloads
Total Downloads
Last Day
0%
NaN
Compared to previous day
Last Week
0%
NaN
Compared to previous week
Last Month
0%
NaN
Compared to previous month
Last Year
0%
NaN
Compared to previous year
A library to help construct connection with edges and cursors for a graphql-js server supporting react-relay with mongoose ODM.
const { connectionFromMongooseQuery } = require('graphql-relay-mongoose');
//create connection with graphql-relay-js package
var {connectionType: ShipConnection} = connectionDefinitions({nodeType: shipType});
var factionType = new GraphQLObjectType({
name: 'Faction',
fields: () => ({
ships: {
type: ShipConnection,
args: connectionArgs,
resolve: (faction, args) => {
const Ship = mongoose.model('Ship');
return connectionFromMongooseQuery(Ship.find({}), args,
async partialDoc => await load(partialDoc) //load the full document
}
),
}
}),
});
By default, without configuration, the connectionFromMongooseQuery
paginate the query using mongoDB _id
. See below to see more configuration.
The last argument is a load
function used to load the full document from database. The document is projected by the projection
object supply by minimumSelectorForCursorGeneration
.
npm install graphql graphql-relay graphql-relay-mongoose mongoose
By default the package paginate the query using mongoDB _id
and to avoid large retrieval from database, the package project the query to only _id
field. You can configure all the steps to create cursors and pagination.
const { setConfigForConnectionFromMongooseQuery } = require('graphql-relay-mongoose');
setConfigForConnectionFromMongooseQuery({
//return the default limit if none is provided
defaultLimit: async function(query) { } ,
//return the max limit if larger is provided
maxLimit: async function(query) { },
//return the mongoose projection object to be used when retrieving object from database to
//create a cursor (to avoid large retrieval from database)
minimumSelectorForCursorGeneration: async function(query) { },
//return the cursor object computed from the cursor string
cursorToCursorObject: async function(query, cursorString) { },
//return the mongoose selector object (for pagination) computed from
//the before cursor object
cursorObjectToBeforeSelector: async function(query, cursorObject) { },
//return the mongoose selector object (for pagination) computed from
//the after cursor object
cursorObjectToAfterSelector : async function(query, cursorObject) { },
//return the cursor string computed from a mongoose doc. partialDoc is
//the document projected by the projection
//object supply by minimumSelectorForCursorGeneration
docToCursorObject: async function(query, partialDoc) { },
});
For detail look at how the config object is configured in connectionFromMongooseQuery.js.
All methods are async because you may need to do some additional query inside each one.
To all methods, a query
object is passed. With this object (a mongoose Query object), you can define different rules for different collection. See this example:
const defaultLimit = async(query) => {
if (query.model.modelName === 'Ship') {
return 10;
}
return 5;
}
TODO: add some tests
Graphql relay mongoose is released under the MIT License.
No vulnerabilities found.
Reason
no binaries found in the repo
Reason
license file detected
Details
Reason
0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
Reason
Found 0/10 approved changesets -- score normalized to 0
Reason
no SAST tool detected
Details
Reason
no effort to earn an OpenSSF best practices badge detected
Reason
security policy file not detected
Details
Reason
project is not fuzzed
Details
Reason
branch protection not enabled on development/release branches
Details
Reason
48 existing vulnerabilities detected
Details
Score
Last Scanned on 2025-07-07
The Open Source Security Foundation is a cross-industry collaboration to improve the security of open source software (OSS). The Scorecard provides security health metrics for open source projects.
Learn More