npm.io
2.22.0 • Published yesterday

@medusajs/query

Licence
MIT
Version
2.22.0
Deps
2
Size
344 kB
Vulns
0
Weekly
0
Stars
36.4K

Medusa logo

@medusajs/query

Documentation | Website

Building blocks for digital commerce

Medusa is released under the MIT license. PRs welcome! Discord Chat Follow @medusajs

Query and Remote Joiner for Medusa: the engine behind Query, which retrieves data across modules and their links in a single call. You don't import this package directly in a Medusa application; resolve Query from the Medusa container with ContainerRegistrationKeys.QUERY ("query"), or use useQueryGraphStep from @medusajs/medusa/core-flows inside workflows.

At a glance

Package @medusajs/query
Type Core library
Import from Resolved from the container as ContainerRegistrationKeys.QUERY ("query")

Features

  • query.graph() to retrieve records of a data model and their linked records from other modules.
  • query.index() to filter across linked modules using the Index Module.
  • query.search() to run search queries through the Search Module.
  • RemoteJoiner, which resolves and joins data across module services.

Installation

No separate installation is needed in a Medusa application. It's installed with @medusajs/framework through @medusajs/modules-sdk.

Usage

import type { MedusaRequest, MedusaResponse } from "@medusajs/framework/http"
import { ContainerRegistrationKeys } from "@medusajs/framework/utils"

export const GET = async (req: MedusaRequest, res: MedusaResponse) => {
  const query = req.scope.resolve(ContainerRegistrationKeys.QUERY)

  const { data: products } = await query.graph({
    entity: "product",
    fields: ["id", "title", "variants.*"],
  })

  res.json({ products })
}

Resources