@cheesebit/logical

Provides a toolset to perform logical operations.

Usage no npm install needed!

<script type="module">
  import cheesebitLogical from 'https://cdn.skypack.dev/@cheesebit/logical';
</script>

README

@cheesebit/logical

Coverage Status npm package

I have always been fascinated by the simplicity of logical operations and how you can express complex logical structures using it.

That's why I wrote this library, to provides a toolset to perform and chain logical operations.

It follows Javascript's default truthy and falsy definitions.

Instalation

You can add this hook as a dependency by running npm install @cheesebit/logical or yarn add @cheesebit/logical.

Supported operations

AND

  • Accepts multiple parameters. Evaluation occurs from left to right.
  import { and } from '@cheesebit/logical';
  
  and(true, true, true); // true
  and(true, false); // false
A B Output
true true true
true false false
false true false
false false false

OR

  • Accepts multiple parameters. Evaluation occurs from left to right.
  import { or } from '@cheesebit/logical';
  
  or(false, false, true); // true
  or(false, false); // false
A B Output
true true true
true false true
false true true
false false false

XOR

  • Accepts two parameters.
  import { xor } from '@cheesebit/logical';
  
  xor(true, false); // true
  xor(false, false); // false
A B Output
true true false
true false true
false true true
false false false

NOT

  • Accepts one parameter.
  import { not } from '@cheesebit/logical';
  
  xor(true, false); // true
  xor(false, false); // false
A B Output
true true true
true false true
false true true
false false false

NAND

  • Accepts multiple parameters. Evaluation occurs from left to right.
  import { nand } from '@cheesebit/logical';
  
  nand(true, true, true); // true
  nand(true, false); // false
A B Output
true true false
true false true
false true true
false false true

NOR

  • Accepts multiple parameters. Evaluation occurs from left to right.
  import { nor } from '@cheesebit/logical';
  
  nor(true, true, true); // true
  nor(true, false); // false
A B Output
true true false
true false false
false true false
false false true

XNOR

  • Accepts two parameters.
  import { xnor } from '@cheesebit/logical';
  
  xnor(true, false); // true
  xnor(false, false); // false
A B Output
true true true
true false false
false true false
false false true

Usage guide

You can also chain operations using default export logical.

First you need to call it with the appropriate initial value (which will depend on the operations you will perform).

When you are done chaining operations, you can call value() to get the result.

  import logical from '@cheesebit/logical';
  
  console.log(logical(true).value()); // true
  console.log(logical(false).value()) // false
  
  console.log(logical(true).xor(false).value()) // true