chore(TypeScript): refactor objects into classes

fix: `Nil`(null, undefined) now renders as empty string
change: `parser.parseValue()` renamed to `parser.parseOutput`
change: registered tags/filters become static and shared across different liquid instances
This commit is contained in:
harttle
2019-02-17 04:55:30 +08:00
parent b51b0dabca
commit 677e8511e6
134 changed files with 3327 additions and 3858 deletions
+24
View File
@@ -0,0 +1,24 @@
import { stringify, create } from 'src/util/underscore'
import { RenderBreakError, RenderError } from 'src/util/error'
import assert from 'src/util/assert'
import Scope from 'src/scope/scope'
export default class Render {
async renderTemplates (templates, scope) {
assert(scope, 'unable to evalTemplates: scope undefined')
let html = ''
for (const tpl of templates) {
try {
html += await tpl.render(scope)
} catch (e) {
if (e instanceof RenderBreakError) {
e.resolvedHTML = html
throw e
}
throw e instanceof RenderError ? e : new RenderError(e, tpl)
}
}
return html
}
}