Install & Compatibility
Where this runs
No compatibility data collected yet for this library.
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
resolver
✓ import { resolver } from 'graphql-sequelize'
✗ const resolver = require('graphql-sequelize').resolver
Since v9, graphql-sequelize is ESM-only. Use named import.
default (package itself)
✓ import graphqlSequelize from 'graphql-sequelize'
✗ import * as graphqlSequelize from 'graphql-sequelize'
Default import was removed in v9. Use named imports instead.
type definitions
✓ import type { ResolverOptions } from 'graphql-sequelize'
✗ import { ResolverOptions } from 'graphql-sequelize'
Type imports are available. Use 'import type' in TypeScript for type-only imports.
Sets up a minimal GraphQL schema with Sequelize models and resolver for users and tasks.
import { resolver } from 'graphql-sequelize';
import { GraphQLObjectType, GraphQLString, GraphQLInt, GraphQLNonNull, GraphQLList, GraphQLSchema, graphql } from 'graphql';
import { Sequelize, DataTypes } from 'sequelize';
const sequelize = new Sequelize('sqlite::memory:');
const User = sequelize.define('user', { name: DataTypes.STRING });
const Task = sequelize.define('task', { title: DataTypes.STRING });
User.hasMany(Task, { as: 'tasks' });
const taskType = new GraphQLObjectType({
name: 'Task',
fields: {
id: { type: new GraphQLNonNull(GraphQLInt) },
title: { type: GraphQLString }
}
});
const userType = new GraphQLObjectType({
name: 'User',
fields: {
id: { type: new GraphQLNonNull(GraphQLInt) },
name: { type: GraphQLString },
tasks: {
type: new GraphQLList(taskType),
resolve: resolver(User.associations.tasks)
}
}
});
const schema = new GraphQLSchema({
query: new GraphQLObjectType({
name: 'Query',
fields: {
users: {
type: new GraphQLList(userType),
args: { name: { type: GraphQLString } },
resolve: resolver(User, { list: true })
}
}
})
});
sequelize.sync().then(() => {
return graphql({ schema, source: '{ users { name tasks { title } } }' });
}).then(response => {
console.log(JSON.stringify(response));
});
Errors
Common errors & fixes
Cannot find module 'graphql-sequelize'
Package not installed or missing in node_modules.
fixRun `npm install graphql-sequelize` and ensure both `graphql` and `sequelize` are installed.
TypeError: resolver is not a function
Using default import incorrectly after v9.
fixUse named import: `import { resolver } from 'graphql-sequelize'`. Expected 'findOptions' to be an object but got undefined
`before` hook did not return the `findOptions` object.
fixEnsure `before` returns `findOptions` or a Promise resolving to it.
Cannot read property 'tasks' of undefined
Association not defined or incorrectly referenced in resolver.
fixVerify association is defined on the model: `User.hasMany(Task, { as: 'tasks' })` and access via `User.associations.tasks`. Audit
Dependencies
graphqlrequiredPeer dependency for GraphQL type system and resolver support
graphql-relayoptionalPeer dependency for Relay connection handling
sequelizerequiredPeer dependency for Sequelize model definitions