MCPcopy Create free account
hub / github.com/bigskysoftware/_hyperscript / resolve

Method resolve

www/js/_hyperscript-max.js:10321–10371  ·  view source on GitHub ↗
(ctx, { template, templateArgs, target })

Source from the content-addressed store, hash-verified

10319 return cmd;
10320 }
10321 resolve(ctx, { template, templateArgs, target }) {
10322 if (!(template instanceof Element)) throw new Error(this.template_.sourceFor() + " is not an element");
10323 var buf = [];
10324 var runtime2 = ctx.meta.runtime;
10325 var renderCtx = runtime2.makeContext(ctx.me, null, ctx.me, null);
10326 renderCtx.locals = Object.assign({}, ctx.locals, templateArgs);
10327 renderCtx.meta.__ht_template_result = buf;
10328 var tokens = new Tokenizer().tokenize(getTemplateSource(template), "lines");
10329 var parser = this._parser.createChildParser(tokens);
10330 var commandList;
10331 try {
10332 commandList = parser.parseElement("commandList");
10333 parser.ensureTerminated(commandList);
10334 } catch (e) {
10335 console.error("hyperscript template parse error:", e.parseError?.message || e.message || e);
10336 ctx.result = "";
10337 return runtime2.findNext(this, ctx);
10338 }
10339 var errors = commandList.collectErrors();
10340 if (errors.length) {
10341 for (var err of errors) {
10342 console.error("hyperscript template error (line " + err.line + "): " + err.message + (err.expr ? " in ${" + err.expr + "}" : ""));
10343 }
10344 }
10345 var resolve, reject;
10346 var promise = new Promise(function(res, rej) {
10347 resolve = res;
10348 reject = rej;
10349 });
10350 commandList.execute(renderCtx);
10351 var scopes = renderCtx.meta.__ht_scopes || null;
10352 var SCOPE_MARKER_RE = /<!--hs-scope:[^>]*-->/g;
10353 var finish = (result) => {
10354 ctx.result = result.replace(SCOPE_MARKER_RE, "");
10355 if (this.insertHere) {
10356 ctx.me.__hs_scopes = scopes;
10357 ctx.me.innerHTML = result;
10358 }
10359 if (target) {
10360 target.__hs_scopes = scopes;
10361 target.innerHTML = result;
10362 }
10363 return runtime2.findNext(this, ctx);
10364 };
10365 if (renderCtx.meta.returned) {
10366 return finish(buf.join(""));
10367 }
10368 renderCtx.meta.resolve = resolve;
10369 renderCtx.meta.reject = reject;
10370 return promise.then(() => finish(buf.join("")));
10371 }
10372 };
10373 var EscapeExpression = class _EscapeExpression extends Expression {
10374 static grammarName = "escape";

Callers

nothing calls this directly

Calls 10

getTemplateSourceFunction · 0.70
sourceForMethod · 0.45
makeContextMethod · 0.45
tokenizeMethod · 0.45
createChildParserMethod · 0.45
parseElementMethod · 0.45
ensureTerminatedMethod · 0.45
findNextMethod · 0.45
collectErrorsMethod · 0.45
executeMethod · 0.45

Tested by

no test coverage detected