This package has been deprecated

Author message:

Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

tinymath

1.2.1 • Public • Published

Tinymath

Apache License Build Status npm

Tinymath is a tiny arithmetic and function evaluator for simple numbers and arrays. Named properties can be accessed from an optional scope parameter and new functions can be added without rebuilding. Enjoy.

NOTE: Tinymath requires an ES6 or newer environment. You can use it with your build system of choice to run in older environments, or use the ES5 compatible version by importing tinymath/lib/tinymath.es5.js.

See Function Documentation for details on built-in functions available in Tinymath.

import { evaluate } from tinymath
 
// Simple math
evaluate('10 + 20'); // 30
evaluate('round(3.141592)') // 3
 
// Named properties
evaluate('foo + 20', {foo: 5}); // 25
 
// Arrays
evaluate('bar + 20', {bar: [1, 2, 3]}); // [21, 22, 23]
evaluate('bar + baz', {bar: [1, 2, 3], baz: [4, 5, 6]}); // [5, 7, 9]
evaluate('multiply(bar, baz) / 10', {bar: [1, 2, 3], baz: [4, 5, 6]}); // [0.4, 1, 1.8]

Adding Functions

Functions can be injected, and built in function overwritten, via the 3rd argument to evaluate:

import { evaluate } from tinymath
 
evaluate('plustwo(foo)', {foo: 5}, {
    plustwo: function(a) {
        return a + 2;
    }
}); // 7

Parsing

You can get to the parsed AST by importing parse

import { parse } from tinymath
 
parse('1 + random()')
/*
{
   "name": "add",
   "args": [
      1,
      {
         "name": "random",
         "args": []
      }
   ]
}
*/

Notes

  • Floating point operations have the normal Javascript limitations

Readme

Keywords

none

Package Sidebar

Install

npm i tinymath

Weekly Downloads

6,944

Version

1.2.1

License

Apache-2.0

Unpacked Size

706 kB

Total Files

12

Last publish

Collaborators

  • cqliu1
  • rashidkpc
  • w33ble