Recherche de site Web

node.js - Manière recommandée de partager des types entre le frontend et nodejs graphql


J'ai commencé à utiliser TypeScript avec GraphQL sur Node.js. Mais une chose qui me frappe est l'utilisation de gql de apollo-server-express. Existe-t-il un moyen d'utiliser les types utilisés dans le schéma GraphQL ailleurs ?

import { gql } from 'apollo-server-express';

export const userSchema = gql`
  type User {
    id: String!
    name: String
  }

  type Query {
    getUsers: [User]
  }
`;

Maintenant, je ne veux pas créer une interface séparée pour User. Et j'aimerais qu'une interface comme suit soit facilement disponible :

export const usersResolver = {
  Query: {
    getUsers: () => db.get(condition).then(result => {
      const users:Array<User> = [];
    }
  }
};

De plus, j'aimerais également utiliser ces types sur le frontend.

Comment cela peut-il être fait.

Réponse n°1

Vous devriez utiliser quelque chose comme GraphQL Code Generator pour générer automatiquement les types pour vous en fonction de votre schéma et de vos requêtes.