1.4.1 • Published 5 years ago

bool-expr-generator v1.4.1

Weekly downloads
3
License
ISC
Repository
github
Last release
5 years ago

bool-expr-generator

A simple generator of boolean expressions.

Installation

NPM

npm install --save bool-expr-generator

Usage

import BoolExpr from 'bool-expr-generator';
const boolGenerator = new BoolExpr();
let expr = boolGenerator.generate(); // 'true && false'

// You may pass an option object to the constructor
const boolGenerator = new BoolExpr({
	complexity: 3,
	operators: ["||", "&&", "^"],
	operatorsDisplayed: {"^": "XOR", "&&": "AND", "||": "OR"},
	logicalValues: [true, false, 0, 1],
	invertedValue: true,
});
let expr = boolGenerator.generate(); // 'false XOR 1 OR true'
// If cou customised the operatorsDisplayed option you can use the convert method to convert the expression into an evaluable one
console.log(boolGenerator.convert(expr)); // 'false ^ 1 || true'
// Update options:
boolGenerator.options({complexity: 4});
console.log(boolGenerator.generate()); // true XOR 1 AND !0 OR !0

// You can also use a nested expression with or without its own options
const boolGenerator = new BoolExpr({
	logicalValues: [true, false, BoolExpr.nestedExpr({complexity: 2, logicalValues: [0, 1]})], // Note that it is advised to specify the logicalValues
});
let expr = boolGenerator.generate(); // 'false && (0 || 1)'

Option object

KeyTypeDefaultExampleDescription
complexityinteger | Array<integer>23 | [2, 4]Length of the expression, if an array is supplied the complexity will be a random value of it
operatorsArray<string>['\|\|', '&&']['\|\|', '&&', '^']The logical operators to be used
operatorsDisplayedObject{}{'^': 'XOR'}How the operators will be displayed in the expresssion
logicalValuesArray[true, false][0, 1, true, false]The logical values that can be included into the expression
invertedValueboolean | floatfalsetrue | .3Whether to add the inverted logical values or probability to have an inverted value for each logical values
1.4.1

5 years ago

1.4.0

5 years ago

1.3.0

5 years ago

1.2.1

5 years ago

1.2.0

5 years ago

1.1.0

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago