Skip to content

Commit 624d307

Browse files
add types-utils
1 parent 1e84f05 commit 624d307

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

Diff for: packages/jsondiffpatch/src/types.ts

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

0 commit comments

Comments
 (0)