diff options
author | (quasar) nebula <qznebula@protonmail.com> | 2025-07-10 11:46:10 -0300 |
---|---|---|
committer | (quasar) nebula <qznebula@protonmail.com> | 2025-07-10 11:46:10 -0300 |
commit | d725cf1596d7f6b3b881edd23915c7fe9285eb86 (patch) | |
tree | e1f0abd7ed526e417021028680e0008f400a61b7 | |
parent | 2589b429778b553b31151101d2978225b3e461ef (diff) |
html: simplify Template.resolve(), .resolveForSlots()
-rw-r--r-- | src/html.js | 20 |
1 files changed, 7 insertions, 13 deletions
diff --git a/src/html.js b/src/html.js index dd1d1960..b95d00e1 100644 --- a/src/html.js +++ b/src/html.js @@ -1968,17 +1968,11 @@ export class Template { return this.content.toString(); } - static resolve(tagOrTemplate) { + static resolve(content) { // Flattens contents of a template, recursively "resolving" until a // non-template is ready (or just returns a provided non-template // argument as-is). - if (!(tagOrTemplate instanceof Template)) { - return tagOrTemplate; - } - - let {content} = tagOrTemplate; - while (content instanceof Template) { content = content.content; } @@ -1986,7 +1980,7 @@ export class Template { return content; } - static resolveForSlots(tagOrTemplate, slots) { + static resolveForSlots(content, slots) { if (!slots || typeof slots !== 'object') { throw new Error( `Expected slots to be an object or array, ` + @@ -1994,18 +1988,18 @@ export class Template { } if (!Array.isArray(slots)) { - return Template.resolveForSlots(tagOrTemplate, Object.keys(slots)).slots(slots); + return Template.resolveForSlots(content, Object.keys(slots)).slots(slots); } - while (tagOrTemplate && tagOrTemplate instanceof Template) { + while (content instanceof Template) { try { for (const slot of slots) { - tagOrTemplate.getSlotDescription(slot); + content.getSlotDescription(slot); } - return tagOrTemplate; + return content; } catch { - tagOrTemplate = tagOrTemplate.content; + content = content.content; } } |