soulofmischief / DisposableStack

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

Home Page:https://tc39.es/proposal-explicit-resource-management/#sec-disposablestack-constructor

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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();

asyncStack.dispose();

// assert disposal was done

Tests

Clone the repo, npm install, and run npm test

About

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

https://tc39.es/proposal-explicit-resource-management/#sec-disposablestack-constructor

License:MIT License


Languages

Language:JavaScript 100.0%