0.6.1 • Published 10 months ago

extra-dom v0.6.1

Weekly downloads
510
License
MIT
Repository
github
Last release
10 months ago

extra-dom

Utilities for DOM.

Install

npm install --save extra-dom
# or
yarn add extra-dom

API

flatMap

function flatMap(node: Node, fn: (node: Node) => Node[]): Node[]

Traverse the node tree and do flatMap.

  • []: remove current node
  • [node]: replace current node
  • [node1, node2, ...nodeN]: replace current node with more nodes

map

function map(node: Node, fn: (node: Node) => Node): Node

Traverse the node tree and do map.

filter

function filter(node: Node, predicate: (node: Node) => unknown): Node | undefined

Traverse the node tree and do filter.

unwrap

function unwrap(node: Node, predicate: (node: Node) => unknown): Node[]

Traverse the node tree and do unwrap.

find

function find(node: Node, predicate: (node: Node) => unknown): Node | undefined

Traverse the node tree and do find.

parse

function parse(html: string): Node[]

stringify

function stringify(nodes: Node[]): string

normalize

function normalize(html: string): string

It is the shortcut for stringify(parse(html)).

removeAllChildren

function removeAllChildren(node: Node): void

removeAttributes

function removeAttributes(node: Node, predicate: (name: string) => unknown): void

getBySelector

function getBySelector<T extends Element>(
  this: void | Element | Document
, selectors: string
): T

Return the first matched element.

If cannot find any elements, it throws.

getAllBySelector

function getAllBySelector<T extends Element>(
  this: void | Element | Document
, selectors: string
): T[]

Return matched elements.

If cannot find any elements, it throws.

traverseAncestorNodes

function traverseAncestorNodes(node: Node): Iterable<Node & ParentNode>

traverseDescendantNodes

function traverseDescendantNodes(node: Node): Iterable<ChildNode>

findInAncestorNodes

function findInAncestorNodes(
  node: Node
, predicate: (node: Node & ParentNode) => unknown
): (Node & ParentNode) | undefined

findInDescendantNodes

function find(node: Node, predicate: (node: ChildNode) => unknown): ChildNode | undefined

findInPrecedingSiblingNodes

function findInPrecedingSiblingNodes(
  node: Node
, predicate: (node: Node) => unknown
): Node | undefined

This function uses Node.previousSibling to traverse the preceding sibling nodes.

findInFollowingSiblingNodes

function findInFollowingSiblingNodes(
  node: Node
, predicate: (node: Node) => unknown
): Node | undefined

This function uses Node.nextSibling to traverse the following sibling nodes.

parentNode

function parentNode(node: Node, distance: number = 1): (Node & ParentNode) | undefined

nextSibling

function nextSibling(node: Node, distance: number = 1): ChildNode | undefined

previousSibling

function previousSibling(node: Node, distance: number = 1): ChildNode | undefined

nextElementSibling

function nextElementSibling(node: Node, distance: number = 1): Element | undefined

previousElementSibling

function previousElementSibling(node: Node, distance: number = 1): Element | undefined

isDocument

function isDocument(val: any): val is Document

isntDocument

function isntDocument<T>(val: T): val is Exclude<T, Document>

isElement

function isElement(val: any): val is Element

isntElement

function isntElement<T>(val: T): val is Exclude<T, Element>

isTextNode

function isTextNode(val: any): val is Text

isntTextNode

function isntTextNode<T>(val: any): node is Exclude<T, Text>

isNode

function isNode(val: any): val is Node

isntNode

function isntNode<T>(val: T): val is Exclude<T, Node>

isParentNode

function isParentNode(val: any): val is Node & ParentNode

isntParentNode

function isntParentNode<T>(val: any): val is Exclude<T, Node & ParentNode>

isBefore

function isBefore(subject: Node, object: Node): boolean

isAfter

function isAfter(subject: Node, object: Node): boolean

createDOMParser

function createDOMParser(): DOMParser

NodeType

enum NodeType {
  ELEMENT_NODE
, ATTRIBUTE_NODE
, TEXT_NODE
, CDATA_SECTION_NODE
, ENTITY_REFERENCE_NODE
, ENTITY_NODE
, PROCESSING_INSTRUCTION_NODE
, COMMENT_NODE
, DOCUMENT_NODE
, DOCUMENT_TYPE_NODE
, DOCUMENT_FRAGMENT_NODE
, NOTATION_NODE
}

XPathResultType

enum XPathResultType {
  ANY_TYPE
, NUMBER_TYPE
, STRING_TYPE
, BOOLEAN_TYPE
, UNORDERED_NODE_ITERATOR_TYPE
, ORDERED_NODE_ITERATOR_TYPE
, UNORDERED_NODE_SNAPSHOT_TYPE
, ORDERED_NODE_SNAPSHOT_TYPE
, ANY_UNORDERED_NODE_TYPE
, FIRST_ORDERED_NODE_TYPE
}
0.6.1

10 months ago

0.5.4

1 year ago

0.6.0

1 year ago

0.5.3

1 year ago

0.5.2

1 year ago

0.5.1

2 years ago

0.4.5

2 years ago

0.4.4

2 years ago

0.5.0

2 years ago

0.4.3

2 years ago

0.4.2

3 years ago

0.4.1

3 years ago

0.2.32

3 years ago

0.2.31

3 years ago

0.3.0

3 years ago

0.4.0

3 years ago

0.3.1

3 years ago

0.2.30

3 years ago

0.2.29

3 years ago

0.2.28

3 years ago

0.2.27

3 years ago

0.2.26

3 years ago

0.2.25

3 years ago

0.2.24

3 years ago

0.2.23

3 years ago

0.2.22

3 years ago

0.2.21

3 years ago

0.2.20

3 years ago

0.2.16

3 years ago

0.2.15

3 years ago

0.2.19

3 years ago

0.2.18

3 years ago

0.2.17

3 years ago

0.2.14

3 years ago

0.2.13

3 years ago

0.2.12

3 years ago

0.2.11

3 years ago

0.2.10

3 years ago

0.2.9

3 years ago

0.2.8

3 years ago

0.2.7

3 years ago

0.2.6

3 years ago

0.2.5

3 years ago

0.2.4

3 years ago

0.2.3

3 years ago

0.2.2

3 years ago

0.2.1

3 years ago

0.1.2

3 years ago

0.1.1

3 years ago

0.1.0

3 years ago