Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
style-to-object
Advanced tools
The style-to-object npm package is used to convert inline CSS style strings into JavaScript objects. This can be particularly useful when working with React or other JavaScript frameworks that expect style information to be provided as objects rather than strings.
Convert CSS string to JavaScript object
This feature allows you to convert a CSS style string into a JavaScript object. The keys of the object are camelCased versions of the CSS property names, and the values are the corresponding CSS values as strings.
const styleToObject = require('style-to-object');
const styleString = 'color: red; font-size: 14px;';
const styleObject = styleToObject(styleString);
console.log(styleObject);
Similar to style-to-object, css-to-object converts CSS strings into JavaScript objects. The main difference may lie in the API, performance, or additional features provided by the package.
This package is designed to parse CSS strings and may offer more comprehensive parsing capabilities, including selectors and media queries, which goes beyond the inline style conversion provided by style-to-object.
style-parser is another package that can parse inline style strings into objects. It might offer different parsing options or handle edge cases differently compared to style-to-object.
Parse CSS inline style to JavaScript object:
import parse from 'style-to-object';
parse('color: #C0FFEE; background: #BADA55;');
Output:
{ color: '#C0FFEE', background: '#BADA55' }
NPM:
npm install style-to-object --save
Yarn:
yarn add style-to-object
CDN:
<script src="https://unpkg.com/style-to-object@latest/dist/style-to-object.min.js"></script>
<script>
window.StyleToObject(/* string */);
</script>
Import with ES Modules:
import parse from 'style-to-object';
Require with CommonJS:
const parse = require('style-to-object').default;
Parse single declaration:
parse('line-height: 42');
Output:
{ 'line-height': '42' }
Parse multiple declarations:
parse(`
border-color: #ACE;
z-index: 1337;
`);
Output:
{ 'border-color': '#ACE', 'z-index': '1337' }
Parse unknown declarations:
parse('answer: 42;');
Output:
{ 'answer': '42' }
Invalid declarations/arguments:
parse(`
top: ;
right: 1em;
`); // { right: '1em' }
parse(); // null
parse(null); // null
parse(1); // null
parse(true); // null
parse('top:'); // null
parse(':12px'); // null
parse(':'); // null
parse(';'); // null
parse('top'); // throws Error
parse('/*'); // throws Error
If the 2nd argument is a function, then the parser will return null
:
parse('color: #f00', () => {}); // null
But the function will iterate through each declaration:
parse('color: #f00', (name, value, declaration) => {
console.log(name); // 'color'
console.log(value); // '#f00'
console.log(declaration); // { type: 'declaration', property: 'color', value: '#f00' }
});
This makes it easy to customize the output:
const style = `
color: red;
background: blue;
`;
const output = [];
function iterator(name, value) {
output.push([name, value]);
}
parse(style, iterator);
console.log(output); // [['color', 'red'], ['background', 'blue']]
Migrated to TypeScript. Iterator excludes Comment
. CommonJS requires the .default
key:
const parse = require('style-to-object').default;
Release and publish are automated by Release Please.
FAQs
Parse CSS inline style to JavaScript object.
The npm package style-to-object receives a total of 6,014,263 weekly downloads. As such, style-to-object popularity was classified as popular.
We found that style-to-object demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer 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.
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.