Mi esquema de mangosta es el siguiente
var ImageFormats = new Schema({ svg : String, png-xlarge : String, png-small : String });Cuando traduzco esto a un esquema GraphQL, esto es lo que intento
export var GQImageFormatsType: ObjectType = new ObjectType({ name: 'ImageFormats', fields: { svg : { type: GraphQLString }, 'png-xlarge': { type: GraphQLString }, 'png-small' : { type: GraphQLString } } }); GraphQL devuelve el siguiente error: Error: Names must match /^[_a-zA-Z][_a-zA-Z0-9]*$/ but "png-xlarge" does not.
Si intento modelar GraphQL según mi modelo Mongoose, ¿cómo puedo reconciliar los campos? ¿Hay alguna forma de crear un alias?
(He buscado esto en los foros de graffiti y stackoverflow pero no pude encontrar una pregunta similar)
GraphQL devuelve el siguiente error: Error: los nombres deben coincidir con /^[_a-zA-Z][_a-zA-Z0-9]*$/ pero "png-xlarge" no.
GraphQL se queja de que el nombre del campo 'png-xlarge' no es válido. La expresión regular en el mensaje de error dice que el primer carácter puede ser una letra independientemente del caso o el guión bajo. Los caracteres restantes también pueden tener dígitos. Por lo tanto, está claro que ni el guión - ni la comilla simple ' son aceptables para un nombre de campo. Las reglas básicamente siguen las reglas de nomenclatura de variables que se encuentran en casi todos los lenguajes de programación. Puede consultar las reglas de nomenclatura de GraphQL .
Si intento modelar GraphQL según mi modelo Mongoose, ¿cómo puedo reconciliar los campos? ¿Hay alguna forma de crear un alias?
Con la ayuda de la función de resolve , puede hacer esto de la siguiente manera:
pngXLarge: { type: GraphQLString, resolve: (imageFormats) => { // get the value `xlarge` from the passed mongoose object 'imageFormats' const xlarge = imageFormats['png-xlarge']; return xlarge; }, },