godon019
2/21/2019 - 4:09 AM

graphql fragment

for preventing 'accidentally omitting types when updating codes' use fragment like below

const ExpenseScalars = gql`
  fragment ExpenseScalars on Expense {
    id
    createdWhen

    category
    content
    tag
    amount
    quantity
  }
`

export const ExpensesGQL = 'Expenses'
const EXPENSES_QUERY = gql`
query ${ExpensesGQL}($id: ID, $alias: String, $start: String, $end: String){
  expenses(
    pogyowonInfo: {
      id: $id
      alias: $alias
    }
    date: {
      start: $start
      end: $end
    }
  ){  
    ...ExpenseScalars
  }
}
${ExpenseScalars}
`

so the Scalar fragment is always up-to-date with Schema on backend