(ctx, { template, templateArgs })
| 9782 | return cmd; |
| 9783 | } |
| 9784 | resolve(ctx, { template, templateArgs }) { |
| 9785 | if (!(template instanceof Element)) throw new Error(this.template_.sourceFor() + " is not an element"); |
| 9786 | var buf = []; |
| 9787 | var runtime2 = ctx.meta.runtime; |
| 9788 | var renderCtx = runtime2.makeContext(ctx.me, null, ctx.me, null); |
| 9789 | renderCtx.locals = Object.assign({}, ctx.locals, templateArgs); |
| 9790 | renderCtx.meta.__ht_template_result = buf; |
| 9791 | var tokens = new Tokenizer().tokenize(template.innerHTML, "lines"); |
| 9792 | var parser = this._parser.createChildParser(tokens); |
| 9793 | var commandList; |
| 9794 | try { |
| 9795 | commandList = parser.parseElement("commandList"); |
| 9796 | parser.ensureTerminated(commandList); |
| 9797 | } catch (e) { |
| 9798 | console.error("hyperscript template parse error:", e.parseError?.message || e.message || e); |
| 9799 | ctx.result = ""; |
| 9800 | return runtime2.findNext(this, ctx); |
| 9801 | } |
| 9802 | var errors = commandList.collectErrors(); |
| 9803 | if (errors.length) { |
| 9804 | for (var err of errors) { |
| 9805 | console.error("hyperscript template error (line " + err.line + "): " + err.message + (err.expr ? " in ${" + err.expr + "}" : "")); |
| 9806 | } |
| 9807 | } |
| 9808 | var resolve, reject; |
| 9809 | var promise = new Promise(function(res, rej) { |
| 9810 | resolve = res; |
| 9811 | reject = rej; |
| 9812 | }); |
| 9813 | commandList.execute(renderCtx); |
| 9814 | if (renderCtx.meta.returned) { |
| 9815 | ctx.result = buf.join(""); |
| 9816 | return runtime2.findNext(this, ctx); |
| 9817 | } |
| 9818 | renderCtx.meta.resolve = resolve; |
| 9819 | renderCtx.meta.reject = reject; |
| 9820 | return promise.then(() => { |
| 9821 | ctx.result = buf.join(""); |
| 9822 | return runtime2.findNext(this, ctx); |
| 9823 | }); |
| 9824 | } |
| 9825 | }; |
| 9826 | var EscapeExpression = class _EscapeExpression extends Expression { |
| 9827 | static grammarName = "escape"; |
nothing calls this directly
no test coverage detected