{"_id":"state-toggle","_rev":"163256","name":"state-toggle","description":"Enter/exit a state","dist-tags":{"latest":"2.0.1"},"maintainers":[{"name":"wooorm","email":"tituswormer@gmail.com"}],"time":{"modified":"2021-06-03T11:42:47.000Z","created":"2016-07-16T14:09:42.564Z","2.0.1":"2021-03-08T07:59:56.118Z","2.0.0":"2021-03-07T20:00:56.223Z","1.0.3":"2020-01-26T12:50:01.275Z","1.0.2":"2019-05-10T18:50:59.031Z","1.0.1":"2018-04-21T09:38:27.596Z","1.0.0":"2016-07-16T14:09:42.564Z"},"users":{"earthdan":true},"author":{"name":"Titus Wormer","email":"tituswormer@gmail.com","url":"https://wooorm.com"},"repository":{"type":"git","url":"git+https://github.com/wooorm/state-toggle.git"},"versions":{"2.0.1":{"name":"state-toggle","version":"2.0.1","description":"Enter/exit a state","license":"MIT","keywords":["enter","exit","state"],"repository":{"type":"git","url":"git+https://github.com/wooorm/state-toggle.git"},"bugs":{"url":"https://github.com/wooorm/state-toggle/issues"},"funding":{"type":"github","url":"https://github.com/sponsors/wooorm"},"author":{"name":"Titus Wormer","email":"tituswormer@gmail.com","url":"https://wooorm.com"},"contributors":[{"name":"Titus Wormer","email":"tituswormer@gmail.com","url":"https://wooorm.com"}],"sideEffects":false,"type":"module","main":"index.js","types":"index.d.ts","devDependencies":{"@types/tape":"^4.0.0","c8":"^7.0.0","prettier":"^2.0.0","remark-cli":"^9.0.0","remark-preset-wooorm":"^8.0.0","rimraf":"^3.0.0","tape":"^5.0.0","typescript":"^4.0.0","xo":"^0.38.0"},"scripts":{"prepublishOnly":"npm run build","format":"remark . -qfo && prettier . -w --loglevel warn && xo --fix","prebuild":"rimraf \"*.d.ts\"","build":"tsc","test-api":"node test","test-coverage":"c8 --check-coverage --branches 100 --functions 100 --lines 100 --statements 100 --reporter lcov node test.js","test":"npm run format && npm run build && npm run test-coverage"},"prettier":{"tabWidth":2,"useTabs":false,"singleQuote":true,"bracketSpacing":false,"semi":false,"trailingComma":"none"},"xo":{"prettier":true,"esnext":false,"ignores":["state-toggle.js"]},"remarkConfig":{"plugins":["preset-wooorm"]},"gitHead":"75658e7b1398d96e4e9a6628500b4bd4f54d4db0","homepage":"https://github.com/wooorm/state-toggle#readme","_id":"state-toggle@2.0.1","_nodeVersion":"15.11.0","_npmVersion":"7.6.1","dist":{"shasum":"b708973c60cad711616b8e7cf89aca2010acea0d","size":2581,"noattachment":false,"key":"/state-toggle/-/state-toggle-2.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/state-toggle/download/state-toggle-2.0.1.tgz"},"_npmUser":{"name":"wooorm","email":"tituswormer@gmail.com"},"directories":{},"maintainers":[{"name":"wooorm","email":"tituswormer@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/state-toggle_2.0.1_1615190395923_0.5438650460218903"},"_hasShrinkwrap":false,"publish_time":1615190396118,"_cnpm_publish_time":1615190396118},"2.0.0":{"name":"state-toggle","version":"2.0.0","description":"Enter/exit a state","license":"MIT","keywords":["enter","exit","state"],"repository":{"type":"git","url":"git+https://github.com/wooorm/state-toggle.git"},"bugs":{"url":"https://github.com/wooorm/state-toggle/issues"},"funding":{"type":"github","url":"https://github.com/sponsors/wooorm"},"author":{"name":"Titus Wormer","email":"tituswormer@gmail.com","url":"https://wooorm.com"},"contributors":[{"name":"Titus Wormer","email":"tituswormer@gmail.com","url":"https://wooorm.com"}],"sideEffects":false,"type":"module","main":"index.js","types":"index.d.ts","devDependencies":{"c8":"^7.0.0","prettier":"^2.0.0","remark-cli":"^9.0.0","remark-preset-wooorm":"^8.0.0","rimraf":"^3.0.0","tape":"^5.0.0","typescript":"^4.0.0","xo":"^0.38.0"},"scripts":{"prepublishOnly":"npm run build","format":"remark . -qfo && prettier . -w --loglevel warn && xo --fix","prebuild":"rimraf \"*.d.ts\"","build":"tsc","test-api":"node test","test-coverage":"c8 --check-coverage --branches 100 --functions 100 --lines 100 --statements 100 --reporter lcov node test.js","test":"npm run format && npm run build && npm run test-coverage"},"prettier":{"tabWidth":2,"useTabs":false,"singleQuote":true,"bracketSpacing":false,"semi":false,"trailingComma":"none"},"xo":{"prettier":true,"esnext":false,"ignores":["state-toggle.js"]},"remarkConfig":{"plugins":["preset-wooorm"]},"gitHead":"e9c8b2be36d5c4c424cc8ff62c879a086d73a0b5","homepage":"https://github.com/wooorm/state-toggle#readme","_id":"state-toggle@2.0.0","_nodeVersion":"15.11.0","_npmVersion":"7.6.1","dist":{"shasum":"98716780fe8b455900d29d682ff441fd4630d924","size":2556,"noattachment":false,"key":"/state-toggle/-/state-toggle-2.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/state-toggle/download/state-toggle-2.0.0.tgz"},"_npmUser":{"name":"wooorm","email":"tituswormer@gmail.com"},"directories":{},"maintainers":[{"name":"wooorm","email":"tituswormer@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/state-toggle_2.0.0_1615147256021_0.27330871223445974"},"_hasShrinkwrap":false,"publish_time":1615147256223,"_cnpm_publish_time":1615147256223},"1.0.3":{"name":"state-toggle","version":"1.0.3","description":"Enter/exit a state","license":"MIT","keywords":["enter","exit","state"],"repository":{"type":"git","url":"git+https://github.com/wooorm/state-toggle.git"},"bugs":{"url":"https://github.com/wooorm/state-toggle/issues"},"funding":{"type":"github","url":"https://github.com/sponsors/wooorm"},"author":{"name":"Titus Wormer","email":"tituswormer@gmail.com","url":"https://wooorm.com"},"contributors":[{"name":"Titus Wormer","email":"tituswormer@gmail.com","url":"https://wooorm.com"}],"dependencies":{},"devDependencies":{"browserify":"^16.0.0","nyc":"^15.0.0","prettier":"^1.0.0","remark-cli":"^7.0.0","remark-preset-wooorm":"^6.0.0","tape":"^4.0.0","tinyify":"^2.0.0","xo":"^0.25.0"},"scripts":{"format":"remark . -qfo && prettier --write \"**/*.js\" && xo --fix","build-bundle":"browserify . -s stateToggle -o state-toggle.js","build-mangle":"browserify . -s stateToggle -p tinyify -o state-toggle.min.js","build":"npm run build-bundle && npm run build-mangle","test-api":"node test","test-coverage":"nyc --reporter lcov tape test.js","test":"npm run format && npm run build && npm run test-coverage"},"prettier":{"tabWidth":2,"useTabs":false,"singleQuote":true,"bracketSpacing":false,"semi":false,"trailingComma":"none"},"xo":{"prettier":true,"esnext":false,"ignores":["state-toggle.js"]},"remarkConfig":{"plugins":["preset-wooorm"]},"nyc":{"check-coverage":true,"lines":100,"functions":100,"branches":100},"gitHead":"c0f63ed146ecc0fa8dea34a7ccfea013a753d470","homepage":"https://github.com/wooorm/state-toggle#readme","_id":"state-toggle@1.0.3","_nodeVersion":"13.0.1","_npmVersion":"6.13.6","dist":{"shasum":"e123b16a88e143139b09c6852221bc9815917dfe","size":2404,"noattachment":false,"key":"/state-toggle/-/state-toggle-1.0.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/state-toggle/download/state-toggle-1.0.3.tgz"},"maintainers":[{"name":"wooorm","email":"tituswormer@gmail.com"}],"_npmUser":{"name":"wooorm","email":"tituswormer@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/state-toggle_1.0.3_1580043001144_0.6540264158691256"},"_hasShrinkwrap":false,"publish_time":1580043001275,"_cnpm_publish_time":1580043001275},"1.0.2":{"name":"state-toggle","version":"1.0.2","description":"Enter/exit a state","license":"MIT","keywords":["enter","exit","state"],"repository":{"type":"git","url":"git+https://github.com/wooorm/state-toggle.git"},"bugs":{"url":"https://github.com/wooorm/state-toggle/issues"},"author":{"name":"Titus Wormer","email":"tituswormer@gmail.com","url":"https://wooorm.com"},"contributors":[{"name":"Titus Wormer","email":"tituswormer@gmail.com","url":"https://wooorm.com"}],"dependencies":{},"devDependencies":{"browserify":"^16.0.0","nyc":"^14.0.0","prettier":"^1.12.1","remark-cli":"^6.0.0","remark-preset-wooorm":"^4.0.0","tape":"^4.0.0","tinyify":"^2.5.0","xo":"^0.24.0"},"scripts":{"format":"remark . -qfo && prettier --write \"**/*.js\" && xo --fix","build-bundle":"browserify . -s stateToggle -o state-toggle.js","build-mangle":"browserify . -s stateToggle -p tinyify -o state-toggle.min.js","build":"npm run build-bundle && npm run build-mangle","test-api":"node test","test-coverage":"nyc --reporter lcov tape test.js","test":"npm run format && npm run build && npm run test-coverage"},"prettier":{"tabWidth":2,"useTabs":false,"singleQuote":true,"bracketSpacing":false,"semi":false,"trailingComma":"none"},"xo":{"prettier":true,"esnext":false,"ignores":["state-toggle.js"]},"remarkConfig":{"plugins":["preset-wooorm"]},"nyc":{"check-coverage":true,"lines":100,"functions":100,"branches":100},"gitHead":"68cbd13f4a11433512b67d49da1e6aab9a7063cd","homepage":"https://github.com/wooorm/state-toggle#readme","_id":"state-toggle@1.0.2","_nodeVersion":"11.9.0","_npmVersion":"6.9.0","dist":{"shasum":"75e93a61944116b4959d665c8db2d243631d6ddc","size":2383,"noattachment":false,"key":"/state-toggle/-/state-toggle-1.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/state-toggle/download/state-toggle-1.0.2.tgz"},"maintainers":[{"name":"wooorm","email":"tituswormer@gmail.com"}],"_npmUser":{"name":"wooorm","email":"tituswormer@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/state-toggle_1.0.2_1557514258893_0.42832277529916163"},"_hasShrinkwrap":false,"publish_time":1557514259031,"_cnpm_publish_time":1557514259031},"1.0.1":{"name":"state-toggle","version":"1.0.1","description":"Enter/exit a state","license":"MIT","keywords":["enter","exit","state"],"repository":{"type":"git","url":"git+https://github.com/wooorm/state-toggle.git"},"bugs":{"url":"https://github.com/wooorm/state-toggle/issues"},"author":{"name":"Titus Wormer","email":"tituswormer@gmail.com","url":"http://wooorm.com"},"contributors":[{"name":"Titus Wormer","email":"tituswormer@gmail.com","url":"http://wooorm.com"}],"files":["index.js"],"dependencies":{},"devDependencies":{"browserify":"^16.0.0","esmangle":"^1.0.1","nyc":"^11.0.0","prettier":"^1.12.1","remark-cli":"^5.0.0","remark-preset-wooorm":"^4.0.0","tape":"^4.0.0","xo":"^0.20.0"},"scripts":{"format":"remark . -qfo && prettier --write '**/*.js' && xo --fix","build-bundle":"browserify index.js --bare -s stateToggle > state-toggle.js","build-mangle":"esmangle < state-toggle.js > state-toggle.min.js","build":"npm run build-bundle && npm run build-mangle","test-api":"node test","test-coverage":"nyc --reporter lcov tape test.js","test":"npm run format && npm run build && npm run test-coverage"},"prettier":{"tabWidth":2,"useTabs":false,"singleQuote":true,"bracketSpacing":false,"semi":false,"trailingComma":"none"},"xo":{"prettier":true,"esnext":false,"rules":{"no-var":"off","prefer-arrow-callback":"off"},"ignores":["state-toggle.js"]},"remarkConfig":{"plugins":["preset-wooorm"]},"nyc":{"check-coverage":true,"lines":100,"functions":100,"branches":100},"gitHead":"e2bd11fa6933ab61f4430348de6e7a49dbbd955f","homepage":"https://github.com/wooorm/state-toggle#readme","_id":"state-toggle@1.0.1","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"wooorm","email":"tituswormer@gmail.com"},"dist":{"shasum":"c3cb0974f40a6a0f8e905b96789eb41afa1cde3a","size":2353,"noattachment":false,"key":"/state-toggle/-/state-toggle-1.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/state-toggle/download/state-toggle-1.0.1.tgz"},"maintainers":[{"name":"wooorm","email":"tituswormer@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/state-toggle_1.0.1_1524303507525_0.06381157692483064"},"_hasShrinkwrap":false,"publish_time":1524303507596,"_cnpm_publish_time":1524303507596},"1.0.0":{"name":"state-toggle","version":"1.0.0","description":"Enter/exit a state","license":"MIT","keywords":["enter","exit","state"],"files":["index.js"],"repository":{"type":"git","url":"git+https://github.com/wooorm/state-toggle.git"},"bugs":{"url":"https://github.com/wooorm/state-toggle/issues"},"author":{"name":"Titus Wormer","email":"tituswormer@gmail.com","url":"http://wooorm.com"},"contributors":[{"name":"Titus Wormer","email":"tituswormer@gmail.com","url":"http://wooorm.com"}],"dependencies":{},"devDependencies":{"browserify":"^13.0.1","esmangle":"^1.0.1","nyc":"^7.0.0","remark-cli":"^1.0.0","remark-comment-config":"^4.0.0","remark-github":"^5.0.0","remark-lint":"^4.0.0","remark-validate-links":"^4.0.0","tape":"^4.0.0","xo":"^0.16.0"},"scripts":{"build-md":"remark . --quiet --frail","build-bundle":"browserify index.js --bare -s stateToggle > state-toggle.js","build-mangle":"esmangle < state-toggle.js > state-toggle.min.js","build":"npm run build-md && npm run build-bundle && npm run build-mangle","lint":"xo","test-api":"node test","test-coverage":"nyc --reporter lcov tape test.js","test":"npm run build && npm run lint && npm run test-coverage"},"xo":{"space":true,"ignores":["state-toggle.js","state-toggle.min.js"]},"nyc":{"check-coverage":true,"lines":100,"functions":100,"branches":100},"remarkConfig":{"output":true,"plugins":["comment-config","github","lint","validate-links"],"settings":{"bullet":"*"}},"gitHead":"163084dc7f5bad51a6fee1e1347791773a528020","homepage":"https://github.com/wooorm/state-toggle#readme","_id":"state-toggle@1.0.0","_shasum":"d20f9a616bb4f0c3b98b91922d25b640aa2bc425","_from":".","_npmVersion":"3.3.6","_nodeVersion":"5.0.0","_npmUser":{"name":"wooorm","email":"tituswormer@gmail.com"},"dist":{"shasum":"d20f9a616bb4f0c3b98b91922d25b640aa2bc425","size":2586,"noattachment":false,"key":"/state-toggle/-/state-toggle-1.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/state-toggle/download/state-toggle-1.0.0.tgz"},"maintainers":[{"name":"wooorm","email":"tituswormer@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/state-toggle-1.0.0.tgz_1468678180265_0.15109136258251965"},"directories":{},"publish_time":1468678182564,"_cnpm_publish_time":1468678182564,"_hasShrinkwrap":false}},"readme":"# state-toggle\n\n[![Build][build-badge]][build]\n[![Coverage][coverage-badge]][coverage]\n[![Downloads][downloads-badge]][downloads]\n[![Size][size-badge]][size]\n\nEnter/exit a state.\n\n## Install\n\n[npm][]:\n\n```sh\nnpm install state-toggle\n```\n\n## Use\n\n```js\nimport {stateToggle} from 'state-toggle'\n\nvar ctx = {on: false}\nvar enter = stateToggle('on', ctx.on, ctx)\nvar exit\n\n// Entering:\nexit = enter()\nconsole.log(ctx.on) // => true\n\n// Exiting:\nexit()\nconsole.log(ctx.on) // => false\n```\n\n## API\n\n`state-toggle` exports the following identifier: `stateToggle`.\nThere is no default export.\n\n### `toggle(key, initial[, ctx])`\n\nCreate a toggle, which when entering toggles `key` on `ctx` (or `this`, if `ctx`\nis not given) to `!initial`, and when exiting, sets `key` on the context back to\nthe value it had before entering.\n\n###### Returns\n\n`Function` — [`enter`][enter].\n\n### `enter()`\n\nEnter the state.\n\n###### Context\n\nIf no `ctx` was given to `toggle`, the context object (`this`) of `enter()` is\nused to toggle.\n\n###### Returns\n\n`Function` — [`exit`][exit].\n\n### `exit()`\n\nExit the state, reverting `key` to the value it had before entering.\n\n## License\n\n[MIT][license] © [Titus Wormer][author]\n\n<!-- Definitions -->\n\n[build-badge]: https://github.com/wooorm/state-toggle/workflows/main/badge.svg\n\n[build]: https://github.com/wooorm/state-toggle/actions\n\n[coverage-badge]: https://img.shields.io/codecov/c/github/wooorm/state-toggle.svg\n\n[coverage]: https://codecov.io/github/wooorm/state-toggle\n\n[downloads-badge]: https://img.shields.io/npm/dm/state-toggle.svg\n\n[downloads]: https://www.npmjs.com/package/state-toggle\n\n[size-badge]: https://img.shields.io/bundlephobia/minzip/state-toggle.svg\n\n[size]: https://bundlephobia.com/result?p=state-toggle\n\n[npm]: https://docs.npmjs.com/cli/install\n\n[license]: license\n\n[author]: https://wooorm.com\n\n[enter]: #enter\n\n[exit]: #exit\n","_attachments":{},"homepage":"https://github.com/wooorm/state-toggle#readme","bugs":{"url":"https://github.com/wooorm/state-toggle/issues"},"license":"MIT"}