@luisnicolau/gql-builder
Version:
Create queries and mutations dynamically
105 lines (93 loc) • 2.35 kB
JavaScript
import gqlBuilder from './GqlBuilder.js'
import gql from "graphql-tag";
let builder = new gqlBuilder()
builder.addMutation({
mutation: gql`
mutation ChangeStudentPassword($studentId: ID!, $password: String!) {
UpdateStudent(id: $studentId, password: $password) {
name
lastName
id
}
}
`,
variables: {
studentId: "Estudante ID",
password: "Pass"
}
// mutation createMutation(
// $id: ID!
// $string: String
// $number:Int
// $dateString: String
// $dateTimeInput: _Neo4jInputDateTime
// $enum: TaskType!
// $stringArray: [String]
// $intArray: [Int]
// $dateArray: [_Neo4jInputDateTime]
// ) {
// CreateMutation(
// id: $id
// string: $string
// number: $number
// dateString: $dateString
// dateTimeInput: $dateTimeInput
// enum: $enum
// stringArray: $stringArray
// intArray: $intArray
// dateArray: $dateArray
// ) {
// id
// name
// description
// type {
// deep1
// }
// }
// }
// variables: {
// id: "1234-1234",
// string: "Uma string",
// number: 42,
// stringArray: ["a", "b", "c"],
// intArray: [1, 2, 3],
// dateString: "2021-01-31T00:00:00",
// dateTimeInput: {
// formatted: "2021-01-3100:00:00"
// },
// dateArray: [
// {
// formatted: "2021-01-3100:00:00"
// },
// {
// formatted: "2021-01-3100:00:00"
// },
// {
// formatted: "2021-01-3100:00:00"
// }
// ],
// enum: "MyEnum"
// }
})
// builder.addMutation({
// mutation: gql`
// mutation createMutation(
// $id: ID!
// $string: String
// ) {
// CreateMutation(
// id: $id
// string: $string
// ) {
// id
// }
// }
// `,
// variables: {
// id: "1234-1234",
// string: "Uma string",
// }
// })
console.log(builder.getMutationString())
console.log(builder.generateMutationRequest().loc.source.body)
// {"operationName":null,"variables":{},"query":"mutation {\n mutation0: UpdateStudent(\n id: \"c7362114-c951-4d53-b0f3-73f0f673a2ff\"\n password: \"$2a$10$5.VAqNOf.5OCcmRdJdm7i.l3EdXtAqrxKUUXGNx3BXfGxMkv6uo8.\"\n ) {\n name\n lastName\n id\n __typename\n }\n}\n"}