JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 24352
  • Score
    100M100P100Q154636F
  • License MIT

An ESnext spec-compliant `DisposableStack`, `AsyncDisposableStack`, `Symbol.dispose`, and `Symbol.asyncDispose` shim/polyfill/replacement that works as far down as ES3.

Package Exports

  • disposablestack
  • disposablestack/AsyncDisposableStack
  • disposablestack/AsyncDisposableStack/auto
  • disposablestack/AsyncDisposableStack/implementation
  • disposablestack/AsyncDisposableStack/polyfill
  • disposablestack/AsyncDisposableStack/shim
  • disposablestack/DisposableStack
  • disposablestack/DisposableStack/auto
  • disposablestack/DisposableStack/implementation
  • disposablestack/DisposableStack/polyfill
  • disposablestack/DisposableStack/shim
  • disposablestack/Symbol.asyncDispose
  • disposablestack/Symbol.asyncDispose/auto
  • disposablestack/Symbol.asyncDispose/implementation
  • disposablestack/Symbol.asyncDispose/polyfill
  • disposablestack/Symbol.asyncDispose/shim
  • disposablestack/Symbol.dispose
  • disposablestack/Symbol.dispose/auto
  • disposablestack/Symbol.dispose/implementation
  • disposablestack/Symbol.dispose/polyfill
  • disposablestack/Symbol.dispose/shim
  • disposablestack/auto
  • disposablestack/package.json
  • disposablestack/shim

Readme

disposablestack Version Badge

github actions coverage dependency status dev dependency status License Downloads

npm badge

An ESnext spec-compliant DisposableStack, AsyncDisposableStack, Symbol.dispose, and Symbol.asyncDispose shim/polyfill/replacement that works as far down as ES3.

Its root auto entrypoint also provides SuppressedError, via the suppressed-error package.

This package implements the es-shim API “multi” interface. It works in an ES3-supported environment and complies with the proposed spec.

Getting started

npm install --save disposablestack

Usage/Examples

const assert = require('assert');

require('disposablestack/auto');

assert.equal(typeof Symbol.dispose, 'symbol');
assert.equal(typeof Symbol.asyncDispose, 'symbol');

const error = new SuppressedError();
assert.ok(error instanceof Error);

const stack = new DisposableStack();

const asyncStack = new AsyncDisposableStack();

// examples of stack methods

stack.dispose();

await asyncStack.disposeAsync();

// assert disposal was done

Tests

Clone the repo, npm install, and run npm test