UNPKG

mathsteps-experimental-fork

Version:

Step by step math solutions. Experimental Fork

49 lines (44 loc) 1.81 kB
'use strict'; Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); const index = require('../index.js'); const expressionEqualsAndNormalization = require('../newServices/expressionEqualsAndNormalization.js'); const myNodeToString = require('../newServices/nodeServices/myNodeToString.js'); const cleanString = require('../util/cleanString.js'); const equalityCache = require('../util/equalityCache.js'); const nextStepEqCache = new equalityCache.EqualityCache(); const ansStepCache = {}; function getAnswerFromStep(userStep) { userStep = cleanString.cleanString(userStep); for (const cachedStep of Object.keys(ansStepCache)) { if (expressionEqualsAndNormalization.areExpressionEqual(cachedStep, userStep, nextStepEqCache)) return ansStepCache[cachedStep]; } const eventualAnswer = index.default.simplifyExpression({ expressionAsText: userStep, isDebugMode: false, expressionCtx: void 0, getMistakes: false, getAllNextStepPossibilities: false // onStepCb: (step) => { // }, }); const strEventualAnswer = myNodeToString.myNodeToString(eventualAnswer); ansStepCache[userStep] = strEventualAnswer; return strEventualAnswer; } function getAnswerFromEquation(equation, variable = null) { const useThisVariable = variable || equation.match(/[a-z]/i)?.[0] || "x"; const result = index.default.solveEquation({ equationAsText: equation, unknownVariable: useThisVariable /// ** // * @param {{ equation: { getId: () => any; }; stepId: string; }} step // */ // onStepCb(step) { // console.log(`[ ${step.equation.getId()} ] ${step.stepId} | ${step.equation}`) // }, }); return result.getSolutionsAsText(); } exports.getAnswerFromEquation = getAnswerFromEquation; exports.getAnswerFromStep = getAnswerFromStep;