Imperatively Invoke Queries and Mutations

We provide

invoke for imperatively invoking queries or mutations from your components. We also provide invokeWithMiddleware for imperatively invoking queries/mutations on the server with middleware.

invoke

This is for imperatively invoking queries or mutations from your components.

Example

  1. import {invoke} from "blitz"import getProducts from "app/products/queries/getProducts"const Page = function ({products}) { return ( <div> <button onClick={async () => { const products = await invoke(getProducts, {where: {orgId: 1}}) }} > Get Products </button> </div> )}export default Page

API

  1. const results = await invoke(resolver, resolverInputArguments)

Arguments

Returns

  • results
    • The exact results returned from the resolver

invokeWithMiddleware

This is for imperatively invoking queries/mutations on the server. It ensures appropriate middleware is run before/after your resolver.

Example

  1. import {invokeWithMiddleware, GetServerSideProps, Link, BlitzPage, PromiseReturnType} from "blitz"import getProducts from "app/products/queries/getProducts"type PageProps = { products: PromiseReturnType<typeof getProducts>}export const getServerSideProps: GetServerSideProps<PageProps> = async ({req, res}) => { const products = await invokeWithMiddleware(getProducts, {orderBy: {id: "desc"}}, {req, res}) return { props: {products}, }}const Page: BlitzPage<PageProps> = function ({products}) { return ( <div> <h1>Products</h1> <div id="products"> {products.map((product) => ( <p key={product.id}> <Link href="/products/[handle]" as={`/products/${product.handle}`}> <a>{product.name}</a> </Link> </p> ))} </div> </div> )}export default Page

API

  1. const results = await invokeWithMiddleware(resolver, resolverInputArguments, {req, res}))

Arguments

  • resolver: A Blitz query resolver or mutation resolver
    • Required
  • resolverInputArguments
    • Required
    • The arguments that will be passed to resolver
  • Other
    • req
      • Required
      • The BlitzApiRequest object
    • res
      • Required
      • The BlitzApiResponse object
    • middleware
      • Optional
      • Array of middleware that will be ran in addition to global middleware and any local middleware defined on the query/mutation.

Returns

  • results
    • The exact results returned from the resolver