mirror of
https://github.com/harttle/liquidjs.git
synced 2026-09-16 21:00:40 -07:00
feat: move filters/tags to instances, fixes #188
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
import { Token } from '../parser/token'
|
||||
import { ITemplate } from '../template/itemplate'
|
||||
import { Template } from '../template/template'
|
||||
import { TagToken } from './tag-token'
|
||||
|
||||
type ParseToken = ((token: Token, remainTokens: Token[]) => ITemplate)
|
||||
type ParseToken = ((token: Token, remainTokens: Token[]) => Template)
|
||||
|
||||
export class ParseStream {
|
||||
private tokens: Token[]
|
||||
@@ -14,11 +14,11 @@ export class ParseStream {
|
||||
this.tokens = tokens
|
||||
this.parseToken = parseToken
|
||||
}
|
||||
public on<T extends ITemplate | Token | undefined> (name: string, cb: (arg: T) => void): ParseStream {
|
||||
public on<T extends Template | Token | undefined> (name: string, cb: (arg: T) => void): ParseStream {
|
||||
this.handlers[name] = cb
|
||||
return this
|
||||
}
|
||||
private trigger <T extends Token | ITemplate> (event: string, arg?: T) {
|
||||
private trigger <T extends Token | Template> (event: string, arg?: T) {
|
||||
const h = this.handlers[event]
|
||||
return h ? (h(arg), true) : false
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ import { OutputToken } from './output-token'
|
||||
import { Tag } from '../template/tag/tag'
|
||||
import { Output } from '../template/output'
|
||||
import { HTML } from '../template/html'
|
||||
import { ITemplate } from '../template/itemplate'
|
||||
import { Template } from '../template/template'
|
||||
|
||||
export default class Parser {
|
||||
private liquid: Liquid
|
||||
@@ -17,7 +17,7 @@ export default class Parser {
|
||||
}
|
||||
public parse (tokens: Token[]) {
|
||||
let token
|
||||
const templates: ITemplate[] = []
|
||||
const templates: Template[] = []
|
||||
while ((token = tokens.shift())) {
|
||||
templates.push(this.parseToken(token, tokens))
|
||||
}
|
||||
@@ -29,7 +29,7 @@ export default class Parser {
|
||||
return new Tag(token, remainTokens, this.liquid)
|
||||
}
|
||||
if (OutputToken.is(token)) {
|
||||
return new Output(token as OutputToken, this.liquid.options.strictFilters)
|
||||
return new Output(token as OutputToken, this.liquid.filters)
|
||||
}
|
||||
return new HTML(token)
|
||||
} catch (e) {
|
||||
|
||||
Reference in New Issue
Block a user