diff --git a/src/compiler/compile/render_dom/wrappers/AwaitBlock.js b/src/compiler/compile/render_dom/wrappers/AwaitBlock.js index 910374ed38..f58958eec5 100644 --- a/src/compiler/compile/render_dom/wrappers/AwaitBlock.js +++ b/src/compiler/compile/render_dom/wrappers/AwaitBlock.js @@ -9,6 +9,8 @@ import Expression from '../../nodes/shared/Expression.js'; /** @extends Wrapper */ class AwaitBlockBranch extends Wrapper { + /** @typedef {'pending' | 'then' | 'catch'} Status */ + /** @type {AwaitBlockWrapper} */ parent; @@ -97,7 +99,7 @@ class AwaitBlockBranch extends Wrapper { /** * @param {import('../../nodes/PendingBlock.js').default | import('../../nodes/ThenBlock.js').default | import('../../nodes/CatchBlock.js').default} node - * @returns {boolean} + * @returns {node is import('../../nodes/ThenBlock.js').default | import('../../nodes/CatchBlock.js').default} */ has_consts(node) { return node instanceof ThenBlock || node instanceof CatchBlock; @@ -182,7 +184,7 @@ export default class AwaitBlockWrapper extends Wrapper { let is_dynamic = false; let has_intros = false; let has_outros = false; - ['pending', 'then', 'catch'].forEach((status) => { + /** @type {const} */ (['pending', 'then', 'catch']).forEach((status) => { const child = this.node[status]; const branch = new AwaitBlockBranch( status, @@ -312,5 +314,3 @@ export default class AwaitBlockWrapper extends Wrapper { }); } } - -/** @typedef {'pending' | 'then' | 'catch'} Status */ diff --git a/src/compiler/compile/render_dom/wrappers/Body.ts b/src/compiler/compile/render_dom/wrappers/Body.ts index 698844593e..cb7d92d1cf 100644 --- a/src/compiler/compile/render_dom/wrappers/Body.ts +++ b/src/compiler/compile/render_dom/wrappers/Body.ts @@ -1,25 +1,40 @@ -import Block from '../Block'; -import Wrapper from './shared/Wrapper'; +import Wrapper from './shared/Wrapper.js'; import { x } from 'code-red'; -import Body from '../../nodes/Body'; -import { Identifier } from 'estree'; -import EventHandler from './Element/EventHandler'; -import add_event_handlers from './shared/add_event_handlers'; -import { TemplateNode } from '../../../interfaces'; -import Renderer from '../Renderer'; -import add_actions from './shared/add_actions'; +import EventHandler from './Element/EventHandler.js'; +import add_event_handlers from './shared/add_event_handlers.js'; +import add_actions from './shared/add_actions.js'; +/** @extends Wrapper */ export default class BodyWrapper extends Wrapper { - node: Body; - handlers: EventHandler[]; - - constructor(renderer: Renderer, block: Block, parent: Wrapper, node: TemplateNode) { - super(renderer, block, parent, node); - this.handlers = this.node.handlers.map((handler) => new EventHandler(handler, this)); - } - - render(block: Block, _parent_node: Identifier, _parent_nodes: Identifier) { - add_event_handlers(block, x`@_document.body`, this.handlers); - add_actions(block, x`@_document.body`, this.node.actions); - } + + /** @type {import('../../nodes/Body.js').default} */ + node; + + /** @type {import('./Element/EventHandler.js').default[]} */ + handlers; + + /** + * @param {import('../Renderer.js').default} renderer + * @param {import('../Block.js').default} block + * @param {import('./shared/Wrapper.js').default} parent + * @param {import('../../../interfaces.js').TemplateNode} node + */ + constructor(renderer, block, parent, node) { + super(renderer, block, parent, node); + this.handlers = this.node.handlers.map((handler) => new EventHandler(handler, this)); + } + + /** + * @param {import('../Block.js').default} block + * @param {import('estree').Identifier} _parent_node + * @param {import('estree').Identifier} _parent_nodes + */ + render(block, _parent_node, _parent_nodes) { + add_event_handlers(block, x `@_document.body`, this.handlers); + add_actions(block, x `@_document.body`, this.node.actions); + } } + + + +