diff --git a/README.md b/README.md
index d19bbda..e035cc8 100644
--- a/README.md
+++ b/README.md
@@ -16,9 +16,9 @@ This library compares two arrays or objects and returns a full diff of their dif
## WHY YOU SHOULD USE THIS LIBRARY
-All other existing solutions return a strange diff format that often requires additional parsing. They are also limited to object comparison.
+Most existing solutions return a confusing diff format that often requires extra parsing. They are also limited to object comparison.
-**Superdiff** gives you a complete diff for both array and objects in a very readable format. Last but not least, it's battle-tested, has zero dependencies, and is super fast.
+**Superdiff** provides a complete and readable diff for both arrays **and** objects. Plus, it's battle-tested, has zero dependencies, and is super fast.
Import. Enjoy. 👍
@@ -66,7 +66,7 @@ isObject(data)
import { getObjectDiff } from "@donedeal0/superdiff";
```
-Compares two objects and return a diff for each value and their potential subvalues. Supports deeply nested objects with any kind of values.
+Compares two objects and returns a diff for each value and its possible subvalues. Supports deeply nested objects of any value type.
#### FORMAT
@@ -87,7 +87,7 @@ options?: {
- `prevData`: the original object.
- `nextData`: the new object.
- `options`
- - `ignoreArrayOrder`: if set to `true`, `["hello", "world"]` and `["world", "hello"]` will be treated as `equal`, because the two arrays have the same value, just not in the same order.
+ - `ignoreArrayOrder`: if set to `true`, `["hello", "world"]` and `["world", "hello"]` will be treated as `equal`, because the two arrays contain the same values, just in a different order.
- `showOnly`: returns only the values whose status you are interested in. It takes two parameters:
- `statuses`: status you want to see in the output (e.g. `["added", "equal"]`)
@@ -226,8 +226,8 @@ Compares two arrays and returns a diff for each entry. Supports duplicate values
- `nextList`: the new list.
- `options`
- `showOnly` gives you the option to return only the values whose status you are interested in (e.g. `["added", "equal"]`).
- - `referenceProperty` will consider an object to be updated instead of added or deleted if one of its properties remains stable, such as its `id`. This option has no effect on other datatypes.
- - `ignoreArrayOrder`: if set to `true`, `["hello", "world"]` and `["world", "hello"]` will be treated as `equal`, because the two arrays have the same value, just not in the same order.
+ - `referenceProperty` will consider an object to be `updated` rather than `added` or `deleted` if one of its properties remains stable, such as its `id`. This option has no effect on other datatypes.
+ - `ignoreArrayOrder`: if set to `true`, `["hello", "world"]` and `["world", "hello"]` will be treated as `equal`, because the two arrays contain the same values, just in a different order.
- `considerMoveAsUpdate`: if set to `true` a `moved` value will be considered as `updated`.
**Output**
@@ -328,18 +328,18 @@ Streams the diff of two object lists, ideal for large lists and maximum performa
- `prevList`: the original object list.
- `nextList`: the new object list.
-- `referenceProperty`: a common property in all the objects of your lists (e.g. `id`).
+- `referenceProperty`: a property common to all objects in your lists (e.g. `id`).
- `options`
- - `chunksSize` the number of object diffs returned by each streamed chunk. (e.g. `0` = 1 object diff by chunk, `10` = 10 object diffs by chunk).
+ - `chunksSize` the number of object diffs returned by each streamed chunk. (e.g. `0` = 1 object diff per chunk, `10` = 10 object diffs per chunk).
- `showOnly` gives you the option to return only the values whose status you are interested in (e.g. `["added", "equal"]`).
- `considerMoveAsUpdate`: if set to `true` a `moved` value will be considered as `updated`.
**Output**
-The objects diff are grouped in arrays - called `chunks` - and are consumed thanks to an event listener. You have access to 3 events:
+The objects diff are grouped into arrays - called `chunks` - and are consumed thanks to an event listener. You have access to 3 events:
- `data`: to be notified when a new chunk of object diffs is available.
- - `finish`: to be notified when the stream is complete.
- - `error`: to be notified of an error during the stream.
+ - `finish`: to be notified when the stream is finished.
+ - `error`: to be notified if an error occurs during the stream.
```ts
interface StreamListener> {
@@ -442,7 +442,7 @@ diff.on("error", (err) => console.log(err))
import { isEqual } from "@donedeal0/superdiff";
```
-Checks whether two values are equal.
+Tests whether two values are equal.
#### FORMAT
@@ -455,9 +455,9 @@ options: {
ignoreArrayOrder: boolean; // false by default
},
```
-- `a`: the value to compare to the value `b`.
-- `b`: the value that will be compared to the value `a`.
-- `ignoreArrayOrder`: if set to `true`, `["hello", "world"]` and `["world", "hello"]` will be treated as `equal`, because the two arrays have the same value, just not in the same order.
+- `a`: the value to be compared to the value `b`.
+- `b`: the value to be compared to the value `a`.
+- `ignoreArrayOrder`: if set to `true`, `["hello", "world"]` and `["world", "hello"]` will be treated as `equal`, because the two arrays contain the same values, just in a different order.
#### USAGE
diff --git a/src/lib/list-diff/list-diff.test.ts b/src/lib/list-diff/list-diff.test.ts
index 7481aa4..94ed606 100644
--- a/src/lib/list-diff/list-diff.test.ts
+++ b/src/lib/list-diff/list-diff.test.ts
@@ -791,35 +791,3 @@ describe("getListDiff", () => {
});
});
});
-
-describe("Performance", () => {
- it("should correctly stream diff for 10.000 entries", () => {
- const generateLargeList = (size: number, idPrefix: string) => {
- return Array.from({ length: size }, (_, i) => ({
- id: `${idPrefix}-${i}`,
- value: i,
- }));
- };
- const prevList = generateLargeList(10_000, "prev");
- const nextList = [
- ...generateLargeList(5000, "prev"),
- ...generateLargeList(5000, "next"),
- ];
-
- const receivedChunks = getListDiff(prevList, nextList).diff;
-
- const deletions = receivedChunks.filter(
- (diff) => diff.status === LIST_STATUS.DELETED,
- );
- const additions = receivedChunks.filter(
- (diff) => diff.status === LIST_STATUS.ADDED,
- );
- const updates = receivedChunks.filter(
- (diff) => diff.status === LIST_STATUS.EQUAL,
- );
- expect(receivedChunks.length).toBe(15_000); // 5000 deletions + 5000 equal + 5000 additions
- expect(deletions.length).toBe(5000);
- expect(additions.length).toBe(5000);
- expect(updates.length).toBe(5000);
- });
-});