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

48 lines (39 loc) 1.45 kB
import {type SanityClient} from '@sanity/client' import {validateDatasetAliasName} from '../../../actions/dataset/alias/validateDatasetAliasName' import {type DatasetAliasDefinition, type DatasetModificationResponse} from './types' export const ALIAS_PREFIX = '~' export function listAliases(client: SanityClient): Promise<DatasetAliasDefinition[]> { return client.request<DatasetAliasDefinition[]>({uri: '/aliases'}) } export function createAlias( client: SanityClient, aliasName: string, datasetName: string | null, ): Promise<DatasetModificationResponse> { return modify(client, 'PUT', aliasName, datasetName ? {datasetName} : undefined) } export function updateAlias( client: SanityClient, aliasName: string, datasetName: string | null, ): Promise<DatasetModificationResponse> { return modify(client, 'PATCH', aliasName, datasetName ? {datasetName} : undefined) } export function unlinkAlias( client: SanityClient, aliasName: string, ): Promise<DatasetModificationResponse> { validateDatasetAliasName(aliasName) return modify(client, 'PATCH', `${aliasName}/unlink`, {}) } export function removeAlias(client: SanityClient, aliasName: string): Promise<{deleted: boolean}> { return modify(client, 'DELETE', aliasName) } function modify( client: SanityClient, method: string, aliasName: string, body?: {datasetName?: string}, ) { return client.request({method, uri: `/aliases/${aliasName}`, body}) }