export function nodeHasType()

in src/components/wiki/youtrack-wiki__node-type.ts [36:114]


export function nodeHasType(node: Record<string, any> = {}): NodeType {
  const types: NodeType | Record<string, any> = {};

  switch (true) {
    case node.type === 'text' && node.data === '\n':
      types.textOrNewLine = true;
      break;

    case isNodeHasSelector(node, 'span', 'wiki-plus'):
      types.expandCollapseToggle = true;
      break;

    case isNodeHasSelector(node, 'span', 'wiki-hellip'):
      types.exceptionTitle = true;
      break;

    case isNodeHasSelector(node, 'pre', 'wiki-exception'):
      types.exception = true;
      break;

    case node.name === 'input':
      types.checkbox = true;
      break;

    case isNodeHasSelector(node, 'pre', 'wikicode') || node?.name === 'code':
      types.code = true;
      break;

    case node.name === 'img':
      types.image = true;
      break;

    case node.name === 'p':
      types.p = true;
      break;

    case node.name === 'strong':
      types.strong = true;
      break;

    case isNodeHasSelector(node, 'ul', 'wiki-list1'):
      types.ul = true;
      break;

    case node.name === 'font':
      types.font = true;
      break;

    case node.name === 'del':
      types.del = true;
      break;

    case isNodeHasSelector(node, 'span', 'monospace'):
      types.monospace = true;
      break;

    case isNodeHasSelector(node, 'div', 'quote') || node.name === 'blockquote':
      types.quoteOrBlockquote = true;
      break;

    case node.name === 'table':
      types.table = true;
      break;

    case node.name === 'tr':
      types.tr = true;
      break;

    case node.name === 'th':
      types.th = true;
      break;

    case node.name === 'td':
      types.td = true;
      break;
  }

  return types;
}