Skip to content

SergeyPoluektov/formulator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Formulator

A library for calculating value by formula and object with operands values. Based on Reverse Polish Notation algorithm. Now supports +, -, *, /, sqrt, ^ and parenthesis.

Usage

Formulas items must be a splitting by space ( a + b )

Simple example

const formulator = require('formulator')

const values = {
  a: 5,
  b: 3,
  c: 2
}

const formula = '( a + b ) / ( a - c )'

const result = formulator({
  values: values,
  formula: formula
})

console.log(result) //2.6666666666666665

Example for pistonsky usecase

const formulator = require('formulator')

let dataObj = {
  bookings: 60,
  clicks: 5
}
let config = {
	BTR: 'bookings / clicks'
}

for (let metric in config) {
	dataObj[metric] = formulator({
		values: dataObj,
		formula: config[metric]
	})
}

console.log(dataObj.BTR) // 12

Really crazy example

const values = {
  a: 5,
  b: 3,
  c: 2,
  d: 4,
  e: 1
}

const formula = '( d ^ e + ( ( a - b ) + sqrt ( d ^ c + ( a + d ) ) ) ) / c'

const result = formulator({
  values: values,
  formula: formula
})

console.log(result) // 5.5

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published