Skip to content

Commit c47ce16

Browse files
committed
Merge branch 'master' into vnext
2 parents e5f0c84 + 3892eea commit c47ce16

File tree

2 files changed

+41
-1
lines changed

2 files changed

+41
-1
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545

4646
as a CLI:
4747

48-
```sh
48+
``` sh
4949
npx jsondiffpatch https://jsondiffpatch.com/demo/left.json https://jsondiffpatch.com/demo/right.json
5050
```
5151

packages/jsondiffpatch/src/types.ts

Lines changed: 40 additions & 0 deletions
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)