From 920f6383c8a877ecbb1f1c5c5f4507a3d2f893f8 Mon Sep 17 00:00:00 2001 From: Simon Holthausen Date: Fri, 12 May 2023 13:19:48 +0200 Subject: [PATCH] Lint and format src/compiler/compile/render_dom/wrappers/Element/EventHandler.js --- .../wrappers/Element/EventHandler.js | 133 +++++++++--------- 1 file changed, 63 insertions(+), 70 deletions(-) diff --git a/src/compiler/compile/render_dom/wrappers/Element/EventHandler.js b/src/compiler/compile/render_dom/wrappers/Element/EventHandler.js index 77bac25d47..1f1e74bf71 100644 --- a/src/compiler/compile/render_dom/wrappers/Element/EventHandler.js +++ b/src/compiler/compile/render_dom/wrappers/Element/EventHandler.js @@ -1,82 +1,75 @@ import { b, x, p } from 'code-red'; -const TRUE = x `true`; -const FALSE = x `false`; +const TRUE = x`true`; +const FALSE = x`false`; /** */ export default class EventHandlerWrapper { + /** @type {import('../../../nodes/EventHandler.js').default} */ + node; - /** @type {import('../../../nodes/EventHandler.js').default} */ - node; + /** @type {import('../shared/Wrapper.js').default} */ + parent; - /** @type {import('../shared/Wrapper.js').default} */ - parent; - - /** - * @param {import('../../../nodes/EventHandler.js').default} node - * @param {import('../shared/Wrapper.js').default} parent - */ - constructor(node, parent) { - this.node = node; - this.parent = parent; - if (!node.expression) { - this.parent.renderer.add_to_context(node.handler_name.name); - this.parent.renderer.component.partly_hoisted.push(b ` + /** + * @param {import('../../../nodes/EventHandler.js').default} node + * @param {import('../shared/Wrapper.js').default} parent + */ + constructor(node, parent) { + this.node = node; + this.parent = parent; + if (!node.expression) { + this.parent.renderer.add_to_context(node.handler_name.name); + this.parent.renderer.component.partly_hoisted.push(b` function ${node.handler_name.name}(event) { @bubble.call(this, $$self, event); } `); - } - } + } + } - /** @param {import('../../Block.js').default} block */ - get_snippet(block) { - const snippet = this.node.expression - ? this.node.expression.manipulate(block) - : block.renderer.reference(this.node.handler_name); - if (this.node.reassigned) { - block.maintain_context = true; - return x `function () { if (@is_function(${snippet})) ${snippet}.apply(this, arguments); }`; - } - return snippet; - } + /** @param {import('../../Block.js').default} block */ + get_snippet(block) { + const snippet = this.node.expression + ? this.node.expression.manipulate(block) + : block.renderer.reference(this.node.handler_name); + if (this.node.reassigned) { + block.maintain_context = true; + return x`function () { if (@is_function(${snippet})) ${snippet}.apply(this, arguments); }`; + } + return snippet; + } - /** - * @param {import('../../Block.js').default} block - * @param {string | import('estree').Expression} target - */ - render(block, target) { - let snippet = this.get_snippet(block); - if (this.node.modifiers.has('preventDefault')) - snippet = x `@prevent_default(${snippet})`; - if (this.node.modifiers.has('stopPropagation')) - snippet = x `@stop_propagation(${snippet})`; - if (this.node.modifiers.has('stopImmediatePropagation')) - snippet = x `@stop_immediate_propagation(${snippet})`; - if (this.node.modifiers.has('self')) - snippet = x `@self(${snippet})`; - if (this.node.modifiers.has('trusted')) - snippet = x `@trusted(${snippet})`; - const args = []; - const opts = ['nonpassive', 'passive', 'once', 'capture'].filter((mod) => this.node.modifiers.has(mod)); - if (opts.length) { - if (opts.length === 1 && opts[0] === 'capture') { - args.push(TRUE); - } - else { - args.push(x `{ ${opts.map((opt) => (opt === 'nonpassive' ? p `passive: false` : p `${opt}: true`))} }`); - } - } - else if (block.renderer.options.dev) { - args.push(FALSE); - } - if (block.renderer.options.dev) { - args.push(this.node.modifiers.has('preventDefault') ? TRUE : FALSE); - args.push(this.node.modifiers.has('stopPropagation') ? TRUE : FALSE); - args.push(this.node.modifiers.has('stopImmediatePropagation') ? TRUE : FALSE); - } - block.event_listeners.push(x `@listen(${target}, "${this.node.name}", ${snippet}, ${args})`); - } + /** + * @param {import('../../Block.js').default} block + * @param {string | import('estree').Expression} target + */ + render(block, target) { + let snippet = this.get_snippet(block); + if (this.node.modifiers.has('preventDefault')) snippet = x`@prevent_default(${snippet})`; + if (this.node.modifiers.has('stopPropagation')) snippet = x`@stop_propagation(${snippet})`; + if (this.node.modifiers.has('stopImmediatePropagation')) + snippet = x`@stop_immediate_propagation(${snippet})`; + if (this.node.modifiers.has('self')) snippet = x`@self(${snippet})`; + if (this.node.modifiers.has('trusted')) snippet = x`@trusted(${snippet})`; + const args = []; + const opts = ['nonpassive', 'passive', 'once', 'capture'].filter((mod) => + this.node.modifiers.has(mod) + ); + if (opts.length) { + if (opts.length === 1 && opts[0] === 'capture') { + args.push(TRUE); + } else { + args.push( + x`{ ${opts.map((opt) => (opt === 'nonpassive' ? p`passive: false` : p`${opt}: true`))} }` + ); + } + } else if (block.renderer.options.dev) { + args.push(FALSE); + } + if (block.renderer.options.dev) { + args.push(this.node.modifiers.has('preventDefault') ? TRUE : FALSE); + args.push(this.node.modifiers.has('stopPropagation') ? TRUE : FALSE); + args.push(this.node.modifiers.has('stopImmediatePropagation') ? TRUE : FALSE); + } + block.event_listeners.push(x`@listen(${target}, "${this.node.name}", ${snippet}, ${args})`); + } } - - - -