# toex

> A javascript eexpression compiler based on angular-expressions.

Latest version **0.0.1** (published 2018-06-09) · MIT license · 0 weekly downloads

## Install

```sh
npm install toex
pnpm add toex
yarn add toex
bun add toex
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.0.1 |
| Published | 2018-06-09 |
| First published | 2018-06-09 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 1 |
| Unpacked size | 4.1 KB |
| Known vulnerabilities | 0 (+4 in 1 direct dependencies) |
| Install scripts | no |
| GitHub stars | 4 |
| Author | tangshuang |
| Maintainers | tangshuang |

## Links

- npm: https://www.npmjs.com/package/toex
- Repository: https://github.com/tangshuang/toex
- Homepage: https://github.com/tangshuang/toex#readme
- Issues: https://github.com/tangshuang/toex/issues
- npm.io page: https://npm.io/package/toex

## Dependencies (1)

- [angular-expressions](https://npm.io/package/angular-expressions.md) ^0.3.0

## Recent versions

- 0.0.1 (latest) — 2018-06-09

## README

# ToeX

A javascript eexpression compiler based on angular-expressions. It is a safe js string parser and executer.

## Install

```
npm install --save toex
```

## Usage

```
var ToeX = require('toex')
var toex = new ToeX($scope)
var normalExpressionResult = toex.parse('1 + 1') // 2
var scopeExpressionResult = toex.parse('key + 1') // if $scope.key = 1, result is 2, here key stands for $scope.key
```

## $scope

A $scope is a js object, if you not passed, it will use `global` and `window` as optional. i.e.

```
var toex = new ToeX() // global or window passed as default
```

What's a scope? It is an object which will be used as master in parsed string, for example:

```
toex.parse('members[0].name') // will get $scope.members[0].name
```

Variables in parsed string will be treated as a property (or deep property) of $scope.

## API

### filter(name, fn)

To use like `'book.name | toUpperCase'` in your code, you should use `filter` method to add a filter to your instance:

```
toex.filter('toUpperCase', function(value) {
  return value.toUpperCase()
})
```

.filter should be run before any parsing.

### parse(str)

To parse the string expression which depend on $scope.

@return the result of string expression.

### assign(key, value)

Quick way to set value on $scope:

```
toex.assign('members[1].name', 'tomy') // $scope.members[1].name = tomy, even though $scope.members[1] is undefined, this will work.
```

---
_Source: https://npm.io/package/toex · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
