@sanity/migrate
Version:
Tooling for running data migrations on Sanity.io projects
138 lines • 3.2 kB
TypeScript
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