Sanity Content Source ​
The sanitySource content source is used to fetch data from Sanity.io. It supports fetching data using GROQ queries and can handle pagination of large datasets.
Usage ​
To use the sanitySource content source, include it in the list of content sources in your configuration:
import { sanitySource } from '@bluecadet/launchpad-content';
export default defineConfig({
content: {
sources: [
sanitySource({
id: 'mySanitySource',
projectId: 'your-project-id',
dataset: 'production',
apiToken: 'your-api-token', // Required for private datasets
queries: [
'project', // Fetches all documents of type 'project'
{ id: 'featured', query: '*[_type == "article" && featured == true]' }
]
})
]
}
});Options ​
id ​
- Type:
string - Required
Specifies the unique identifier for this source. This will be used as the download path.
projectId ​
- Type:
string - Required
Your Sanity project ID.
dataset ​
- Type:
string - Default:
'production'
The name of the dataset you want to fetch from.
apiToken ​
- Type:
string - Optional
Sanity API token. Required if you're accessing a private dataset.
apiVersion ​
- Type:
string - Default:
'v2021-10-21'
The Sanity API version to use.
queries ​
- Type:
Array<string | { query: string, id: string }> - Required
An array of queries to fetch. Each query can be either:
- A string representing a document type (e.g.,
'article'will fetch all documents of type 'article') - An object with a custom GROQ query and an ID for the result set
Note:
if the query includes a range (e.g., *[_type == "article"][0...100] or *[_type == "article"][0]), the limit and maxNumPages options will be ignored, and the query will be executed as is.
useCdn ​
- Type:
boolean - Default:
true
Set to false if you want to ensure fresh data instead of potentially cached responses.
limit ​
- Type:
number - Default:
100
Maximum number of documents to fetch per page.
maxNumPages ​
- Type:
number - Default:
1000
Maximum number of pages to fetch.
mergePages ​
- Type:
boolean - Default:
false
When true, combines all paginated results into a single file. When false, each page is stored separately.