equal
compare two iterator sequences for equality
Install
npm install @async-generators/equal --save
yarn add @async-generators/equal
This package's main
entry points to a commonjs
dist.
The module
entry points to a es2015
module dist. Both require require native async-generator support, or be down-compiled with a webpack loader.
Api
equal(first, second [, comparer])
equal()
compares two [sync/async] iterable sequences and returns true if:
- both yield objects of the same
typeof
- both yield equal items, where
comparer(a, b) == true
- both yield equal items in the same order.
- both sequence yield the same number of items
Both first
and second
must have either a [Symbol.asyncIterator]
or [Symbol.iterator]
property. If they have both then [Symbol.asyncIterator]
is used.
Example
example.js
const equal = require('@async-generators/equal').default;
async function* first() {
yield 1; yield 2; yield 3;
}
function* second() {
yield 1; yield 2; yield 3;
}
async function main(){
let result = await equal(first(), second());
console.log("equal:", result);
}
main();
Execute with node.js 9 and above:
node --harmony example.js
Typescript
This library is fully typed and can be imported using:
import equal from '@async-generators/equal');
It is also possible to directly execute your properly configured typescript with ts-node:
ts-node --harmony foo.ts