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
import {invoke} from "blitz"import getProducts from "app/products/queries/getProducts"const Page = function ({products}) {return (<div><buttononClick={async () => {const products = await invoke(getProducts, {where: {orgId: 1}})}}>Get Products</button></div>)}export default Page
API
const results = await invoke(resolver, resolverInputArguments)
Arguments
resolver:
A Blitz query resolver or mutation resolver- Required
resolverInputArguments
- Required
- The arguments that will be passed to
resolver
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
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
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