@async-generators/equal

v0.3.0
check if two AsyncIterable sequences are equal
async iterator generator esnext typescript

equal

logo

compare two iterator sequences for equality

NPM version Travis Status Travis Status

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
npm i @async-generators/[email protected]

Metadata

  • MIT
  • >=8.5.0
  • Meirion Hughes
  • released 9/17/2017

Downloads

Maintainers