@blackglory/query
v0.5.7
Published
A module for querying elements from pages
Downloads
705
Readme
query
A module for querying elements from pages.
Install
npm install --save @blackglory/query
# or
yarn add @blackglory/query
Usage
import { query, css, xpath } from '@blackglory/query'
const elements = query(
css`main`
, xpath`.//h2[text()="Title"]`
, xpath`../div`
)
API
type ISelectorResult =
| null
| undefined
| Node
| Iterable<Node>
type ISelector =
| ((node: Node) => ISelectorResult)
| ((this: Document, node: Node) => ISelectorResult)
| ISelector[]
query
function query<T extends Node>(
this: void | Document
, root: Node | Iterable<Node>
, ...selectors: ISelector[]
): T | undefined
function query<T extends Node>(
this: void | Document
, ...selectors: [ISelector, ...ISelector[]]
): T | undefined
queryAll
function queryAll<T extends Node>(
this: void | Document
, root: Node | Iterable<Node>
, ...selectors: ISelector[]
): T[]
function queryAll<T extends Node>(
this: void | Document
, ...selectors: [ISelector, ...ISelector[]]
): T[]
Selectors
css
function css<T extends Element>(
strings: TemplateStringsArray
, ...values: string[]
): (node: Node) => Iterable<T>
function css<T extends Element>(
selector: string
): (node: Node) => Iterable<T>
xpath
function xpath<T extends Node>(
strings: TemplateStringsArray
, ...values: string[]
): (this: Document, node: Node) => Iterable<T>
function xpath<T extends Node>(
expression: string
): (this: Document, node: Node) => Iterable<T>
ancestor
function ancestor<T extends Node & ParentNode>(
predicate: (node: Node, nth: number) => unknown = () => true
): (node: Node) => T | undefined
nthAncestor
function nthAncestor<T extends Node>(nth: number): (node: Node) => T | undefined
nextSibling
function nextSibling<T extends ChildNode>(
predicate: (node: Node, nth: number) => unknown = () => true
): (node: Node) => T | undefined
previousSibling
function previousSibling<T extends ChildNode>(
predicate: (node: Node, nth: number) => unknown = () => true
): (node: Node) => T | undefined
nextNthSibling
function nextNthSibling<T extends ChildNode>(
nth: number
): (node: Node) => T | undefined
previousNthSibling
function previousNthSibling<T extends ChildNode>(
nth: number
): (node: Node) => T | undefined
nextElementSibling
function nextElementSibling<T extends Element>(
predicate: (node: Node, nth: number) => unknown = () => true
): (node: Node) => T | undefined
previousElementSibling
function previousElementSibling<T extends Element>(
predicate: (node: Node, nth: number) => unknown = () => true
): (node: Node) => T | undefined
nextNthElementSibling
function nextNthElementSibling<T extends Element>(
nth: number
): (node: Node) => T | undefined
previousNthElementSibling
function previousNthElementSibling<T extends Element>(
nth: number
): (node: Node) => T | undefined
followingSiblings
function followingSiblings<T extends ChildNode>(
predicate: (node: ChildNode, nth: number) => unknown = () => true
): (node: Node) => Iterable<T>
precedingSiblings
function precedingSiblings<T extends ChildNode>(
predicate: (node: ChildNode, nth: number) => unknown = () => true
): (node: Node) => Iterable<T>
followingElementSiblings
function followingElementSiblings<T extends Element>(
predicate: (node: Element, nth: number) => unknown = () => true
): (node: Node) => Iterable<T>
precedingElementSibling
function precedingElementSibling<T extends Element>(
predicate: (node: Element, nth: number) => unknown = () => true
): (node: Node) => Iterable<T>