https://github.com/umijs/niddle
A super fast nodejs addon for html parsing and manipulation written in rust.
https://github.com/umijs/niddle
htmlparser jquery napi node-addon rust
Last synced: 6 months ago
JSON representation
A super fast nodejs addon for html parsing and manipulation written in rust.
- Host: GitHub
- URL: https://github.com/umijs/niddle
- Owner: umijs
- Created: 2024-07-13T10:13:29.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-05-22T04:34:43.000Z (8 months ago)
- Last Synced: 2025-06-22T20:49:43.939Z (7 months ago)
- Topics: htmlparser, jquery, napi, node-addon, rust
- Language: JavaScript
- Homepage:
- Size: 2.61 MB
- Stars: 10
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
Awesome Lists containing this project
README
**niddle** • **Docs**
***
# niddle
## Classes
### NodeRepr
#### Constructors
##### new NodeRepr()
> **new NodeRepr**(): [`NodeRepr`](README.md#noderepr)
The node object, cann't be instantiated in javascript. So call the constructor will throw an error.
###### Returns
[`NodeRepr`](README.md#noderepr)
###### Defined in
[index.d.ts:137](https://github.com/umijs/niddle/blob/main/index.d.ts#L137)
#### Methods
##### append()
> **append**(`newChild`): `void`
Append a child node to this node, after existing children.
The child node will be remove from its previous position.
###### Parameters
| Parameter | Type |
| ------ | ------ |
| `newChild` | [`NodeRepr`](README.md#noderepr) |
###### Returns
`void`
###### Defined in
[index.d.ts:18](https://github.com/umijs/niddle/blob/main/index.d.ts#L18)
##### appendSequence()
> **appendSequence**(`newChildren`): `void`
Append some children nodes to this node by order, after existing children.
These children nodes will be remove from their previous position.
###### Parameters
| Parameter | Type |
| ------ | ------ |
| `newChildren` | [`NodeRepr`](README.md#noderepr)[] |
###### Returns
`void`
###### Defined in
[index.d.ts:25](https://github.com/umijs/niddle/blob/main/index.d.ts#L25)
##### clone()
> **clone**(): [`NodeRepr`](README.md#noderepr)
Clone this node to a new instance, not clone its descendants.
###### Returns
[`NodeRepr`](README.md#noderepr)
###### Defined in
[index.d.ts:142](https://github.com/umijs/niddle/blob/main/index.d.ts#L142)
##### cloneRecursive()
> **cloneRecursive**(): [`NodeRepr`](README.md#noderepr)
Clone this node to a new instance, including its all descendants.
###### Returns
[`NodeRepr`](README.md#noderepr)
###### Defined in
[index.d.ts:147](https://github.com/umijs/niddle/blob/main/index.d.ts#L147)
##### getAttribute()
> **getAttribute**(`name`): `string`
Get attribute value of this node by given name.
###### Parameters
| Parameter | Type |
| ------ | ------ |
| `name` | `string` |
###### Returns
`string`
###### Defined in
[index.d.ts:112](https://github.com/umijs/niddle/blob/main/index.d.ts#L112)
##### getAttributes()
> **getAttributes**(): `Record`\<`string`, `string`\>
Get attributes K-V object of this node.
###### Returns
`Record`\<`string`, `string`\>
###### Defined in
[index.d.ts:117](https://github.com/umijs/niddle/blob/main/index.d.ts#L117)
##### getChildren()
> **getChildren**(): [`NodeRepr`](README.md#noderepr)[]
Get all children nodes of this node.
###### Returns
[`NodeRepr`](README.md#noderepr)[]
###### Defined in
[index.d.ts:107](https://github.com/umijs/niddle/blob/main/index.d.ts#L107)
##### innerHtml()
> **innerHtml**(): `string`
Get the serialized html of this node, only including its all descendants.
###### Returns
`string`
###### Defined in
[index.d.ts:127](https://github.com/umijs/niddle/blob/main/index.d.ts#L127)
##### insertAfter()
> **insertAfter**(`newSibling`): `void`
Insert a new sibling after this node.
The sibling node will be remove from its previous position.
###### Parameters
| Parameter | Type |
| ------ | ------ |
| `newSibling` | [`NodeRepr`](README.md#noderepr) |
###### Returns
`void`
###### Defined in
[index.d.ts:46](https://github.com/umijs/niddle/blob/main/index.d.ts#L46)
##### insertBefore()
> **insertBefore**(`newSibling`): `void`
Insert a new sibling before this node.
The sibling node will be remove from its previous position.
###### Parameters
| Parameter | Type |
| ------ | ------ |
| `newSibling` | [`NodeRepr`](README.md#noderepr) |
###### Returns
`void`
###### Defined in
[index.d.ts:60](https://github.com/umijs/niddle/blob/main/index.d.ts#L60)
##### insertSequenceAfter()
> **insertSequenceAfter**(`newSiblings`): `void`
Insert some siblings after this node.
These sibling nodes will be remove from their previous position.
###### Parameters
| Parameter | Type |
| ------ | ------ |
| `newSiblings` | [`NodeRepr`](README.md#noderepr)[] |
###### Returns
`void`
###### Defined in
[index.d.ts:53](https://github.com/umijs/niddle/blob/main/index.d.ts#L53)
##### insertSequenceBefore()
> **insertSequenceBefore**(`newSiblings`): `void`
Insert some siblings before this node.
These sibling nodes will be remove from their previous position.
###### Parameters
| Parameter | Type |
| ------ | ------ |
| `newSiblings` | [`NodeRepr`](README.md#noderepr)[] |
###### Returns
`void`
###### Defined in
[index.d.ts:67](https://github.com/umijs/niddle/blob/main/index.d.ts#L67)
##### outerHtml()
> **outerHtml**(): `string`
Get the serialized html of this node, including its all descendants and itelf.
###### Returns
`string`
###### Defined in
[index.d.ts:122](https://github.com/umijs/niddle/blob/main/index.d.ts#L122)
##### prepend()
> **prepend**(`newChild`): `void`
Prepend a child node to this node, before existing children.
The child node will be remove from its previous position.
###### Parameters
| Parameter | Type |
| ------ | ------ |
| `newChild` | [`NodeRepr`](README.md#noderepr) |
###### Returns
`void`
###### Defined in
[index.d.ts:32](https://github.com/umijs/niddle/blob/main/index.d.ts#L32)
##### prependSequence()
> **prependSequence**(`newChildren`): `void`
Prepend some children nodes to this node by order, before existing children.
These children nodes will be remove from their previous position.
###### Parameters
| Parameter | Type |
| ------ | ------ |
| `newChildren` | [`NodeRepr`](README.md#noderepr)[] |
###### Returns
`void`
###### Defined in
[index.d.ts:39](https://github.com/umijs/niddle/blob/main/index.d.ts#L39)
##### remove()
> **remove**(): `void`
Remove a node from its parent and siblings. Children are not affected.
###### Returns
`void`
###### Defined in
[index.d.ts:72](https://github.com/umijs/niddle/blob/main/index.d.ts#L72)
##### removeAllAttributes()
> **removeAllAttributes**(): `void`
Remove all attributes of this node.
###### Returns
`void`
###### Defined in
[index.d.ts:92](https://github.com/umijs/niddle/blob/main/index.d.ts#L92)
##### removeAttribute()
> **removeAttribute**(`name`): `void`
Remove an attribute of this node by name.
###### Parameters
| Parameter | Type |
| ------ | ------ |
| `name` | `string` |
###### Returns
`void`
###### Defined in
[index.d.ts:87](https://github.com/umijs/niddle/blob/main/index.d.ts#L87)
##### select()
###### select(selectors)
> **select**(`selectors`): [`NodeRepr`](README.md#noderepr)
Select the the fist node that match the given css selector, like document.querySelector.
###### Parameters
| Parameter | Type |
| ------ | ------ |
| `selectors` | `string` |
###### Returns
[`NodeRepr`](README.md#noderepr)
###### Defined in
[index.d.ts:97](https://github.com/umijs/niddle/blob/main/index.d.ts#L97)
###### select(selectors)
> **select**(`selectors`): [`NodeRepr`](README.md#noderepr)
###### Parameters
| Parameter | Type |
| ------ | ------ |
| `selectors` | `"html"` |
###### Returns
[`NodeRepr`](README.md#noderepr)
###### Defined in
[index.d.ts:150](https://github.com/umijs/niddle/blob/main/index.d.ts#L150)
###### select(selectors)
> **select**(`selectors`): [`NodeRepr`](README.md#noderepr)
###### Parameters
| Parameter | Type |
| ------ | ------ |
| `selectors` | `"head"` |
###### Returns
[`NodeRepr`](README.md#noderepr)
###### Defined in
[index.d.ts:151](https://github.com/umijs/niddle/blob/main/index.d.ts#L151)
###### select(selectors)
> **select**(`selectors`): [`NodeRepr`](README.md#noderepr)
###### Parameters
| Parameter | Type |
| ------ | ------ |
| `selectors` | `"body"` |
###### Returns
[`NodeRepr`](README.md#noderepr)
###### Defined in
[index.d.ts:152](https://github.com/umijs/niddle/blob/main/index.d.ts#L152)
##### selectAll()
> **selectAll**(`selectors`): [`NodeRepr`](README.md#noderepr)[]
Select all nodes that match the given css selector, like document.querySelectorAll.
###### Parameters
| Parameter | Type |
| ------ | ------ |
| `selectors` | `string` |
###### Returns
[`NodeRepr`](README.md#noderepr)[]
###### Defined in
[index.d.ts:102](https://github.com/umijs/niddle/blob/main/index.d.ts#L102)
##### setAttribute()
> **setAttribute**(`name`, `value`): `void`
Assign an attribute K-V to this node
###### Parameters
| Parameter | Type |
| ------ | ------ |
| `name` | `string` |
| `value` | `string` |
###### Returns
`void`
###### Defined in
[index.d.ts:77](https://github.com/umijs/niddle/blob/main/index.d.ts#L77)
##### setAttributes()
> **setAttributes**(`attrs`): `void`
Assign attributes K-V object to this node.
###### Parameters
| Parameter | Type |
| ------ | ------ |
| `attrs` | `Record`\<`string`, `string`\> |
###### Returns
`void`
###### Defined in
[index.d.ts:82](https://github.com/umijs/niddle/blob/main/index.d.ts#L82)
##### text()
> **text**(): `string`
Get all text nodes content of this node, including its all descendants and itelf.
###### Returns
`string`
###### Defined in
[index.d.ts:132](https://github.com/umijs/niddle/blob/main/index.d.ts#L132)
## Functions
### parse()
> **parse**(`html`): [`NodeRepr`](README.md#noderepr)
Parse string input to a html tree, return the root node.
#### Parameters
| Parameter | Type |
| ------ | ------ |
| `html` | `string` |
#### Returns
[`NodeRepr`](README.md#noderepr)
#### Defined in
[index.d.ts:10](https://github.com/umijs/niddle/blob/main/index.d.ts#L10)