@cran/gql.reflect
Version:
Cranberry Introspection Utilities for GraphQL
24 lines (23 loc) • 1.09 kB
JavaScript
export function getIntrospectionQuery({ default: defaultFields = [], type = [], field = [], inputField = [], enumValue = [], } = {}) {
/* eslint-disable indent */
return ([
"{__schema{types{",
["kind", "name", "description", ...defaultFields, ...type || [],],
[" inputFields{...InputValue}", "interfaces{...TypeRef}", "possibleTypes{...TypeRef}",],
"fields(includeDeprecated:true){",
["name", "description", "isDeprecated", "deprecationReason", ...defaultFields, ...field,],
[" args{...InputValue}", "type{...TypeRef}",],
"}",
"enumValues(includeDeprecated:true){",
["name", "description", "isDeprecated", "deprecationReason", ...defaultFields, ...enumValue,],
"}",
"}}}",
"fragment InputValue on __InputValue{",
["name", "description", "defaultValue", ...defaultFields, ...inputField,],
" type{...TypeRef}",
"}",
"fragment TypeRef on __Type{",
"kind,name,ofType{kind,name,ofType{kind,name,ofType{kind,name}}}",
"}",
]).join("");
}