Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(index): Provide a similar API to Query #9193

Open
wants to merge 11 commits into
base: develop
Choose a base branch
from

Conversation

adrien2p
Copy link
Member

@adrien2p adrien2p commented Sep 19, 2024

What
Align the index engine API to be similar to the Query API

Example

        // Benefit from the same level of typing like the remote query

        const [results, count] = await indexEngine.queryAndCount<'product'>({
          fields: [
            "product.*",
            "product.variants.*",
            "product.variants.prices.*",
          ],
          filters: {
            product: {
              variants: {
                prices: {
                  amount: { $gt: 50 },
                },
              },
            },
          },
          pagination: {
            order: {
              product: {
                variants: {
                  prices: {
                    amount: "DESC",
                  },
                },
              },
            },
          },
        })

Copy link

changeset-bot bot commented Sep 19, 2024

⚠️ No Changeset found

Latest commit: bb76942

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

Copy link

vercel bot commented Sep 19, 2024

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
medusa-dashboard ✅ Ready (Inspect) Visit Preview 💬 Add feedback Sep 19, 2024 1:02pm
6 Skipped Deployments
Name Status Preview Comments Updated (UTC)
api-reference ⬜️ Ignored (Inspect) Sep 19, 2024 1:02pm
api-reference-v2 ⬜️ Ignored (Inspect) Visit Preview Sep 19, 2024 1:02pm
docs-ui ⬜️ Ignored (Inspect) Visit Preview Sep 19, 2024 1:02pm
docs-v2 ⬜️ Ignored (Inspect) Visit Preview Sep 19, 2024 1:02pm
medusa-docs ⬜️ Ignored (Inspect) Visit Preview Sep 19, 2024 1:02pm
resources-docs ⬜️ Ignored (Inspect) Visit Preview Sep 19, 2024 1:02pm

query<const TEntry extends string>(
config: IndexQueryConfig<TEntry>
): Promise<any[]>
queryAndCount<const TEntry extends string, Test = IndexQueryConfig<TEntry>>(
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

question: Can we kill this queryAndCount and return the same shape as query.graph?

const { data, metadata } = ...

Count would be part of metadata. Wdyt?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes we can def do that 👍 i dont see any issues

Copy link
Contributor

@olivermrbl olivermrbl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice work, few comments 💪

"test": "jest --passWithNoTests ./src",
"test:integration": "jest --runInBand --forceExit -- integration-tests/**/__tests__/**/*.ts",
"test:integration": "jest --runInBand --forceExit -- integration-tests/__tests__/index-engine-module.spec.ts",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

todo: rm

this.storageProvider_,
args
)
async queryAndCount<const TEntry extends string>(
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

todo(if-possible): Remove in favor of unified return shape as discussed above


queryAndCount(...args): unknown
queryAndCount<const TEntry extends string>(
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants