MCPcopy Create free account
hub / github.com/bigskysoftware/_hyperscript / #initElement

Method #initElement

www/js/_hyperscript-max.js:2783–2838  ·  view source on GitHub ↗
(elt, target)

Source from the content-addressed store, hash-verified

2781 delete elt._hyperscript;
2782 }
2783 #initElement(elt, target) {
2784 if (elt.closest && elt.closest(config.disableSelector)) {
2785 return;
2786 }
2787 var internalData = this.getInternalData(elt);
2788 var src = this.#getScript(elt);
2789 if (!src) return;
2790 var hash = this.#hashScript(src);
2791 if (internalData.initialized) {
2792 if (internalData.scriptHash === hash) {
2793 this.#resolveTemplateScopes(elt);
2794 return;
2795 }
2796 this.cleanup(elt);
2797 internalData = this.getInternalData(elt);
2798 }
2799 if (!this.triggerEvent(elt, "hyperscript:before:init")) return;
2800 internalData.initialized = true;
2801 internalData.scriptHash = hash;
2802 try {
2803 var tokens = this.#tokenizer.tokenize(src);
2804 var hyperScript = this.#kernel.parseHyperScript(tokens);
2805 if (!hyperScript) return;
2806 if (hyperScript.errors?.length) {
2807 this.triggerEvent(elt, "hyperscript:parse-error", {
2808 errors: hyperScript.errors
2809 });
2810 console.error(
2811 "hyperscript: " + hyperScript.errors.length + " parse error(s) on:",
2812 elt,
2813 "\n\n" + Parser.formatErrors(hyperScript.errors)
2814 );
2815 return;
2816 }
2817 this.#resolveTemplateScopes(elt);
2818 hyperScript.apply(target || elt, elt, null, this);
2819 elt.setAttribute("data-hyperscript-powered", "true");
2820 this.triggerEvent(elt, "hyperscript:after:init");
2821 setTimeout(() => {
2822 this.triggerEvent(target || elt, "load", {
2823 hyperscript: true
2824 });
2825 }, 1);
2826 } catch (e) {
2827 this.triggerEvent(elt, "exception", {
2828 error: e
2829 });
2830 console.error(
2831 "hyperscript errors were found on the following element:",
2832 elt,
2833 "\n\n",
2834 e.message,
2835 e.stack
2836 );
2837 }
2838 }
2839 #resolveTemplateScopes(elt) {
2840 var root = elt.closest('[data-live-template], [dom-scope="isolated"]');

Callers 1

processNodeMethod · 0.95

Calls 11

getInternalDataMethod · 0.95
#getScriptMethod · 0.95
#hashScriptMethod · 0.95
cleanupMethod · 0.95
triggerEventMethod · 0.95
setTimeoutFunction · 0.50
tokenizeMethod · 0.45
parseHyperScriptMethod · 0.45
formatErrorsMethod · 0.45
applyMethod · 0.45

Tested by

no test coverage detected