
Security News
The Hidden Blast Radius of the Axios Compromise
The Axios compromise shows how time-dependent dependency resolution makes exposure harder to detect and contain.
@bygdle/mathparserjs
Advanced tools
Un intérprete de comandos (operaciones aritméticas, funciones y constantes) escritos dentro de cadenas de texto.
Puede encontrar un programa de ejemplo en /src/test.ts.
El intérprete soporta las siguientes expresiones:
1
1.003
-45.23
2e5
10e-13
+ - * / % ^) entre números.
1.65+0.0013
1/2e5
-5^2
(-5)^2
6/2*(2+1)
(1+(3*2-1)^0.5)/2
x^2 - y
e^2
pi/4 + pi/8
1-cos(pi)^2
sqrt(25)/abs(-5)
Instale el programa a través de npm:
npm install @bygdle/mathparserjs
Si utiliza TypeScript, importe el módulo de la siguiente forma:
import {MathParser} from "@bygdle/mathparserjs";
Si utiliza JavaScript nativo, importe el módulo de la siguiente forma:
const MathParser = require("@bygdle/mathparserjs").MathParser;
Si utiliza el script del lado del cliente, importe el archivo
/front/MathParser.js, como se muestra a continuación:
<script type="text/javascript" src="MathParser.js"></script>
se creará automáticamente el objeto global MathParser. Puede encontrar
un programa de ejemplo en /front/test.html.
Parser(list)MathParser.Parser(list);
Parámetros:
list: Un objeto con las constantes/funciones que debe evaluar el
intérprete, y sus respectivos valores/callbacks.Ejemplo
const parser = new MathParser.Parser({
pi: 3.141592,
sin: x => {
return Math.sin(x);
},
cos: x => {
return Math.cos(x);
}
});
set(str: string)Establece la cadena que el intérprete va a evaluar.
Parámetros:
str: La cadena de texto a establecer.Devuelve: Parser
La instancia de Parser que ejecutó el método.
Ejemplo:
parser.set("4 * (2+ 3)");
let r = parser.execute();
console.log(r); // Imprime 20.
//otra forma
let r = parser.set("1 + 1/2 + 1/4").execute();
console.log(r); // Imprime 1.75
execute([str: string])Evalúa los comandos de la cadena de texto dada y devuelve el valor final.
Si no se especifica el parámetro str, se evluará por defecto la cadena
establecida por el método set().
Parámetros:
str: La cadena de texto a interpretar.Devuelve: number
El resultado de la evaluación.
Ejemplo:
let r = parser.execute("cos(pi) - 6/2*(2+1)");
console.log(r); // Imprime -10
repeat(n: number, callback: Function)Evalúa una cantidad determinada de veces la cadena de texto
establecida por set(), y después de cada evaluación ejecuta
el callback proporcionado.
Parámetros:
n: el número de veces que se va a evaluar la cadena.callback: La función que se ejecutará después de cada iteración.
La llamada tiene la siguiente forma:
callback(r: number, i: number)
Donde r es el resultado de la última evaluación realizada,
e i es el número de la evaluación actual, desde 1 hasta n.Devuelve: Parser
La instancia de Parser que ejecutó el método.
Ejemplo:
let x = 0;
const parser = new MathParser.Parser({x: 0})
.set("x^2")
.repeat(5, function(r: number) {
console.log(r);
this.constant("x", ++x);
});
/*
Imprime:
0
1
4
9
16
*/
constant(name: string, value: number)Establece el nuevo valor de una constante del intérprete. Si la constante no existe, ésta se creará.
Parámetros:
name: El nombre de la constante a editar/crear.value: El valor numérico de la constante a editar/crear.Devuelve: Parser
La instancia de Parser que ejecutó el método.
Ejemplo:
const parser = new MathParser.Parser({x: 1, y: 2});
console.log(parser.execute("x + y")) // imprime 3.
parser
.constant("x", 2)
.constant("y", 3)
.constant("z", 4);
console.log(parser.execute("x + y + z")) // imprime 9.
then(callback: Function)Establece una función que se ejecutará después de cada evaluación
exitosa producida por execute() o repeat().
Parámetros:
callback: La función que se ejecutará una vez evaluada una cadena.
La llamada tiene la siguiente forma:
callback(r: number)
Donde r es el resultado de la evaluación.
Si no se pasa nada como parámetro, no se ejecutará nada y
la única forma de obtener el resultado de una evaluación
será capturando el valor que devuelve directamente execute().
Devuelve: Parser
La instancia de Parser que ejecutó el método.
Ejemplo:
const parser = new MathParser.Parser({x: 2, y: 5})
.then((r: number) => {
console.log(`Resultado: r=${r}`);
})
.execute("y/x + 1");
/*
Resultado: r=3.5
*/
catch(callback: Function)Establece una función que se ejecutará cuando el intérprete encuentre algún error en la evaluación.
Parámetros:
callback: La función que se ejecutará cuando suceda algún
error. La llamada tiene la siguiente forma:
callback(e: Error)
Donde e es el error que se ha producido.
Si no se pasa ninguna función como parámetro, no se ejecutará nada cuando ocurra un error y por tanto no habrá forma de capturar la información correspondiente.
Devuelve: Parser
La instancia de Parser que ejecutó el método.
Ejemplo:
const parser = new MathParser.Parser({x: 1, y: 2})
.catch((e: Error) => {
console.log(`ERROR! ${e.message}`);
});
parser.execute("x + y"); // devuelve 3.
parser.execute("x + z"); // Imprime un mensaje de error.
FAQs
Un intérprete de comandos escritos dentro de cadenas de texto.
The npm package @bygdle/mathparserjs receives a total of 13 weekly downloads. As such, @bygdle/mathparserjs popularity was classified as not popular.
We found that @bygdle/mathparserjs demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
The Axios compromise shows how time-dependent dependency resolution makes exposure harder to detect and contain.

Research
A supply chain attack on Axios introduced a malicious dependency, plain-crypto-js@4.2.1, published minutes earlier and absent from the project’s GitHub releases.

Research
Malicious versions of the Telnyx Python SDK on PyPI delivered credential-stealing malware via a multi-stage supply chain attack.