# md-stack

> Microlibrary that provides a Stack data structure.

Latest version **1.0.0** (published 2015-07-02) · MIT license · 0 weekly downloads

## Install

```sh
npm install md-stack
pnpm add md-stack
yarn add md-stack
bun add md-stack
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.0 |
| Published | 2015-07-02 |
| First published | 2015-07-02 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Node | >= 0.10.0 |
| Dependencies | 0 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | mderoche |
| Maintainers | mderoche |

## Links

- npm: https://www.npmjs.com/package/md-stack
- Repository: https://github.com/mderoche/md-stack
- Homepage: https://github.com/mderoche/md-stack#readme
- Issues: https://github.com/mderoche/md-stack/issues
- npm.io page: https://npm.io/package/md-stack

## Recent versions

- 1.0.0 (latest) — 2015-07-02

## README

# md-stack

A JavaScript micro-library for Node and browsers that provides a Stack data structure (< 1 kb).

## Installation

```
$ npm install --save-dev md-stack
```

```
$ bower install md-stack
```

## Browser Usage

    var s = new Stack()
      .push('a')
      .push('b');

    console.log(s.size());       // 2
    console.log(s.pop());        // b
    console.log(s.peek());       // a
    console.log(s.indexOf('a')); // 0
  
    s.clear();
    console.log(s.empty());      // true
    
    
    // maximum capacity of 2
    var s = new Stack({ cap: 2, yell: true });
      .push('a')
      .push('b')
      .push('c'); // throws error
    
    console.log(s.size()); // 2
    console.log(s.full()); // true

## Node Usage

     var Stack = require('md-stack');
     
     var s = new Stack()
       .push('a')
       .push('b');
    
## API

### Constructor Options
* `cap` (Integer) - Maximum capacity of the stack.  [Optional, **default:** undefined]
* `yell` (Boolean) - If `true`, throw an error when stack would overflow on a `.push()`  [Optional, **default:** undefined]

### .pop()
Removes and returns the element on top of the stack.

### .push(element)
Pushes the `element` onto the top of the stack.  If the stack is full, the element won't be added and an error will
be thrown if the `yell` option is used.

### .peek()
Returns, but does not remove, the element on top of the stack.

### .indexOf(element)
Returns the position of the `element` in the stack, -1 if not found.

### .clear()
Clears the stack, removing all elements.

### .empty()
Determines if the stack is empty.

### .full()
Determines if the stack is at maximum capacity.

### .size()
Returns the number of elements in the stack.

### .capacity([cap])
If `cap` is provided, the maximum capacity of the stack is set and any overflowing elements (starting from the
top) are removed.  If `cap` is not provided, the maximum capacity of the stack is returned.

## License

MIT

---
_Source: https://npm.io/package/md-stack · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
