5.0.1 • Published 3 years ago

@eclass/sequelize-graphql-tools v5.0.1

Weekly downloads
126
License
MIT
Repository
github
Last release
3 years ago

sequelize-graphql-tools

npm version Build Status npm downloads Maintainability devDependency Status

Utils to generate graphql schema, types, querys and mutations from sequelize models

Installation

npm i sequelize-graphql-tools graphql graphql-compose graphql-fields graphql-iso-date sequelize

Use

One model to GraphqlType

const { modelToType } = require('@eclass/sequelize-graphql-tools')
const db = require('./models') // Sequelize instance with all models imported

const options = {
  ignore: ['password'] // Hide password in fields
}
const UserTC = modelToType(db.User.name, db.User.rawAttributes, options)

All model to GraphqlType

const { createTypes } = require('@eclass/sequelize-graphql-tools')
const db = require('./models') // Sequelize instance with all models imported

const options = {
  ignore: ['Session'], // Ignore models
  fields: {
    User: { ignore: ['password'] } // Hide password in User fields
  }
}
const allTypes = createTypes(db, options)
const UserTC = allTypes.User

Append associations

const { createTypes, appendAssociations } = require('@eclass/sequelize-graphql-tools')
const db = require('./models') // Sequelize instance with all models imported

const options = {
  ignore: ['Session'], // Ignore models
  fields: {
    User: { ignore: ['password'] } // Hide password in User fields
  }
}
const allTypes = createTypes(db, options)
Object.keys(allTypes).forEach(name => {
  appendAssociations(allTypes, name, db[name].associations)
})

Generate all querys and mutations

const { GraphQLSchema, GraphQLObjectType } = require('graphql/type')
const { createTypes, appendAssociations } = require('@eclass/sequelize-graphql-tools')
const db = require('./models') // Sequelize instance with all models imported

const options = {
  ignore: ['Session'], // Ignore models
  fields: {
    User: { ignore: ['password'] } // Hide password in User fields
  }
}
const allTypes = createTypes(db, options)
Object.keys(allTypes).forEach(name => {
  appendAssociations(allTypes, name, db[name].associations)
})
const querys = Object.keys(allTypes).reduce((acc, name) => {
  return { ...acc, ...createQuery(db[name], allTypes[name].gqType) }
}, {})
const mutations = Object.keys(allTypes).reduce((acc, name) => {
  return {
    ...acc,
    ...createMutation(db[name], allTypes[name].gqType)
  }
}, {})
const query = new GraphQLObjectType({
  name: 'query',
  fields: () => ({ ...querys })
})
const mutation = new GraphQLObjectType({
  name: 'mutation',
  fields: () => ({ ...mutations })
})
const schema = new GraphQLSchema({ query, mutation })

Licencia

MIT

5.0.1

3 years ago

5.0.0

4 years ago

4.2.1

4 years ago

4.2.0

4 years ago

4.1.0

4 years ago

4.0.1

5 years ago

4.0.0

5 years ago

3.0.0

5 years ago

2.1.0

5 years ago

2.0.2

6 years ago

2.0.1

6 years ago

2.0.0

6 years ago

1.2.1

6 years ago