0.0.13 • Published 3 years ago

erplain-graphql v0.0.13

Weekly downloads
-
License
MIT
Repository
-
Last release
3 years ago

Erplain GraphQL Query Builder

Install

Using npm :

$ npm install erplain-graphql

Using Yarn :

$ yarn add erplain-graphql

Query

Import :

import { Query } from 'erplain-graphql'

Basic usage :

const query = new Query('Product', ['id', 'label'], {id: 3})

query.addField('sku')
// => ['id', 'label', 'sku']

query.addParameter('sku', 'ABC123')
// => {id: 3, sku: "ABC123"}

query.removeParameter('id')
// => {sku: "ABC123"}

query.buildQueryOne()
// => query{Product(sku:"ABC123"){id,label,sku,}}

query.buildQueryMany()
// => query{Products(sku:"ABC123"){edges{node{id,label,sku,}}}}

query.buildSubqueryOne()
// => Product(sku:"ABC123"){id,label,sku,}

query.buildSubqueryMany()
// => Products(sku:"ABC123"){edges{node{id,label,sku,}}}

query.addTotalCount()
query.buildQueryMany()
// => query{Products(sku:"ABC123"){totalCount,edges{node{id,label,sku,}}}}

Generate query for one element

const statement = Query.queryOne('Product', ['id', 'label'], {id: 3})
// => query{Product(id:3){id,label,}}

Generate query for many elements

const statement = Query.queryMany('Products', ['id', 'label'], {tags: ['Tag A', 'Tag B']})
// => query{Products(tags:['Tag A', 'Tag B']){edges{node{id,label,}}}}

Generate subquery for one element

const statement = Query.subqueryOne('product', ['id', 'label'])
// => product{id,label,}

Generate subquery for many elements

const statement = Query.subqueryMany('products', ['id', 'label'])
// => products{edges{node{id,label,}}}

Mutation

Import :

import { Mutation } from 'erplain-graphql'

Basic usage :

const mutation = new Mutation('ProductCreate', ['id', 'label'], {id: 3})

mutation.addField('sku')
// => ['id', 'label', 'sku']

mutation.addParameter('input', { id: 3, sku: 'ABC123' })
// => {id: 3, input: { id: 3, sku: 'ABC123' }}

mutation.removeParameter('id')
// => {input: { id: 3, sku: 'ABC123' }}

mutation.build()
// => mutation{ProductCreate(input: { id: 3, sku: 'ABC123' }){id,label,sku,}}

Generate one mutation

const data = {
  input: {
    label: 'Super produit',
    sku: 'SUP PDT',
  }
}
const statement = Mutation.generate('ProductCreate', ['id', 'label'], data)
// => mutation{ProductCreate(input: { label: 'Super produit', sku: 'SUP PDT' }){id,label,}}

Fragment

Import :

import { Fragment } from 'erplain-graphql'

Basic usage :

const fragment = new Fragment('variant', ['sku'])

fragment.addField('product_id')
// => ['sku', 'product_id']

fragment.build()
// => ... on variant{sku,product_id,}

Generate one fragment

const statement = Fragment.generate('variant', ['sku'])
// => ... on variant{sku,product_id,}
0.0.13

3 years ago

0.0.12

3 years ago

0.0.11

3 years ago

0.0.10

3 years ago

0.0.9

3 years ago

0.0.8

4 years ago

0.0.7

4 years ago

0.0.6

4 years ago

0.0.5

4 years ago

0.0.4

4 years ago

0.0.3

4 years ago

0.0.2

4 years ago

0.0.1

4 years ago