From ae45c4622e7e6a16ffe33fda52cff0242747dd2c Mon Sep 17 00:00:00 2001 From: harttle Date: Sun, 25 Aug 2019 12:35:56 +0800 Subject: [PATCH] fix: break/continue omitting output before them, #123 BREAKING CHANGE: remove default export, now should be used like import {Liquid} from 'liquidjs' --- benchmark/demo.ts | 8 +-- benchmark/index.ts | 8 +-- benchmark/layout.ts | 6 +- benchmark/output.ts | 4 +- benchmark/tag.ts | 4 +- demo/browser/index.html | 3 +- demo/express/app.js | 2 +- demo/nodejs/index.js | 2 +- demo/typescript/index.ts | 8 +-- rollup.config.ts | 5 +- src/builtin/tags/assign.ts | 8 +-- src/builtin/tags/block.ts | 12 ++-- src/builtin/tags/capture.ts | 9 +-- src/builtin/tags/case.ts | 14 ++-- src/builtin/tags/comment.ts | 6 +- src/builtin/tags/cycle.ts | 8 +-- src/builtin/tags/decrement.ts | 8 +-- src/builtin/tags/for.ts | 23 ++----- src/builtin/tags/if.ts | 15 ++-- src/builtin/tags/include.ts | 12 ++-- src/builtin/tags/increment.ts | 4 +- src/builtin/tags/index.ts | 2 +- src/builtin/tags/layout.ts | 9 +-- src/builtin/tags/raw.ts | 4 +- src/builtin/tags/tablerow.ts | 27 +++----- src/builtin/tags/unless.ts | 15 ++-- src/context/context.ts | 12 ++-- src/liquid.ts | 32 ++++----- src/parser/delimited-token.ts | 4 +- src/parser/html-token.ts | 4 +- src/parser/output-token.ts | 6 +- src/parser/parse-stream.ts | 8 +-- src/parser/parser.ts | 18 ++--- src/parser/tag-token.ts | 6 +- src/parser/token.ts | 2 +- src/parser/tokenizer.ts | 12 ++-- src/parser/whitespace-ctrl.ts | 8 +-- src/render/render.ts | 19 ++---- src/render/syntax.ts | 24 +++---- src/template/filter/filter-impl.ts | 2 +- src/template/filter/filter.ts | 8 +-- src/template/html.ts | 14 ++-- src/template/itemplate.ts | 8 +-- src/template/output.ts | 17 ++--- src/template/tag/hash.ts | 4 +- src/template/tag/itag-impl-options.ts | 15 ++-- src/template/tag/itag-impl.ts | 6 +- src/template/tag/tag.ts | 22 +++--- src/template/template.ts | 2 +- src/template/value.ts | 10 +-- src/types.ts | 9 +++ src/util/assert.ts | 2 +- src/util/error.ts | 4 +- test/e2e/drop.ts | 4 +- test/e2e/eval-value.ts | 4 +- test/e2e/express.ts | 2 +- test/e2e/parse-and-render.ts | 2 +- test/e2e/render-file.ts | 2 +- test/e2e/whitespace-ctrl.ts | 2 +- test/e2e/xhr.ts | 2 +- test/integration/builtin/filters/array.ts | 2 +- test/integration/builtin/filters/date.ts | 2 +- test/integration/builtin/filters/math.ts | 2 +- test/integration/builtin/filters/string.ts | 2 +- test/integration/builtin/tags/assign.ts | 2 +- test/integration/builtin/tags/capture.ts | 2 +- test/integration/builtin/tags/case.ts | 2 +- test/integration/builtin/tags/comment.ts | 2 +- test/integration/builtin/tags/cycle.ts | 2 +- test/integration/builtin/tags/decrement.ts | 2 +- test/integration/builtin/tags/for.ts | 24 +++++-- test/integration/builtin/tags/if.ts | 2 +- test/integration/builtin/tags/include.ts | 10 +-- test/integration/builtin/tags/increment.ts | 2 +- test/integration/builtin/tags/layout.ts | 2 +- test/integration/builtin/tags/raw.ts | 2 +- test/integration/builtin/tags/tablerow.ts | 2 +- test/integration/builtin/tags/unless.ts | 2 +- test/integration/drop/blank-drop.ts | 2 +- test/integration/drop/drop.ts | 6 +- test/integration/drop/empty-drop.ts | 2 +- test/integration/drop/null-drop.ts | 2 +- test/integration/liquid/cache.ts | 2 +- test/integration/liquid/delimiter.ts | 2 +- test/integration/liquid/fs-option.ts | 2 +- test/integration/liquid/liquid.ts | 4 +- test/integration/liquid/strict.ts | 2 +- test/integration/liquid/trimming.ts | 2 +- test/integration/util/error.ts | 5 +- test/stub/render.ts | 2 +- test/unit/context/context.ts | 79 +++++++++++----------- test/unit/parser/tokenizer.ts | 8 +-- test/unit/render/render.ts | 10 +-- test/unit/render/syntax.ts | 4 +- test/unit/template/filter/filter.ts | 4 +- test/unit/template/output.ts | 24 ++++--- test/unit/template/tag.ts | 24 ++++--- test/unit/template/value.ts | 4 +- test/unit/util/assert.ts | 2 +- 99 files changed, 373 insertions(+), 407 deletions(-) diff --git a/benchmark/demo.ts b/benchmark/demo.ts index b71093666..faf0fec4a 100644 --- a/benchmark/demo.ts +++ b/benchmark/demo.ts @@ -1,7 +1,5 @@ import * as Benchmark from 'benchmark' -import Liquid from '../src/liquid' -import TagToken from '../src/parser/tag-token' -import Context from '../src/context/context' +import { Context, TagToken, Liquid } from '../src/liquid' const engine = new Liquid({ root: __dirname, @@ -34,13 +32,13 @@ const template = ` ` -export default function () { +export function demo () { console.log('--- demo ---') return new Promise(resolve => { new Benchmark.Suite('demo') .add('demo', { defer: true, - fn: (d: any) => engine.parseAndRender(template, ctx).then(x => d.resolve(x)) + fn: (d: any) => engine.parseAndRender(template, ctx).then((x: any) => d.resolve(x)) }) .on('cycle', (event: any) => console.log(String(event.target))) .on('complete', resolve) diff --git a/benchmark/index.ts b/benchmark/index.ts index 3b48082d4..8145a1f1a 100644 --- a/benchmark/index.ts +++ b/benchmark/index.ts @@ -1,7 +1,7 @@ -import output from './output' -import tag from './tag' -import demo from './demo' -import layout from './layout' +import { output } from './output' +import { tag } from './tag' +import { demo } from './demo' +import { layout } from './layout' async function main () { await output() diff --git a/benchmark/layout.ts b/benchmark/layout.ts index e0d030215..df26a1c59 100644 --- a/benchmark/layout.ts +++ b/benchmark/layout.ts @@ -17,17 +17,17 @@ const template = ` {% block body %}a small body{% endblock %} ` -export default function () { +export function layout () { console.log('--- layout ---') return new Promise(resolve => { new Benchmark.Suite('layout') .add('cache=false', { defer: true, - fn: (d: any) => engine.parseAndRender(template, {}).then(x => d.resolve(x)) + fn: (d: any) => engine.parseAndRender(template, {}).then((x: any) => d.resolve(x)) }) .add('cache=true', { defer: true, - fn: (d: any) => cachingEngine.parseAndRender(template, {}).then(x => d.resolve(x)) + fn: (d: any) => cachingEngine.parseAndRender(template, {}).then((x: any) => d.resolve(x)) }) .on('cycle', (event: any) => console.log(String(event.target))) .on('complete', resolve) diff --git a/benchmark/output.ts b/benchmark/output.ts index 50a7f4cc3..1f4b3c748 100644 --- a/benchmark/output.ts +++ b/benchmark/output.ts @@ -3,7 +3,7 @@ import Liquid from '../src/liquid' const liquid = new Liquid() -export default function () { +export function output () { console.log('--- output ---') return new Promise(resolve => { new Benchmark.Suite('output') @@ -21,6 +21,6 @@ export default function () { function test (str: string) { return { defer: true, - fn: (d: any) => liquid.parseAndRender(str).then(x => d.resolve(x)) + fn: (d: any) => liquid.parseAndRender(str).then((x: any) => d.resolve(x)) } } diff --git a/benchmark/tag.ts b/benchmark/tag.ts index 292dc3591..17ec687ad 100644 --- a/benchmark/tag.ts +++ b/benchmark/tag.ts @@ -3,7 +3,7 @@ import Liquid from '../src/liquid' const liquid = new Liquid() -export default function () { +export function tag () { console.log('--- tag ---') return new Promise(resolve => { new Benchmark.Suite('tag') @@ -25,6 +25,6 @@ export default function () { function test (str: string) { return { defer: true, - fn: (d: any) => liquid.parseAndRender(str).then(x => d.resolve(x)) + fn: (d: any) => liquid.parseAndRender(str).then((x: any) => d.resolve(x)) } } diff --git a/demo/browser/index.html b/demo/browser/index.html index 4d6887cdf..210caca2d 100644 --- a/demo/browser/index.html +++ b/demo/browser/index.html @@ -8,7 +8,8 @@