A library for cactus stack
npm install cactus-stack[![coverage][nyc-cov-image]][github-url] [![dependency][depencency-image]][dependency-url] [![maintenance][maintenance-image]][npmsio-url] [![quality][quality-image]][npmsio-url] [![github][github-test-image]][github-test-url] [![travis][travis-image]][travis-url]
cactus-stack - A library for cactus stack works on Node.js
``shell`
npm i cactus-stack --save
`typescript
import { CactusStack, CactusStackError } from 'cactus-stack'
type Foo = {
id: number
name: string
}
const root = new CactusStack
const firstNode = root.push({
id: 1,
name: 'foo',
})
const secondNode = root.push({
id: 2,
name: 'bar',
})
const thirdNode = secondNode.push({
id: 3,
name: 'baz',
})
const baz = thirdNode.pop()
if (baz instanceof CactusStackError) {
console.error(baz.message)
process.exit(1)
}
console.assert(baz.id === 3)
console.assert(baz.name === 'baz')
const foo = firstNode.pop()
if (foo instanceof CactusStackError) {
console.error(foo.message)
process.exit(1)
}
console.assert(foo.id === 1)
console.assert(foo.name === 'foo')
const err = thirdNode.pop()
console.assert(err instanceof CactusStackError)
``
[depencency-image]:https://img.shields.io/librariesio/release/npm/cactus-stack?logo=nodedotjs
[dependency-url]:https://npmjs.com/package/cactus-stack?activeTab=dependencies
[github-test-image]:https://github.com/kei-g/cactus-stack.js/actions/workflows/main.yml/badge.svg?branch=main
[github-test-url]:https://github.com/kei-g/cactus-stack.js/actions/workflows/main.yml
[github-url]:https://github.com/kei-g/cactus-stack.js
[license-image]:https://img.shields.io/github/license/kei-g/cactus-stack.js
[license-url]:https://opensource.org/licenses/BSD-3-Clause
[maintenance-image]:https://img.shields.io/npms-io/maintenance-score/cactus-stack?logo=npm
[npm-image]:https://img.shields.io/npm/v/cactus-stack.svg?logo=npm
[npm-url]:https://npmjs.org/package/cactus-stack
[npmsio-url]:https://npms.io/search?q=cactus-stack
[nyc-cov-image]:https://img.shields.io/nycrc/kei-g/cactus-stack.js?config=.nycrc.json&label=coverage
[quality-image]:https://img.shields.io/npms-io/quality-score/cactus-stack?logo=npm
[travis-image]:https://img.shields.io/travis/com/kei-g/cactus-stack.js/main?label=build%20%26%20test&logo=travis
[travis-url]:https://app.travis-ci.com/kei-g/cactus-stack.js