# .css-1ydg16i{color:#000;-webkit-text-decoration:none;text-decoration:none;}UNPKG

 1 ```[Boolean] data type has two possible truth values to represent logic.
``` 2 ```📦 [Node.js](https://www.npmjs.com/package/extra-boolean), ``` 3 ```🌐 [Web](https://www.npmjs.com/package/extra-boolean.web), ``` 4 ```📜 [Files](https://unpkg.com/extra-boolean/), ``` 5 ```📰 [Docs](https://nodef.github.io/extra-boolean/). ``` 6 ```📘 [Wiki](https://github.com/nodef/extra-boolean/wiki/). ``` 7 ``` ``` 8 ```Here is my implementation of digital logic gates in software. That includes ``` 9 ```the basic gates [not], [and], [or], [xor]; their complements [nand], [nor], ``` 10 ```[xnor]; and 2 propositional logic (taught in discrete mathematics) gates ``` 11 ```[imply], [eq]; and their complements [nimply], [neq]. There is also a ``` 12 ```multiplexer, called [select], and a `true` counter, called [count]. [count] ``` 13 ```can help you make custom gates, such as an *alternate* concept of **xnor** ``` 14 ```which returns `true` only if all inputs are the same (standard [xnor] returns ``` 15 ````true` if even inputs are `true`). All of them can handle upto 8 inputs. ``` 16 ``` ``` 17 ```[parse] is influenced by ["boolean"] package, and is quite good at translating ``` 18 ````string` to `boolean`. It can also handle double negatives, eg. `not inactive`. ``` 19 ```You know the [and] of 2-inputs, but what of 1-input? What of 0? And what of ``` 20 ```the other gates? I answer them here. ``` 21 ``` ``` 22 ```This package is available in *Node.js* and *Web* formats. The web format ``` 23 ```is exposed as `extra_boolean` standalone variable and can be loaded from ``` 24 ```[jsDelivr CDN]. ``` 25 ``` ``` 26 ```> Stability: [Experimental](https://www.youtube.com/watch?v=L1j93RnIxEo). ``` 27 ``` ``` 28 ```[jsDelivr CDN]: https://cdn.jsdelivr.net/npm/extra-boolean.web/index.js ``` 29 ``` ``` 30 ```
``` 31 ``` ``` 32 ``````javascript ``` 33 ```const boolean = require('extra-boolean'); ``` 34 ```// import * as boolean from "extra-boolean"; ``` 35 ```// import * as boolean from "https://unpkg.com/extra-boolean@1.8.0/index.mjs"; (deno) ``` 36 ``` ``` 37 ```boolean.parse('1'); ``` 38 ```boolean.parse('not off'); ``` 39 ```boolean.parse('truthy'); ``` 40 ```// true ``` 41 ``` ``` 42 ```boolean.parse('not true'); ``` 43 ```boolean.parse('inactive'); ``` 44 ```boolean.parse('disabled'); ``` 45 ```// false ``` 46 ``` ``` 47 ```boolean.imply(true, false); ``` 48 ```// false ``` 49 ``` ``` 50 ```boolean.eq(false, false); ``` 51 ```// true ``` 52 ``` ``` 53 ```boolean.xor(true, true, true); ``` 54 ```// true ``` 55 ``` ``` 56 ```boolean.select(1, true, false, true); ``` 57 ```// false ^ ``` 58 ``` ``` 59 ```boolean.count(true, false, true); ``` 60 ```// 2 ^ ^ ``` 61 `````` ``` 62 ``` ``` 63 ```
``` 64 ```
``` 65 ``` ``` 66 ``` ``` 67 ```## Index ``` 68 ``` ``` 69 ```| Property | Description | ``` 70 ```| ---- | ---- | ``` 71 ```| [is] | Check if value is boolean. | ``` 72 ```| [parse] | Convert string to boolean. | ``` 73 ```| [not] | Check if value is false. | ``` 74 ```| [imply] | Check if antecedent ⇒ consequent (a ⇒ b). | ``` 75 ```| [nimply] | Check if antecedent ⇏ consequent (a ⇏ b). | ``` 76 ```| [eq] | Check if antecedent ⇔ consequent (a ⇔ b). | ``` 77 ```| [neq] | Check if antecedent ⇎ consequent (a ⇎ b). | ``` 78 ```| [imp] | Check if antecedent ⇒ consequent (a ⇒ b). | ``` 79 ```| [eqv] | Check if antecedent ⇔ consequent (a ⇔ b). | ``` 80 ```| [and] | Check if all values are true. | ``` 81 ```| [nand] | Check if any value is false. | ``` 82 ```| [or] | Check if any value is true. | ``` 83 ```| [nor] | Check if all values are false. | ``` 84 ```| [xor] | Check if odd number of values are true. | ``` 85 ```| [xnor] | Check if even number of values are true. | ``` 86 ```| [count] | Count number of true values. | ``` 87 ```| [select] | Check if ith value is true. | ``` 88 ``` ``` 89 ```
``` 90 ```
``` 91 ``` ``` 92 ```[![](https://img.youtube.com/vi/6mMK6iSZsAs/maxresdefault.jpg)](https://www.youtube.com/watch?v=6mMK6iSZsAs) ``` 93 ``` ``` 94 ```[![](https://coveralls.io/repos/github/nodef/extra-boolean/badge.svg?branch=master)](https://coveralls.io/github/nodef/extra-boolean?branch=master) ``` 95 ``` ``` 96 ```[Boolean]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean ``` 97 ```["boolean"]: https://www.npmjs.com/package/boolean ``` 98 ```[not]: https://nodef.github.io/extra-boolean/modules.html#not ``` 99 ```[and]: https://nodef.github.io/extra-boolean/modules.html#and ``` 100 ```[or]: https://nodef.github.io/extra-boolean/modules.html#or ``` 101 ```[xor]: https://nodef.github.io/extra-boolean/modules.html#xor ``` 102 ```[nand]: https://nodef.github.io/extra-boolean/modules.html#nand ``` 103 ```[nor]: https://nodef.github.io/extra-boolean/modules.html#nor ``` 104 ```[xnor]: https://nodef.github.io/extra-boolean/modules.html#xnor ``` 105 ```[imply]: https://nodef.github.io/extra-boolean/modules.html#imply ``` 106 ```[eq]: https://nodef.github.io/extra-boolean/modules.html#eq ``` 107 ```[nimply]: https://nodef.github.io/extra-boolean/modules.html#nimply ``` 108 ```[neq]: https://nodef.github.io/extra-boolean/modules.html#neq ``` 109 ```[select]: https://nodef.github.io/extra-boolean/modules.html#select ``` 110 ```[count]: https://nodef.github.io/extra-boolean/modules.html#count ``` 111 ```[parse]: https://nodef.github.io/extra-boolean/modules.html#parse ``` 112 ```[is]: https://nodef.github.io/extra-boolean/modules.html#is ``` 113 ```[imp]: https://nodef.github.io/extra-boolean/modules.html#imp ``` 114 ```[eqv]: https://nodef.github.io/extra-boolean/modules.html#eqv ```