feat: use evalValue to parse & render expression, #527

This commit is contained in:
Harttle
2022-08-24 20:46:22 +08:00
committed by Harttle
parent 2089b9bb6c
commit 071368afe1
3 changed files with 40 additions and 9 deletions
+6 -5
View File
@@ -90,15 +90,16 @@ export class Liquid {
return this.renderToNodeStream(templates, scope, renderOptions)
}
public _evalValue (str: string, ctx: Context): IterableIterator<any> {
public _evalValue (str: string, scopeOrContext?: object | Context): IterableIterator<any> {
const value = new Value(str, this)
const ctx = scopeOrContext instanceof Context ? scopeOrContext : new Context(scopeOrContext, this.options)
return value.value(ctx, false)
}
public async evalValue (str: string, ctx: Context): Promise<any> {
return toPromise(this._evalValue(str, ctx))
public async evalValue (str: string, scopeOrContext?: object | Context): Promise<any> {
return toPromise(this._evalValue(str, scopeOrContext))
}
public evalValueSync (str: string, ctx: Context): any {
return toValueSync(this._evalValue(str, ctx))
public evalValueSync (str: string, scopeOrContext?: object | Context): any {
return toValueSync(this._evalValue(str, scopeOrContext))
}
public registerFilter (name: string, filter: FilterImplOptions) {