From fc4be886462bb81abbfd176d59fbd1fa9f7da3c7 Mon Sep 17 00:00:00 2001 From: Bogdan Savluk Date: Tue, 21 May 2019 23:58:46 +0200 Subject: [PATCH] cleanup, improve comments --- src/compile/nodes/Element.ts | 4 ++-- src/compile/nodes/Text.ts | 3 +-- src/compile/nodes/Title.ts | 3 +-- src/compile/nodes/interfaces.ts | 2 ++ src/compile/nodes/shared/Node.ts | 2 +- src/compile/render-dom/wrappers/Fragment.ts | 2 +- .../render-dom/wrappers/shared/create_debugging_comment.ts | 1 - 7 files changed, 8 insertions(+), 9 deletions(-) diff --git a/src/compile/nodes/Element.ts b/src/compile/nodes/Element.ts index aa7c14a679..19da4bcc1e 100644 --- a/src/compile/nodes/Element.ts +++ b/src/compile/nodes/Element.ts @@ -250,7 +250,7 @@ export default class Element extends Node { if (this.name === 'figure') { const children = this.children.filter(node => { if (node.type === 'Comment') return false; - if (node.type === 'Text') return /\S/.test((node as Text).data ); + if (node.type === 'Text') return /\S/.test(node.data); return true; }); @@ -391,7 +391,7 @@ export default class Element extends Node { let ancestor = this.parent; do { if (ancestor.type === 'InlineComponent') break; - if (ancestor.type === 'Element' && /-/.test((ancestor as Element).name)) break; + if (ancestor.type === 'Element' && /-/.test(ancestor.name)) break; if (ancestor.type === 'IfBlock' || ancestor.type === 'EachBlock') { const type = ancestor.type === 'IfBlock' ? 'if' : 'each'; diff --git a/src/compile/nodes/Text.ts b/src/compile/nodes/Text.ts index a3b9241ce2..7500f5ff30 100644 --- a/src/compile/nodes/Text.ts +++ b/src/compile/nodes/Text.ts @@ -2,7 +2,6 @@ import Node from './shared/Node'; import Component from '../Component'; import TemplateScope from './shared/TemplateScope'; import { INode } from './interfaces'; -import Element from './Element'; export default class Text extends Node { type: 'Text'; @@ -16,7 +15,7 @@ export default class Text extends Node { if (!component.component_options.preserveWhitespace && !/\S/.test(info.data)) { let node = parent; while (node) { - if (node.type === 'Element' && (node as Element).name === 'pre') { + if (node.type === 'Element' && node.name === 'pre') { return; } node = node.parent; diff --git a/src/compile/nodes/Title.ts b/src/compile/nodes/Title.ts index 4c459c181f..6ac0848053 100644 --- a/src/compile/nodes/Title.ts +++ b/src/compile/nodes/Title.ts @@ -4,9 +4,8 @@ import Component from '../Component'; export default class Title extends Node { type: 'Title'; - - should_cache: boolean; children: Children; + should_cache: boolean; constructor(component: Component, parent, scope, info) { super(component, parent, scope, info); diff --git a/src/compile/nodes/interfaces.ts b/src/compile/nodes/interfaces.ts index 6613d39769..434b09e5aa 100644 --- a/src/compile/nodes/interfaces.ts +++ b/src/compile/nodes/interfaces.ts @@ -30,6 +30,8 @@ import Title from './Title'; import Transition from './Transition'; import Window from './Window'; +// note: to write less types each of types in union below should have type defined as literal +// https://www.typescriptlang.org/docs/handbook/advanced-types.html#discriminated-unions export type INode = Action | Animation | Attribute diff --git a/src/compile/nodes/shared/Node.ts b/src/compile/nodes/shared/Node.ts index daba0d62b2..b647e3a158 100644 --- a/src/compile/nodes/shared/Node.ts +++ b/src/compile/nodes/shared/Node.ts @@ -17,7 +17,7 @@ export default class Node { var: string; attributes: Attribute[]; - constructor(component: Component, parent: any, scope: any, info: { start: number; end: number; type: string; }) { + constructor(component: Component, parent, scope, info: any) { this.start = info.start; this.end = info.end; this.type = info.type; diff --git a/src/compile/render-dom/wrappers/Fragment.ts b/src/compile/render-dom/wrappers/Fragment.ts index 0b5facf52e..21a6704548 100644 --- a/src/compile/render-dom/wrappers/Fragment.ts +++ b/src/compile/render-dom/wrappers/Fragment.ts @@ -85,7 +85,7 @@ export default class FragmentWrapper { // *unless* there is no whitespace between this node and its next sibling if (this.nodes.length === 0) { const should_trim = ( - // @ts-ignore todo: + // @ts-ignore todo: probably error, should it be next_sibling.node.data? next_sibling ? (next_sibling.node.type === 'Text' && /^\s/.test(next_sibling.data)) : !child.has_ancestor('EachBlock') ); diff --git a/src/compile/render-dom/wrappers/shared/create_debugging_comment.ts b/src/compile/render-dom/wrappers/shared/create_debugging_comment.ts index bb39bcd55d..df1ae9ff8e 100644 --- a/src/compile/render-dom/wrappers/shared/create_debugging_comment.ts +++ b/src/compile/render-dom/wrappers/shared/create_debugging_comment.ts @@ -1,5 +1,4 @@ import Component from '../../../Component'; -import { Node } from '../../../../interfaces'; import { INode } from '../../../nodes/interfaces'; export default function create_debugging_comment(