@@ -16,30 +16,30 @@ const context = {
1616}
1717
1818// Template strings with interpolation
19- jexl .evalSync (' `Hello ${name.first} ${name.last}`' , context)
19+ jexl .eval (' `Hello ${name.first} ${name.last}`' , context)
2020// "Hello Sterling Archer"
2121
22- jexl .evalSync (' `Age in 5 years: ${age + 5}`' , context)
22+ jexl .eval (' `Age in 5 years: ${age + 5}`' , context)
2323// "Age in 5 years: 41"
2424
2525// Filter arrays
26- jexl .evalSync (' assoc[.first == "Lana"].last' , context)
26+ jexl .eval (' assoc[.first == "Lana"].last' , context)
2727// "Kane"
2828
2929// Math operations
30- jexl .evalSync (' age * (3 - 1)' , context)
30+ jexl .eval (' age * (3 - 1)' , context)
3131// 72
3232
3333// String concatenation
34- jexl .evalSync (' name.first + " " + name.last' , context)
34+ jexl .eval (' name.first + " " + name.last' , context)
3535// "Sterling Archer"
3636
3737// Conditional logic
38- jexl .evalSync (' age > 62 ? "retired" : "working"' , context)
38+ jexl .eval (' age > 62 ? "retired" : "working"' , context)
3939// "working"
4040
4141// Array indexes
42- jexl .evalSync (' assoc[1].first' , context)
42+ jexl .eval (' assoc[1].first' , context)
4343// "Cyril"
4444```
4545
@@ -63,17 +63,17 @@ Template strings use backticks and support expression interpolation with `${}`:
6363``` javascript
6464const context = { name: ' World' , price: 10 , qty: 3 }
6565
66- jexl .evalSync (' `Hello ${name}!`' , context)
66+ jexl .eval (' `Hello ${name}!`' , context)
6767// "Hello World!"
6868
69- jexl .evalSync (' `Total: $${price * qty}`' , context)
69+ jexl .eval (' `Total: $${price * qty}`' , context)
7070// "Total: $30"
7171
7272// Escape backticks and dollar signs with backslash
73- jexl .evalSync (' `Code: \\ `example\\ ``' )
73+ jexl .eval (' `Code: \\ `example\\ ``' )
7474// "Code: `example`"
7575
76- jexl .evalSync (' `Price: \\ $100`' )
76+ jexl .eval (' `Price: \\ $100`' )
7777// "Price: $100"
7878```
7979
@@ -103,10 +103,10 @@ const context = {
103103 lastEx: 2
104104}
105105
106- jexl .evalSync (' name.first' , context) // "Malory"
107- jexl .evalSync (' name["last"]' , context) // "Archer"
108- jexl .evalSync (' exes[2]' , context) // "Burt"
109- jexl .evalSync (' exes[lastEx - 1]' , context) // "Len"
106+ jexl .eval (' name.first' , context) // "Malory"
107+ jexl .eval (' name["last"]' , context) // "Archer"
108+ jexl .eval (' exes[2]' , context) // "Burt"
109+ jexl .eval (' exes[lastEx - 1]' , context) // "Len"
110110```
111111
112112### Filtering Collections
@@ -123,13 +123,13 @@ const context = {
123123 ]
124124}
125125
126- jexl .evalSync (' employees[.first == "Sterling"]' , context)
126+ jexl .eval (' employees[.first == "Sterling"]' , context)
127127// [{ first: 'Sterling', last: 'Archer', age: 36 }]
128128
129- jexl .evalSync (' employees[.age >= 30 && .age < 40]' , context)
129+ jexl .eval (' employees[.age >= 30 && .age < 40]' , context)
130130// [{ first: 'Sterling', ... }, { first: 'Lana', ... }]
131131
132- jexl .evalSync (' employees[.last == "Kane"].first' , context)
132+ jexl .eval (' employees[.last == "Kane"].first' , context)
133133// "Lana"
134134```
135135
@@ -141,10 +141,10 @@ Apply transforms to values using the pipe operator:
141141jexl .addTransform (' upper' , (val ) => val .toUpperCase ())
142142jexl .addTransform (' split' , (val , char ) => val .split (char))
143143
144- jexl .evalSync (' "hello"|upper' )
144+ jexl .eval (' "hello"|upper' )
145145// "HELLO"
146146
147- jexl .evalSync (' "firstName lastName"|split(" ")[0]' )
147+ jexl .eval (' "firstName lastName"|split(" ")[0]' )
148148// "firstName"
149149```
150150
@@ -156,10 +156,10 @@ Call functions in expressions:
156156jexl .addFunction (' min' , Math .min )
157157jexl .addFunction (' max' , Math .max )
158158
159- jexl .evalSync (' min(5, 2, 9)' )
159+ jexl .eval (' min(5, 2, 9)' )
160160// 2
161161
162- jexl .evalSync (' max(temperature, threshold)' )
162+ jexl .eval (' max(temperature, threshold)' )
163163// evaluates with context
164164```
165165
@@ -168,10 +168,10 @@ jexl.evalSync('max(temperature, threshold)')
168168Separate multiple expressions with semicolons. The result is the value of the last expression:
169169
170170``` javascript
171- jexl .evalSync (' 5; 10; 15' )
171+ jexl .eval (' 5; 10; 15' )
172172// 15
173173
174- jexl .evalSync (' 1 + 1; 2 + 2; 3 + 3' )
174+ jexl .eval (' 1 + 1; 2 + 2; 3 + 3' )
175175// 6
176176```
177177
@@ -180,17 +180,17 @@ jexl.evalSync('1 + 1; 2 + 2; 3 + 3')
180180Assign values to variables using ` = ` (no ` let ` , ` var ` , or ` const ` needed). Assignments mutate the context and return the assigned value:
181181
182182``` javascript
183- jexl .evalSync (' x = 5' )
183+ jexl .eval (' x = 5' )
184184// 5
185185
186- jexl .evalSync (' x = 5; x * 2' )
186+ jexl .eval (' x = 5; x * 2' )
187187// 10
188188
189- jexl .evalSync (' x = 5; y = 10; x + y' )
189+ jexl .eval (' x = 5; y = 10; x + y' )
190190// 15
191191
192192const context = {}
193- jexl .evalSync (' x = 5; y = x * 2; y' , context)
193+ jexl .eval (' x = 5; y = x * 2; y' , context)
194194// 10
195195// context is now { x: 5, y: 10 }
196196```
@@ -200,15 +200,12 @@ jexl.evalSync('x = 5; y = x * 2; y', context)
200200``` javascript
201201import jexl from ' @jbrowse/jexl'
202202
203- // Synchronous evaluation
204- const result = jexl .evalSync (' expression' , context)
205-
206- // Asynchronous evaluation (supports async transforms/functions)
207- const result = await jexl .eval (' expression' , context)
203+ // Evaluate an expression
204+ const result = jexl .eval (' expression' , context)
208205
209206// Compile once, evaluate many times
210207const expr = jexl .compile (' name.first + " " + name.last' )
211- expr .evalSync ({ name: { first: ' John' , last: ' Doe' } })
208+ const result = expr .eval ({ name: { first: ' John' , last: ' Doe' } })
212209```
213210
214211## License
0 commit comments