https://github.com/blackglory/extra-dom
🌲 Utilities for DOM
https://github.com/blackglory/extra-dom
browser esm library npm-package typescript
Last synced: 18 days ago
JSON representation
🌲 Utilities for DOM
- Host: GitHub
- URL: https://github.com/blackglory/extra-dom
- Owner: BlackGlory
- License: mit
- Created: 2020-12-23T18:58:48.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2023-06-10T17:55:14.000Z (about 3 years ago)
- Last Synced: 2025-02-04T04:58:54.765Z (over 1 year ago)
- Topics: browser, esm, library, npm-package, typescript
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/extra-dom
- Size: 985 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# extra-dom
Utilities for DOM.
## Install
```sh
npm install --save extra-dom
# or
yarn add extra-dom
```
## API
### flatMap
```ts
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
```ts
function map(node: Node, fn: (node: Node) => Node): Node
```
Traverse the node tree and do `map`.
### filter
```ts
function filter(node: Node, predicate: (node: Node) => unknown): Node | undefined
```
Traverse the node tree and do `filter`.
### unwrap
```ts
function unwrap(node: Node, predicate: (node: Node) => unknown): Node[]
```
Traverse the node tree and do `unwrap`.
### find
```ts
function find(node: Node, predicate: (node: Node) => unknown): Node | undefined
```
Traverse the node tree and do `find`.
### parseNodes
```ts
function parseNodes(htmlFragment: string): Node[]
```
### stringifyNodes
```ts
function stringifyNodes(nodes: Node[]): string
```
### parseFragment
```ts
function parseFragment(htmlFragment: string): DocumentFragment
```
### stringifyFragment
```ts
function stringifyFragment(fragment: DocumentFragment): string
```
### removeAllChildren
```ts
function removeAllChildren(node: Node): void
```
### removeAttributes
```ts
function removeAttributes(
node: Node
, predicate?: (attributeName: string) => unknown
): void
```
### getBySelector
```ts
function getBySelector(
this: void | Element | Document
, selectors: string
): T
```
Return the first matched element.
If cannot find any elements, it throws.
### getAllBySelector
```ts
function getAllBySelector(
this: void | Element | Document
, selectors: string
): T[]
```
Return matched elements.
If cannot find any elements, it throws.
### traverseAncestorNodes
```ts
function traverseAncestorNodes(node: Node): Iterable
```
### traverseDescendantNodes
```ts
function traverseDescendantNodes(node: Node): Iterable
```
### traversePrecedingSiblingNodes
```ts
function traversePrecedingSiblingNodes(node: Node): Iterable
```
### traverseFollowingSiblingNodes
```ts
function traverseFollowingSiblingNodes(node: Node): Iterable
```
### traverseDescendantNodes
```ts
function traverseDescendantNodes(node: Node): Iterable
```
### findInAncestorNodes
```ts
function findInAncestorNodes(
node: Node
, predicate: (node: Node & ParentNode) => unknown
): (Node & ParentNode) | undefined
```
### findInDescendantNodes
```ts
function find(node: Node, predicate: (node: ChildNode) => unknown): ChildNode | undefined
```
### findInPrecedingSiblingNodes
```ts
function findInPrecedingSiblingNodes(
node: Node
, predicate: (node: Node) => unknown
): Node | undefined
```
This function uses `Node.previousSibling` to traverse the preceding sibling nodes.
### findInFollowingSiblingNodes
```ts
function findInFollowingSiblingNodes(
node: Node
, predicate: (node: Node) => unknown
): Node | undefined
```
This function uses `Node.nextSibling` to traverse the following sibling nodes.
### parentNode
```ts
function parentNode(node: Node, distance: number = 1): (Node & ParentNode) | undefined
```
### nextSibling
```ts
function nextSibling(node: Node, distance: number = 1): ChildNode | undefined
```
### previousSibling
```ts
function previousSibling(node: Node, distance: number = 1): ChildNode | undefined
```
### nextElementSibling
```ts
function nextElementSibling(node: Node, distance: number = 1): Element | undefined
```
### previousElementSibling
```ts
function previousElementSibling(node: Node, distance: number = 1): Element | undefined
```
### isDocument
```ts
function isDocument(val: unknown): val is Document
```
### isntDocument
```ts
function isntDocument(val: T): val is Exclude
```
### isElement
```ts
function isElement(val: unknown): val is Element
```
### isntElement
```ts
function isntElement(val: T): val is Exclude
```
### isTextNode
```ts
function isTextNode(val: unknown): val is Text
```
### isntTextNode
```ts
function isntTextNode(val: unknown): node is Exclude
```
### isNode
```ts
function isNode(val: unknown): val is Node
```
### isntNode
```ts
function isntNode(val: T): val is Exclude
```
### isParentNode
```ts
function isParentNode(val: unknown): val is Node & ParentNode
```
### isntParentNode
```ts
function isntParentNode(val: unknown): val is Exclude
```
### isBefore
```ts
function isBefore(subject: Node, object: Node): boolean
```
### isAfter
```ts
function isAfter(subject: Node, object: Node): boolean
```
### createDOMParser
```ts
function createDOMParser(): DOMParser
```
### NodeType
```ts
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
```ts
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
}
```