Skip to content

Commit 4833d14

Browse files
committed
feat(asyncNotEqualOnce): add asyncNotEqualOnce function
1 parent 3399caa commit 4833d14

File tree

2 files changed

+36
-0
lines changed

2 files changed

+36
-0
lines changed

index.test.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import {
1010
asyncIterator,
1111
asyncLastOnce,
1212
asyncNotEmptyOnce,
13+
asyncNotEqualOnce,
1314
asyncOnlyOnce,
1415
asyncPushOnce,
1516
asyncSliceOnce,
@@ -305,3 +306,23 @@ test("asyncEqualOnce", async t => {
305306
)
306307
);
307308
});
309+
310+
test("asyncNotEqualOnce", async t => {
311+
t.false(await asyncNotEqualOnce(asyncIterator([1, 2, 3]), asyncIterator([1, 2, 3])));
312+
t.true(await asyncNotEqualOnce(asyncIterator([1, 2, 3]), asyncIterator([1, 2, 3, 4])));
313+
t.true(await asyncNotEqualOnce(asyncIterator([1, 2, 3, 4]), asyncIterator([1, 2, 3])));
314+
t.true(await asyncNotEqualOnce(asyncIterator([1, 3, 3]), asyncIterator([1, 2, 3])));
315+
t.false(
316+
await asyncNotEqualOnce(
317+
asyncIterator([asyncIterator([1, 2]), asyncIterator([3, 4])]),
318+
asyncIterator([asyncIterator([1, 2]), asyncIterator([3, 4])]),
319+
asyncEqualOnce
320+
)
321+
);
322+
t.true(
323+
await asyncNotEqualOnce(
324+
asyncIterator([asyncIterator([1, 2]), asyncIterator([3, 4])]),
325+
asyncIterator([asyncIterator([1, 2]), asyncIterator([3, 4])])
326+
)
327+
);
328+
});

index.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -448,3 +448,18 @@ export function asyncEqualOnceFn<T>(
448448
): (a: AsyncIteratorLike<T>) => Promise<boolean> {
449449
return async a => asyncEqualOnce(a, b, elementsEqual);
450450
}
451+
452+
export async function asyncNotEqualOnce<T>(
453+
a: AsyncIteratorLike<T>,
454+
b: AsyncIteratorLike<T>,
455+
elementsEqual: (a: T, b: T) => boolean | Promise<boolean> = defaultEqual
456+
): Promise<boolean> {
457+
return !(await asyncEqualOnce(a, b, elementsEqual));
458+
}
459+
460+
export function asyncNotEqualOnceFn<T>(
461+
b: AsyncIteratorLike<T>,
462+
elementsEqual: (a: T, b: T) => boolean | Promise<boolean> = defaultEqual
463+
): (a: AsyncIteratorLike<T>) => Promise<boolean> {
464+
return async a => !(await asyncEqualOnce(a, b, elementsEqual));
465+
}

0 commit comments

Comments
 (0)