@rauschma/set-methods-polyfill
TypeScript icon, indicating that this package has built-in type declarations

0.2.0 • Public • Published

Set methods polyfill

A polyfill for the ECMAScript proposal “Set Methods for JavaScript” (documentation for this proposal).

Warning

Don’t trust this code:

  • It’s mostly untested.

Caveats:

  • The focus is on simple code, not on spec compliance.

Functionality:

  • This polyfill implements all methods specified in the proposal.
  • This polyfill deliberately does not provide any additional functionality.

Installation

npm install @rauschma/set-methods-polyfill

Examples

Polyfill

import '@rauschma/set-methods-polyfill/install';
import assert from 'node:assert/strict';

assert.deepEqual(
  new Set(['a', 'b', 'c']).union(new Set(['c', 'd'])),
  new Set(['a', 'b', 'c', 'd'])
);
assert.deepEqual(
  new Set(['a', 'b', 'c']).intersection(new Set(['c', 'd'])),
  new Set(['c'])
);
assert.deepEqual(
  new Set(['a', 'b', 'c']).difference(new Set(['c', 'd'])),
  new Set(['a', 'b'])
);

assert.deepEqual(
  new Set(['a', 'b', 'c']).isSubsetOf(new Set(['a'])),
  false
);
assert.deepEqual(
  new Set(['a', 'b', 'c']).isSupersetOf(new Set(['a'])),
  true
);

Library (doesn’t change JavaScript’s globals)

import {union, intersection, difference, isSubsetOf, isSupersetOf} from '@rauschma/set-methods-polyfill';
import assert from 'node:assert/strict';

assert.deepEqual(
  union(new Set(['a', 'b', 'c']), new Set(['c', 'd'])),
  new Set(['a', 'b', 'c', 'd'])
);
assert.deepEqual(
  intersection(new Set(['a', 'b', 'c']), new Set(['c', 'd'])),
  new Set(['c'])
);
assert.deepEqual(
  difference(new Set(['a', 'b', 'c']), new Set(['c', 'd'])),
  new Set(['a', 'b'])
);

assert.deepEqual(
  isSubsetOf(new Set(['a', 'b', 'c']), new Set(['a'])),
  false
);
assert.deepEqual(
  isSupersetOf(new Set(['a', 'b', 'c']), new Set(['a'])),
  true
);

More examples

Material on iterator helpers

Package Sidebar

Install

npm i @rauschma/set-methods-polyfill

Weekly Downloads

0

Version

0.2.0

License

MIT

Unpacked Size

51.4 kB

Total Files

18

Last publish

Collaborators

  • rauschma