1.0.0-alpha.1 • Published 4 years ago

tee-cup v1.0.0-alpha.1

Weekly downloads
2
License
ISC
Repository
github
Last release
4 years ago

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'

1.0.0-alpha.1

4 years ago

1.0.0-alpha

5 years ago

2.0.0-alpha

5 years ago

0.1.6

6 years ago

0.1.5

6 years ago

0.1.4

6 years ago

0.1.3

7 years ago

0.1.2

7 years ago

0.1.1

7 years ago

0.1.0

7 years ago

0.0.11

7 years ago

0.0.10

7 years ago

0.0.9

7 years ago

0.0.8

7 years ago

0.0.7

7 years ago

0.0.6

7 years ago

0.0.5

7 years ago

0.0.4

7 years ago

0.0.3

7 years ago

0.0.2

7 years ago

0.0.1

7 years ago

1.0.4

7 years ago

1.0.3

7 years ago

1.0.2

7 years ago

1.0.1

7 years ago

1.0.0

7 years ago