node.js - Rekommenderat sätt att dela typer mellan frontend och nodejs graphql
Jag har börjat använda TypeScript med GraphQL på Node.js. Men en sak som slår mig är att använda gql från apollo-server-express. Finns det ett sätt jag kan använda typer som används inom GraphQL-schema någon annanstans.
import { gql } from 'apollo-server-express';
export const userSchema = gql`
type User {
id: String!
name: String
}
type Query {
getUsers: [User]
}
`;
Nu vill jag inte skapa ett separat gränssnitt för User. Och skulle vilja ha ett gränssnitt enligt följande tillgängligt:
export const usersResolver = {
Query: {
getUsers: () => db.get(condition).then(result => {
const users:Array<User> = [];
}
}
};
Jag skulle också vilja använda dessa typer på frontend också.
Hur kan detta göras.
Svar #1
Du bör använda något som GraphQL Code Generator för att automatiskt generera typerna åt dig baserat på ditt schema och dina frågor.