node.js - Suositeltu tapa jakaa tyyppejä frontendin ja nodejs GraphQL:n välillä
Olen alkanut käyttää TypeScriptiä GraphQL:n kanssa Nodejs:ssä. Mutta yksi asia, joka kiinnittää huomioni, on gql-koodin käyttäminen apollo-server-express-kirjastosta. Onko olemassa tapa, jolla voisin käyttää GraphQL-skeemassa käytettyjä tyyppejä muualla.
import { gql } from 'apollo-server-express';
export const userSchema = gql`
type User {
id: String!
name: String
}
type Query {
getUsers: [User]
}
`;
Nyt en halua luoda erillistä rajapintaa User varten. Ja haluaisin, että seuraavanlainen rajapinta olisi valmiina:
export const usersResolver = {
Query: {
getUsers: () => db.get(condition).then(result => {
const users:Array<User> = [];
}
}
};
Haluaisin myös käyttää näitä tyyppejä frontendissä.
Miten tämä voidaan tehdä.
Vastaus #1
Sinun pitäisi käyttää jotain kuten GraphQL Code Generatoria automaattisesti generoimaan tyypit puolestasi skeemasi ja kyselyjesi perusteella.