Socket
Socket
Sign inDemoInstall

hast-util-parse-selector

Package Overview
Dependencies
2
Maintainers
2
Versions
14
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    hast-util-parse-selector

hast utility to create an element from a simple CSS selector


Version published
Weekly downloads
5.1M
decreased by-0.28%
Maintainers
2
Install size
29.1 kB
Created
Weekly downloads
 

Package description

What is hast-util-parse-selector?

The hast-util-parse-selector npm package is a utility for parsing CSS selectors into HAST (Hypertext Abstract Syntax Tree) elements. It allows developers to convert CSS-like selectors into HAST nodes, which can then be manipulated or inspected within JavaScript. This is particularly useful when working with virtual DOMs or when generating HTML content dynamically.

What are hast-util-parse-selector's main functionalities?

Parsing simple selectors

This feature allows for the parsing of simple CSS selectors into HAST nodes. The example demonstrates parsing a selector for a `div` element with an ID of `id` and a class of `className`.

const parseSelector = require('hast-util-parse-selector');
const h = parseSelector('div#id.className');
console.log(h);

Parsing selectors with attributes

This feature enables parsing of selectors that include attributes. The example shows how to parse a selector for an `input` element with a `type` attribute of `text` and a class of `className`.

const parseSelector = require('hast-util-parse-selector');
const h = parseSelector('input[type=text].className');
console.log(h);

Customizing the tag name

This feature allows for customization of the tag name when it is not specified in the selector. The example demonstrates setting a default tag name of `span` for a selector that only specifies a class name.

const parseSelector = require('hast-util-parse-selector');
const h = parseSelector('.className', {tagName: 'span'});
console.log(h);

Other packages similar to hast-util-parse-selector

Readme

Source

hast-util-parse-selector

Build Coverage Downloads Size Sponsors Backers Chat

hast utility to create an element from a simple CSS selector.

Contents

What is this?

This package is a tiny utility that helps create elements.

When should I use this?

This utility is super niche. You probably want the more powerful hastscript or hast-util-from-selector

Install

This package is ESM only. In Node.js (version 16+), install with npm:

npm install hast-util-parse-selector

In Deno with esm.sh:

import {parseSelector} from 'https://esm.sh/hast-util-parse-selector@4'

In browsers with esm.sh:

<script type="module">
  import {parseSelector} from 'https://esm.sh/hast-util-parse-selector@4?bundle'
</script>

Use

import {parseSelector} from 'hast-util-parse-selector'

console.log(parseSelector('.quux#bar.baz.qux'))

Yields:

{ type: 'element',
  tagName: 'div',
  properties: { id: 'bar', className: [ 'quux', 'baz', 'qux' ] },
  children: [] }

API

This package exports the identifier parseSelector. There is no default export.

parseSelector(selector?[, defaultTagName])

Create a hast element from a simple CSS selector.

Parameters
  • selector (string, optional) — simple CSS selector, can contain a tag name (foo), classes (.bar), and an ID (#baz), multiple classes are allowed, uses the last ID if multiple IDs are found
  • defaultTagName (string, default: 'div') — tag name to use if selector does not specify one
Returns

Built element (Element).

Types

This package is fully typed with TypeScript. It exports no additional types.

Compatibility

Projects maintained by the unified collective are compatible with maintained versions of Node.js.

When we cut a new major release, we drop support for unmaintained versions of Node. This means we try to keep the current release line, hast-util-parse-selector@^4, compatible with Node.js 16.

Security

Improper use of the selector or defaultTagName can open you up to a cross-site scripting (XSS) attack as the value of tagName, when resolving to script, injects a script element into the syntax tree.

Do not use user input in selector or use hast-util-santize.

Contribute

See contributing.md in syntax-tree/.github for ways to get started. See support.md for ways to get help.

This project has a code of conduct. By interacting with this repository, organization, or community you agree to abide by its terms.

License

MIT © Titus Wormer

Keywords

FAQs

Last updated on 01 Aug 2023

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc