A Sequelize integration for Graphene-JS.
For installing Graphene Sequelize, just run this command in your shell
npm install --save graphene-sequelize
# or
yarn add graphene-sequelize
Here is a simple Sequelize model:
import * as Sequelize from "sequelize";
const UserModel = sequelize.define("user", {
name: Sequelize.STRING,
lastName: Sequelize.STRING
});
To create a GraphQL schema for it you simply have to write the following:
import { ObjectType, Field, Schema } from "graphene-js";
import { SequelizeObjectType } from "graphene-sequelize";
@SequelizeObjectType({ model: UserModel })
class User {
// Fields will be populated automatically from the sequelize
// model, and we can also add extra fields here.
}
class Query {
@Field([User])
users() {
return UserModel.findAll();
}
}
schema = new Schema({ query: Query });
Then you can simply query the schema:
const query = `
query {
users {
name,
lastName
}
}
`
result = await schema.execute(query)
To learn more check out the following examples:
- Schema with Filtering: Cookbook example
- Relay Schema: Starwars Relay example
After developing, the full test suite can be evaluated by running:
yarn test --coverage
The documentation is generated using the excellent Sphinx and a custom theme.
The documentation dependencies are installed by running:
cd docs
pip install -r requirements.txt
Then to produce a HTML version of the documentation:
make html