diff --git a/types/math-expression-evaluator/index.d.ts b/types/math-expression-evaluator/index.d.ts new file mode 100644 index 00000000000000..a2e6177e52dee4 --- /dev/null +++ b/types/math-expression-evaluator/index.d.ts @@ -0,0 +1,24 @@ +// Type definitions for math-expression-evaluator 1.2 +// Project: https://github.com/bugwheels94/math-expression-evaluator +// Definitions by: Adam Zerella +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +interface Token { + token: string; + type: number; + value?: string|((a: number, b?: number) => number); + show: string; + preced?: number; +} + +declare class Mexp { + static lex(inp: string, tokens?: Token[]): Mexp; + formulaEval(): Mexp; + toPostfix(): Mexp; + postfixEval(pair?: object): number|string; + static eval(exp: string, tokens?: Token[], pair?: object): string; + static eval(exp: string, mexp?: object): string; + static addToken(tokens: Token[]): void; +} + +export = Mexp; diff --git a/types/math-expression-evaluator/math-expression-evaluator-tests.ts b/types/math-expression-evaluator/math-expression-evaluator-tests.ts new file mode 100644 index 00000000000000..5af0a9d761bc06 --- /dev/null +++ b/types/math-expression-evaluator/math-expression-evaluator-tests.ts @@ -0,0 +1,36 @@ +import Mexp = require("math-expression-evaluator"); + +Mexp.eval("5*.8"); +Mexp.eval("5*.8", { mexp: 5 }); +Mexp.eval("mexp(3)", [{ + type: 0, + show: "mexp(\",value:function(a){return 5*a;}", + preced: 11, + token: "mexp" +}]); +Mexp.eval("mexp(3)", [{ + type: 0, + token: "inverse", + show: "inverse", + value: (a => 1 / a) +}]); + +Mexp.addToken([{ + type: 3, + token: "git", + show: "git", + value: "git" +}]); +Mexp.eval("mexp*3", { mexp: 5 }); + +Mexp.addToken([{ + type: 0, + show: "mexp", + value: (a => 5 * a), + preced: 11, + token: "mexp" +}]); +Mexp.lex("mexp3").toPostfix().postfixEval(); + +Mexp.lex('mexp3').toPostfix(); +Mexp.lex('mexp3').toPostfix().formulaEval(); diff --git a/types/math-expression-evaluator/tsconfig.json b/types/math-expression-evaluator/tsconfig.json new file mode 100644 index 00000000000000..d0be1cd2c5577b --- /dev/null +++ b/types/math-expression-evaluator/tsconfig.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [ + + ], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "math-expression-evaluator-tests.ts" + ] +} diff --git a/types/math-expression-evaluator/tslint.json b/types/math-expression-evaluator/tslint.json new file mode 100644 index 00000000000000..e60c15844f1f82 --- /dev/null +++ b/types/math-expression-evaluator/tslint.json @@ -0,0 +1,3 @@ +{ + "extends": "dtslint/dt.json" +} \ No newline at end of file