James and GitHub
3492ff63f4
feat: static variable analysis ( #770 )
...
* feat: static variable analysis
* Accept any iterable from `children`, `arguments`, etc.
* Test analysis of standard tags
* Use `TagToken.tokenizer` instead of creating a new one
* Test analysis of netsted tags
* Group variables by their root value
* Test analysis of nested globals and locals
* Analyze included and rendered templates WIP
* Use existing tokenizer when constructing `Hash`
* Improve test coverage
* Analyze variables from `layout` and `block` tags
* Test analysis of Jekyll style includes
* Handle variables that start with a nested variable
* Async analysis
* Test non-standard tag end to end
* Implement convenience analysis methods on the `Liquid` class
* More analysis convenience methods
* Accept string or template array
* Draft static analysis docs
* Deduplicate variables names
* Fix isolated scope global variable map
* Coerce variables to strings instead of extending String
* Private map instead of extending Map
* Fix e2e test
* Tentatively implement analysis of aliased variables
* Fix nested variable segments array
* Update docs sidebar
2024-12-28 21:35:28 +08:00
Harttle
2af297f81a
fix: memoryLimit doesn't work in for tag, #776
2024-12-22 15:46:56 +08:00
Santi Albo and GitHub
11f013bf24
feat: allow drops in property access ( #769 )
2024-11-17 20:24:45 +08:00
Max Medve and GitHub
490ff4309c
fix: Allow lenientIf for multiple operands (issue #682 ) ( #683 )
...
* allow `lenientIf` for multiple operands
* update tests
2024-04-21 16:04:38 +08:00
Jun Yang
2b713b721d
feat: group_by/group_by_exp/find/find_exp from Jekyll, #443
2024-04-14 19:34:07 +08:00
Jun Yang and GitHub
660d9be55f
feat: more flexible squared property read expression, fixes #643 ( #646 )
...
* fix: more flexible squared property read expression, fixes #643
* fix: unecessary error wrapping in browser bundles
* style: update code style and types
* perf: use token.value when evalToken
2023-08-23 00:45:49 +08:00
Harttle and Jun Yang
e347e603d7
feat: precise line/col for tokenization Error, #613
2023-06-04 02:06:42 +08:00
Harttle and Harttle
3f21382d43
feat: support not operator, #575
2023-01-03 01:34:03 +08:00
Jun Yang
4e1a30a20c
refactor: _evalToken renamed to evalToken
...
BREAKING CHANGE: `evalToken` now returns a generator (LiquidJS async), which is different from `evalToken` in previous LiquidJS versions.
2022-11-27 14:04:02 +08:00
Jun Yang
92992689cd
refactor: Tag class support in registerTag()
2022-11-27 14:04:01 +08:00
Harttle and Harttle
bbf00f37bf
feat: promise in expression & nested property, #533 #276
2022-08-27 23:19:16 +08:00
Harttle and Harttle
e874b4060b
feat: export toValueSync & defaultOptions to evaluate expression, see #527
2022-08-15 01:53:48 +08:00
Harttle and Harttle
2f6d84befc
test: cases for async variables
2022-05-03 13:31:25 +08:00
Harttle and Harttle
95fc705b5d
chore: upgrade typescript
2021-12-11 20:23:09 +08:00
Harttle and harttle
9cfa43b8ae
fix: hardcoded '/' in normalized options.fs, fixes #412 , #408
...
Changes including:
- will not call fs.resolve when normalizing `fs`
- removed hardcoded `/`
- mandatory `fs.dirname` for relative reference
- mandatory `fs.sep`, defaults to '/'
2021-10-16 12:10:55 +08:00
harttle
8273c17dab
perf: parse filenames in parse() insteadof render()
2021-09-30 22:15:09 +08:00
harttle
2e66e8b02e
fix: lenientIf not working for the umd bundle, closes #313
2021-02-19 23:10:15 +08:00
harttle
2f059f6a25
feat: support filters in if/unless/case, see #287
2021-02-12 22:22:41 +08:00
Jason Etcovitch and Jun Yang
befc33c4eb
feat: create trie programmatically in options
2021-02-04 09:11:28 +08:00
Jason Etcovitch and Jun Yang
8734e2e6ce
feat: rename to defaultOperators and Operators
2021-02-04 09:11:28 +08:00
Jason Etcovitch and Jun Yang
75591cdbfc
feat: add operators option for custom operators
2021-02-04 09:11:28 +08:00
harttle
117673a725
style: make eslint check .ts files
2020-12-08 00:24:07 +08:00
sschuldenzucker and Jun Yang
d8f9091a12
add and use error classes for undefined variables
...
cleans up funky message-matching code in expression.ts for lenient.
2020-12-06 22:58:08 +08:00
sschuldenzucker and Jun Yang
ca18a579a1
Expression: minor type change & simplification
...
pre-fetching postfix simplifies code for 'lenient'
2020-12-06 22:58:08 +08:00
sschuldenzucker and Jun Yang
768fb79e32
Implement lenientIf option ( resolve #265 ; default off)
...
See description of the option in liquid-options.ts.
2020-12-06 22:58:08 +08:00
wyozi and Jun Yang
18a807ea2e
fix: braced property access
2020-10-09 21:18:40 +08:00
Amit Gupta and Jun Yang
02bfed1c57
Added jsTruthy flag to constuctor in order to enable JS style truthiness evaluation
2020-10-08 12:43:37 +08:00
harttle
d2d6a38235
perf: introduce AST to avoid reparse
2020-03-15 02:51:25 +08:00
harttle
f7ef9b61c1
refactor: remove src/render/value.ts
2020-03-14 19:04:18 +08:00
harttle
6ea6881f08
feat: with & for in render tag, closes #195
2020-03-04 07:08:54 +08:00
harttle
fc0cf6fe7b
fix: expression and string literal parser, #186
2020-02-08 03:15:55 +08:00
harttle
b82fa9ed2b
pref: remove await/async from internal async calls
2019-10-26 08:57:33 -05:00
harttle
7fb01ad69a
feat: renderSync, parseAndRenderSync and renderFileSync, see #48
2019-08-26 10:15:43 -05:00
harttle
76019e9e18
refactor: rewrite expression evaluation, fix #130
2019-08-26 10:15:43 -05:00