This repository has been archived on 2020-11-02. You can view files and clone it, but cannot push or open issues or pull requests.
TripSit_Suite/node_modules/state-toggle/readme.md

96 lines
1.7 KiB
Markdown
Raw Normal View History

# state-toggle
[![Build][build-badge]][build]
[![Coverage][coverage-badge]][coverage]
[![Downloads][downloads-badge]][downloads]
[![Size][size-badge]][size]
Enter/exit a state.
## Install
[npm][]:
```sh
npm install state-toggle
```
## Use
```js
var toggle = require('state-toggle')
var ctx = {on: false}
var enter = toggle('on', ctx.on, ctx)
var exit
// Entering:
exit = enter()
console.log(ctx.on) // => true
// Exiting:
exit()
console.log(ctx.on) // => false
```
## API
### `toggle(key, initial[, ctx])`
Create a toggle, which when entering toggles `key` on `ctx` (or `this`, if `ctx`
is not given) to `!initial`, and when exiting, sets `key` on the context back to
the value it had before entering.
###### Returns
`Function` — [`enter`][enter].
### `enter()`
Enter the state.
###### Context
If no `ctx` was given to `toggle`, the context object (`this`) of `enter()` is
used to toggle.
###### Returns
`Function` — [`exit`][exit].
### `exit()`
Exit the state, reverting `key` to the value it had before entering.
## License
[MIT][license] © [Titus Wormer][author]
<!-- Definitions -->
[build-badge]: https://img.shields.io/travis/wooorm/state-toggle.svg
[build]: https://travis-ci.org/wooorm/state-toggle
[coverage-badge]: https://img.shields.io/codecov/c/github/wooorm/state-toggle.svg
[coverage]: https://codecov.io/github/wooorm/state-toggle
[downloads-badge]: https://img.shields.io/npm/dm/state-toggle.svg
[downloads]: https://www.npmjs.com/package/state-toggle
[size-badge]: https://img.shields.io/bundlephobia/minzip/state-toggle.svg
[size]: https://bundlephobia.com/result?p=state-toggle
[npm]: https://docs.npmjs.com/cli/install
[license]: license
[author]: https://wooorm.com
[enter]: #enter
[exit]: #exit