Skip to content

Latest commit

 

History

History
executable file
·
52 lines (41 loc) · 1.53 KB

README.md

File metadata and controls

executable file
·
52 lines (41 loc) · 1.53 KB

Sanity Query Helper

CircleCI Coverage Status

Description

GROQ can be hard to grok. While GROQ is a really powerful tool, it can be a bit overkill for your most common Sanity operations. To make it easier to query sanity for your content, sanity-query-helper provides an API which might be easier to understand.

Install

yarn add sanity-query-helper

Usage

Immutable. All functions are chainable (except for send) and return a new helper.

import SanityQueryHelper from "sanity-query-helper"

const sanityHelper = new SanityQueryHelper({
  sanityOptions: {
    projectId: "project-id",
    dataset: "myDataSet",
    useCdn: true
  }
})

// Create query

// Filters
const filter = sanityHelper
  .ofType("post")
  .withFilter("releaseDate") // .compare("releaseDate", SanityQueryHelper.comparisons.greaterOrEqualTo, 1979)
  .greaterOrEqualTo(1979)
  .send()
  .then(useMyData) // 👈 response from sanity

// Picks aka Projections
filter
  .pick("title")
  .send()
  .then(useMyData) // 👈 response with projection

//  Select
const select = projection
  .select(0, 10)
  .send()
  .then(data => doStuff(data)) // 👈 response will have 10 first posts (if that many exists)

// Order by
select
  .orderBy(releaseYear)
  .send(orderedData => use(orderedData))