Skip to content

Commit 2d3cd46

Browse files
authored
Merge pull request #382 from andelkocvjetkovic/types-utils
add types-utils
2 parents 8ed3fae + 624d307 commit 2d3cd46

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

packages/jsondiffpatch/src/types.ts

+40
Original file line numberDiff line numberDiff line change
@@ -51,3 +51,43 @@ export interface Filter<TContext extends Context<any>> {
5151
(context: TContext): void;
5252
filterName: string;
5353
}
54+
55+
export function isAddedDelta(delta: Delta): delta is AddedDelta {
56+
return Array.isArray(delta) && delta.length === 1;
57+
}
58+
59+
export function isModifiedDelta(delta: Delta): delta is ModifiedDelta {
60+
return Array.isArray(delta) && delta.length === 2;
61+
}
62+
63+
export function isDeletedDelta(delta: Delta): delta is DeletedDelta {
64+
return (
65+
Array.isArray(delta) &&
66+
delta.length === 3 &&
67+
delta[1] === 0 &&
68+
delta[2] === 0
69+
);
70+
}
71+
72+
export function isObjectDelta(delta: Delta): delta is ObjectDelta {
73+
return (
74+
delta !== undefined && typeof delta === 'object' && !Array.isArray(delta)
75+
);
76+
}
77+
78+
export function isArrayDelta(delta: Delta): delta is ArrayDelta {
79+
return (
80+
delta !== undefined &&
81+
typeof delta === 'object' &&
82+
'_t' in delta &&
83+
delta._t === 'a'
84+
);
85+
}
86+
87+
export function isMovedDelta(delta: Delta): delta is MovedDelta {
88+
return Array.isArray(delta) && delta.length === 3 && delta[2] === 3;
89+
}
90+
91+
export function isTextDiffDelta(delta: Delta): delta is TextDiffDelta {
92+
return Array.isArray(delta) && delta.length === 3 && delta[2] === 2;
93+
}

0 commit comments

Comments
 (0)