UNPKG

@sanity/migrate

Version:

Tooling for running data migrations on Sanity.io projects

95 lines 2.53 kB
import { type Path } from '@sanity/types'; import { type Operation } from './operations/types.js'; import { type Optional } from './typeUtils.js'; /** * @public * * A list of {@link NodePatch} objects. */ export type NodePatchList = [NodePatch, ...NodePatch[]] | NodePatch[] | readonly [NodePatch, ...NodePatch[]] | readonly NodePatch[]; /** * @public * * A Sanity Content Lake document */ export type SanityDocument = { _createdAt?: string; _id?: string; _rev?: string; _type: string; _updatedAt?: string; }; /** * @public * * Represents a mutation that creates a new document in the Sanity Content Lake. This mutation will fail if the ID already exist. */ export type CreateMutation<Doc extends Optional<SanityDocument, '_id'>> = { document: Doc; type: 'create'; }; /** * @public * * Represents a mutation that can create a new document in the Sanity Content Lake if its ID does not exist. */ export type CreateIfNotExistsMutation<Doc extends SanityDocument> = { document: Doc; type: 'createIfNotExists'; }; /** * @public * * Represents a mutation that can create or replace a document in the Sanity Content Lake given its ID. */ export type CreateOrReplaceMutation<Doc extends SanityDocument> = { document: Doc; type: 'createOrReplace'; }; /** * @public * * Represents a mutation that can delete a document in the Sanity Content Lake. */ export type DeleteMutation = { id: string; type: 'delete'; }; /** * @public * * Represents a patch mutation that can change a value for a document in the Sanity Content Lake. */ export type PatchMutation<Patches extends NodePatchList = NodePatchList> = { id: string; options?: PatchOptions; patches: Patches; type: 'patch'; }; /** * @public * * Represents a mutation that can be applied to a document in the Sanity Content Lake. */ export type Mutation<Doc extends SanityDocument = any> = CreateIfNotExistsMutation<Doc> | CreateMutation<Doc> | CreateOrReplaceMutation<Doc> | DeleteMutation | PatchMutation; /** * @public * * A NodePatch represents a single operation that can be applied at a node at a specific path in a Sanity document. */ export type NodePatch<P extends Path = Path, O extends Operation = Operation> = { op: O; path: P; }; /** * @public * * Options for a patch operation. */ export type PatchOptions = { /** * {@link https://www.sanity.io/docs/http-mutations#26600a871378} */ ifRevision?: string; }; //# sourceMappingURL=types.d.ts.map