npm.io
0.6.0 • Published 9 months ago

@blackglory/query

Licence
MIT
Version
0.6.0
Deps
2
Size
42 kB
Vulns
0
Weekly
0

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>

Keywords