在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称(OpenSource Name):domasx2/graphql-combine-query开源软件地址(OpenSource Url):https://github.com/domasx2/graphql-combine-query开源编程语言(OpenSource Language):TypeScript 100.0%开源软件介绍(OpenSource Introduction):graphql-combine-queryThis is a util to combine multiple graphql queries or mutations into a single one. Why?
Installnpm install graphql-combine-query Usage / examplescombine several queries / mutations togethercreate query builder with import combineQuery from 'graphql-combine-query'
import gql from 'graphql-tag'
const fooQuery = gql`
query FooQuery($foo: String!) {
getFoo(foo: $foo)
}
`
const barQuery = gql`
query BarQuery($bar: String!) {
getBar(bar: $bar)
}
`
const { document, variables } = combineQuery('FooBarQuery')
.add(fooQuery, { foo: 'some value' })
.add(barQuery, { bar: 'another value' })
console.log(variables)
// { foo: 'some value', bar: 'another value' }
print(document)
/*
query FooBarQuery($foo: String!, $bar: String!) {
getFoo(foo: $foo)
getBar(bar: $bar)
}
*/ add multiple instances of the same query / mutationIt's not uncommon to need to add the same mutation several times, eg when updating multiple objects.
In this case use Let's say we want to create foo and update several bars by id: import combineQuery from 'graphql-combine-query'
import gql from 'graphql-tag'
const createFooMutation = gql`
mutation CreateFoo($foo: foo_input!) {
createFoo(foo: $foo) {
id
}
}
`
const updateBarMutation = gql`
mutation UpdateBar($bar_id: Int!, $bar: bar_update_input!) {
updateBar(where: { id: { _eq: $bar_id } }, _set: $bar) {
id
}
}
`
const { document, variables } = (() => combineQuery('CompositeMutation')
.add(createFooMutation, { foo: { name: 'A foo' }})
.addN(updateBarMutation, [
{ bar_id: 1, bar: { name: 'Some bar' }},
{ bar_id: 2, bar: { name: 'Another bar' }}
])
)()
console.log(variables)
/*
{
foo: { name: 'A foo' },
bar_id_0: 1,
bar_0: { name: 'Some bar' },
bar_id_1: 2,
bar_1: { name: 'Another bar' }
}
*/
print(document)
/*
mutation CompositeMutation($foo: foo_input!, $bar_id_0: Int!, $bar_0: bar_update_input!, $bar_id_1: Int!, $bar_1: bar_update_input!) {
createFoo(foo: $foo) {
id
}
updateBar_0: updateBar(where: {id: {_eq: $bar_id_0}}, _set: $bar_0) {
id
}
updateBar_1: updateBar(where: {id: {_eq: $bar_id_1}}, _set: $bar_1) {
id
}
}
*/ |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论