Skip to content

Commit

Permalink
add types-utils
Browse files Browse the repository at this point in the history
  • Loading branch information
andelkocvjetkovic committed Feb 23, 2025
1 parent 1e84f05 commit 624d307
Showing 1 changed file with 40 additions and 0 deletions.
40 changes: 40 additions & 0 deletions packages/jsondiffpatch/src/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -50,3 +50,43 @@ export interface Filter<TContext extends Context<any>> {
(context: TContext): void;
filterName: string;
}

export function isAddedDelta(delta: Delta): delta is AddedDelta {
return Array.isArray(delta) && delta.length === 1;
}

export function isModifiedDelta(delta: Delta): delta is ModifiedDelta {
return Array.isArray(delta) && delta.length === 2;
}

export function isDeletedDelta(delta: Delta): delta is DeletedDelta {
return (
Array.isArray(delta) &&
delta.length === 3 &&
delta[1] === 0 &&
delta[2] === 0
);
}

export function isObjectDelta(delta: Delta): delta is ObjectDelta {
return (
delta !== undefined && typeof delta === 'object' && !Array.isArray(delta)
);
}

export function isArrayDelta(delta: Delta): delta is ArrayDelta {
return (
delta !== undefined &&
typeof delta === 'object' &&
'_t' in delta &&
delta._t === 'a'
);
}

export function isMovedDelta(delta: Delta): delta is MovedDelta {
return Array.isArray(delta) && delta.length === 3 && delta[2] === 3;
}

export function isTextDiffDelta(delta: Delta): delta is TextDiffDelta {
return Array.isArray(delta) && delta.length === 3 && delta[2] === 2;
}

0 comments on commit 624d307

Please sign in to comment.