Skip to content

adityaokke/apollographql-sequelize

Repository files navigation

apollographql-sequelize

apollographql-sequelize is a nodejs library for dealing with translation from graphql AST to sequlize option used on find query

Installation

npm i apollographql-sequelize

Usage

schema sample (more schema sample on test file)

#has many
query users($where: WhereUser, $order: [OrderUser], $cartsWhere2: WhereCart) {
  users(where: $where, order: $order) {
    firstName
    age
    Carts (where: $cartsWhere2) {
      user_id
      item_type
      item_id
    }
  }
}

{
  "where": {
    "age": {
      "eq": 20
    }
  },
  "order": [
    "AGE_ASC",
    "CARTS__ITEM_ID_DESC"
  ],
  "cartsWhere2": {
    "item_type": {
      "eq": "PRODUCT"
    }
  }
}

then on resolver use this code as a sample

# resolver
const { GetOutput, AssociationToInclude, GetValidAttributes, ParseResolverArgsOrder, ParseResolverArgsWhere } = require('apollographql-sequelize');

sampleQuery(parent, args, context, info) {
    const opt = {};
    if (args.where) {
      opt.where = ParseResolverArgsWhere(args.where);
    }
    if (args.order) {
      opt.order = ParseResolverArgsOrder(model, args.order);
    }
    const output = GetOutput(info);
    opt.attributes = GetValidAttributes(model, output.attributes);
    if (output.associations) {
      opt.include = AssociationToInclude(model, output.associations);
    }
    sequelizeModel.findAll(opt)
}

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

Reference

https://itnext.io/step-by-step-building-and-publishing-an-npm-typescript-package-44fe7164964c https://levelup.gitconnected.com/getting-started-with-sequelize-cli-using-faker-824b3f4c4cfe

License

MIT

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published