Security News
NIST Misses 2024 Deadline to Clear NVD Backlog
NIST has failed to meet its self-imposed deadline of clearing the NVD's backlog by the end of the fiscal year. Meanwhile, CVE's awaiting analysis have increased by 33% since June.
hast-util-parse-selector
Advanced tools
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.
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);
postcss-selector-parser is a parser for CSS selectors that allows for manipulation and inspection of CSS selectors. It is similar to hast-util-parse-selector in its parsing capabilities but is tailored more towards CSS processing and transformation rather than converting selectors into HAST nodes.
css-what is a fast CSS selector parser that converts selectors into an abstract syntax tree (AST). While it shares the parsing aspect with hast-util-parse-selector, css-what focuses on CSS selectors for the purpose of selector querying and manipulation rather than generating HAST nodes.
Parse a simple CSS selector to a HAST node.
npm:
npm install hast-util-parse-selector
hast-util-parse-selector is also available as an AMD, CommonJS, and globals module, uncompressed and compressed.
Dependencies:
var parseSelector = require('hast-util-parse-selector');
Parse:
var node = parseSelector('.quux#bar.baz.qux');
Yields:
{
"type": "element",
"tagName": "div",
"properties": {
"id": "bar",
"className": [
"quux",
"baz",
"qux"
]
},
"children": []
}
parseSelector([selector])
Parse a CSS selector
to a HAST node.
selector (string
, optional). 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.
Returns: Node
— A HAST node.
FAQs
hast utility to create an element from a simple CSS selector
We found that hast-util-parse-selector demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
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.
Security News
NIST has failed to meet its self-imposed deadline of clearing the NVD's backlog by the end of the fiscal year. Meanwhile, CVE's awaiting analysis have increased by 33% since June.
Security News
Cloudflare has launched a setup wizard allowing users to easily create and manage a security.txt file for vulnerability disclosure on their websites.
Security News
The Socket Research team breaks down a malicious npm package targeting the legitimate DOMPurify library. It uses obfuscated code to hide that it is exfiltrating browser and crypto wallet data.