get-sass-vars-sync
v4.0.1
Published
Get Sass variables synchronously as JSON object
Downloads
4
Readme
get-sass-vars-sync
Get Sass variables synchronously as JSON object.
Install
npm install get-sass-vars-sync node-sass --save-dev
The sass-loader requires node-sass
as peerDependency
.
Thus you are able to specify the required versions accurately.
Usage
const fs = require('fs');
const sassVarsSync = require('get-sass-vars-sync').default;
sassVarsSync(fs.readFileSync('./index.scss', 'utf-8'))
.then(function ( json ) {
console.log(json);
/* {
"$foo": "16px",
"$bar": "17.6px",
"$baz": 42,
"$foo-bar": "#666",
"$foo-bar-baz": "#262626",
"$foo-bar-baz-bad": "#123",
"$grault": [1, 2, "3", "4px", "42%", "1.23457px", [4, 5, 6], {"foo": "bar baz"}],
"$garply": {"foo": 1, "bar": [2, 3], "baz": "3 3 3"},
"$qux": false,
"$fred": true,
"$corgle": null
} */
});
index.scss
$foo: 16px;
$bar: $foo * 1.1;
$baz: 42;
$foo-bar: #666;
$foo-bar-baz: darken($foo-bar, 25%);
$foo-bar-baz-bad: #123 !default;
$grault: 1, 2, "3", 4px, 42%, 1.23456789px, (4,5,6), (foo: "bar baz");
$garply: (
foo: 1,
bar: (2, 3),
baz: "3 3 3"
);
$qux: false;
$fred: true;
$corgle: null;
.nested {
.selector {
$nested-var: thud;
}
}
API
sassVarsSync(str, options)
Returns: Object
Gets Sass variables from Sass string.
Only top-level variables will be considered, anything inside selector or at-rule is ignored. PR welcome.
str
Type: String
Sass input string.
opts
Type: Object
camelize
Type: Boolean
Default: false
Camelize first-level JSON object keys and strip inital $
(e.g. $foo-bar
will become fooBar
).
sassOptions
Type: Object
Related
- get-sass-vars - Thanks you for inspiration.
Contribution
Feel free to push your code if you agree with publishing under the MIT license.