0.3.0 • Published 6 years ago

sanity-query-helper v0.3.0

Weekly downloads
4
License
MIT
Repository
github
Last release
6 years ago

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))