UNPKG

sanity

Version:

Sanity is a real-time content infrastructure with a scalable, hosted backend featuring a Graph Oriented Query Language (GROQ), asset pipelines and fast edge caches

47 lines (37 loc) 1.13 kB
import {type CliCommandContext} from '@sanity/cli' import {type SanityClient} from '@sanity/client' import {chooseDatasetPrompt} from '../dataset/chooseDatasetPrompt' type ResolvedApiClient = { projectId: string datasetName: string token?: string client: SanityClient } async function resolveApiClient( context: CliCommandContext, datasetName: string, apiVersion: string, ): Promise<ResolvedApiClient> { const {apiClient} = context let client = apiClient() const {projectId, token} = client.config() if (!projectId) { throw new Error('Project ID not defined') } // If no dataset provided, explicitly ask for dataset instead of using dataset // configured in Sanity config. Aligns with `sanity dataset export` behavior. let selectedDataset: string = datasetName if (!selectedDataset) { selectedDataset = await chooseDatasetPrompt(context, { message: 'Select the dataset name:', }) } client = client.withConfig({dataset: datasetName, apiVersion}) return { projectId, datasetName: selectedDataset, token, client, } } export default resolveApiClient