tee-cup
v1.0.0-alpha.1
Published
Template Expression Evaluator
Downloads
22
Maintainers
Readme
Tee-Cup - Template Expression Evaluator
Overview
A small utility library for evaluating string template expressions from a context.
TeeCup comes with two built-in evaluator types (but additional ones can also be provided):
- $ - extracts a value from a provided context. Uses JEXL behind the scenes - https://github.com/TomFrost/jexl
- = - evaluates a Javascript expression using new Function()
Installation
npm install tee-cup
Usage
import { compile, evaluate } from 'tee-cup';
const compiled = compile('foo ${bar}');
const result = evaluate(compiled, { bar: 'baz' });
console.log(result); // 'foo baz';
Typescript
tee-cup is written in typescript, so up-to-date types are provided with the package.
Examples
evaluate(compile('hello ${a}.'), { a: 'world' });
// "hello world"
evaluate(compile('one plus two is ={1 + 2}'), {})
// "one plus two is 3"
evaluate(compile('= ${a} + ${b}'), { a: 1, b: 2 });
// 3
evaluate(compile('${rows[${index}]})', { 'rows': ['a', 'b'], index: 1 });
// "b"
For more examples, please see the tests!
Expression expansion:
${abc}
- Includes everything within the brackets
= 1 + 2
- Eval expands to include everything after the "=" symbol (no brackets necessary). This mode is only available for "=".
Escaping
Parts of an expression that should be interpreted literally can be escaped by enclosing in ""s.
"$5.0"
If you want to use double-quotes in your expression, then double-double-quotes should be used:
""Life is what happens when you're busy making other plans"" - John Lennon.
This can be a bit verbose sometimes, so it is recommended to use 's instead wherever possible.
e.g.
= 'Hello' + ' World'