fix: break/continue omitting output before them, #123

BREAKING CHANGE: remove default export, now should be used like import
{Liquid} from 'liquidjs'
This commit is contained in:
harttle
2019-08-26 10:15:43 -05:00
committed by Jun Yang
parent 854e12ba53
commit ae45c4622e
99 changed files with 373 additions and 407 deletions
+2 -2
View File
@@ -1,7 +1,7 @@
import Token from './token'
import { Token } from './token'
import { last } from '../util/underscore'
export default class DelimitedToken extends Token {
export class DelimitedToken extends Token {
public constructor (
raw: string,
value: string,
+2 -2
View File
@@ -1,6 +1,6 @@
import Token from './token'
import { Token } from './token'
export default class HTMLToken extends Token {
export class HTMLToken extends Token {
public constructor (str: string, input: string, line: number, col: number, file?: string) {
super(str, input, line, col, file)
this.type = 'html'
+3 -3
View File
@@ -1,8 +1,8 @@
import DelimitedToken from './delimited-token'
import Token from './token'
import { DelimitedToken } from './delimited-token'
import { Token } from './token'
import { NormalizedFullOptions } from '../liquid-options'
export default class OutputToken extends DelimitedToken {
export class OutputToken extends DelimitedToken {
public constructor (
raw: string,
value: string,
+4 -4
View File
@@ -1,10 +1,10 @@
import Token from '../parser/token'
import ITemplate from '../template/itemplate'
import TagToken from './tag-token'
import { Token } from '../parser/token'
import { ITemplate } from '../template/itemplate'
import { TagToken } from './tag-token'
type ParseToken = ((token: Token, remainTokens: Token[]) => ITemplate)
export default class ParseStream {
export class ParseStream {
private tokens: Token[]
private handlers: {[key: string]: (arg: any) => void} = {}
private stopRequested: boolean = false
+9 -9
View File
@@ -1,13 +1,13 @@
import { ParseError } from '../util/error'
import Liquid from '../liquid'
import ParseStream from './parse-stream'
import Token from './token'
import TagToken from './tag-token'
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 { Liquid } from '../liquid'
import { ParseStream } from './parse-stream'
import { Token } from './token'
import { TagToken } from './tag-token'
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'
export default class Parser {
private liquid: Liquid
+3 -3
View File
@@ -1,10 +1,10 @@
import DelimitedToken from './delimited-token'
import Token from './token'
import { DelimitedToken } from './delimited-token'
import { Token } from './token'
import { TokenizationError } from '../util/error'
import * as lexical from './lexical'
import { NormalizedFullOptions } from '../liquid-options'
export default class TagToken extends DelimitedToken {
export class TagToken extends DelimitedToken {
public name: string
public args: string
public constructor (
+1 -1
View File
@@ -1,4 +1,4 @@
export default class Token {
export class Token {
public trimLeft: boolean = false
public trimRight: boolean = false
public type: string = 'notset'
+6 -6
View File
@@ -1,14 +1,14 @@
import whiteSpaceCtrl from './whitespace-ctrl'
import HTMLToken from './html-token'
import TagToken from './tag-token'
import Token from './token'
import OutputToken from './output-token'
import { whiteSpaceCtrl } from './whitespace-ctrl'
import { HTMLToken } from './html-token'
import { TagToken } from './tag-token'
import { Token } from './token'
import { OutputToken } from './output-token'
import { TokenizationError } from '../util/error'
import { NormalizedFullOptions, applyDefault } from '../liquid-options'
enum ParseState { HTML, OUTPUT, TAG }
export default class Tokenizer {
export class Tokenizer {
private options: NormalizedFullOptions
public constructor (options?: NormalizedFullOptions) {
this.options = applyDefault(options)
+4 -4
View File
@@ -1,9 +1,9 @@
import Token from '../parser/token'
import TagToken from '../parser/tag-token'
import HTMLToken from '../parser/html-token'
import { Token } from '../parser/token'
import { TagToken } from '../parser/tag-token'
import { HTMLToken } from '../parser/html-token'
import { NormalizedFullOptions } from '../liquid-options'
export default function whiteSpaceCtrl (tokens: Token[], options: NormalizedFullOptions) {
export function whiteSpaceCtrl (tokens: Token[], options: NormalizedFullOptions) {
options = { greedy: true, ...options }
let inRaw = false