UNPKG

@sanity/migrate

Version:

Tooling for running data migrations on Sanity.io projects

138 lines 3.2 kB
import { type KeyedSegment } from '@sanity/types'; import { type AnyArray } from '../typeUtils.js'; /** * @public * * Represents an indexed segment in a document. */ type IndexedSegment = number; export type { IndexedSegment }; /** * @public * * Represents a set-operation that can be applied to any value */ export type SetOp<T> = { type: 'set'; value: T; }; /** * @public * * Represents an unset operation that can be applied to any value */ export type UnsetOp = { type: 'unset'; }; /** * @public * * Represents a setIfMissing operation that can be applied to any value */ export type SetIfMissingOp<T> = { type: 'setIfMissing'; value: T; }; /** * @public * * Represents an increment-operation that can be applied to a number */ export type IncOp<Amount extends number> = { amount: Amount; type: 'inc'; }; /** * @public * * Represents a decrement-operation that can be applied to a number */ export type DecOp<Amount extends number> = { amount: Amount; type: 'dec'; }; /** * @public * * Represents a relative position in a document. */ export type RelativePosition = 'after' | 'before'; /** * @public * * Represents an insert-operation that can be applied to an array */ export type InsertOp<Items extends AnyArray, Pos extends RelativePosition, ReferenceItem extends IndexedSegment | KeyedSegment> = { items: Items; position: Pos; referenceItem: ReferenceItem; type: 'insert'; }; /** * @public * * Represents a truncate-operation that can be applied to an array */ export type TruncateOp = { endIndex?: number; startIndex: number; type: 'truncate'; }; /** * @public * * Represents a replace-operation that can be applied to an array */ export type ReplaceOp<Items extends AnyArray, ReferenceItem extends IndexedSegment | KeyedSegment> = { items: Items; referenceItem: ReferenceItem; type: 'replace'; }; /** * @public * * Represents a diff-match-patch operation that can be applied to a string * {@link https://www.npmjs.com/package/@sanity/diff-match-patch} */ export type DiffMatchPatchOp = { type: 'diffMatchPatch'; value: string; }; /** * @public * * Represents an operation that can be applied to values of all types */ export type Operation = ArrayOp | PrimitiveOp; /** * @public * * Represents an operation that can be applied to values of all types */ export type AnyOp = SetIfMissingOp<unknown> | SetOp<unknown> | UnsetOp; /** * @public * * Represents an operation that can be applied to a number */ export type NumberOp = DecOp<number> | IncOp<number>; /** * @public * * Represents an operation that can be applied to a string */ export type StringOp = DiffMatchPatchOp; /** * @public * * Represents ann operation that can be applied to an array */ export type ArrayOp = InsertOp<AnyArray, RelativePosition, IndexedSegment | KeyedSegment> | ReplaceOp<AnyArray, IndexedSegment | KeyedSegment> | TruncateOp; /** * @public * * Represents an operation that can be applied to any primitive value */ export type PrimitiveOp = AnyOp | NumberOp | StringOp; export { type KeyedSegment } from '@sanity/types'; //# sourceMappingURL=types.d.ts.map