@sanity/migrate
Version:
Tooling for running data migrations on Sanity.io projects
33 lines (29 loc) • 1.16 kB
text/typescript
import {type Mutation} from './types.js'
export interface Transaction {
mutations: Mutation[]
type: 'transaction'
id?: string
}
/**
* @public
*
* Wraps a set of mutations in a transaction.
* Note: use with caution. Transactions cannot be optimized and will be submitted one-by-one, which means they will make
* your migration run slower and produce more API requests.
* @param transactionId - The transaction ID. This is optional and should usually be omitted, as it will be auto-generated by the server if not provided.
* @param mutations - The mutations to include in the transaction.
*
* {@link https://www.sanity.io/docs/http-mutations#afccc1b9ef78}
*/
export function transaction(transactionId: string, mutations: Mutation[]): Transaction
export function transaction(mutations: Mutation[]): Transaction
export function transaction(
idOrMutations: Mutation[] | string,
_mutations?: Mutation[],
): Transaction {
const [id, mutations] =
typeof idOrMutations === 'string'
? [idOrMutations, _mutations as Mutation[]]
: [undefined, idOrMutations]
return {type: 'transaction', ...(id !== undefined && {id}), mutations}
}