-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathindex.js
50 lines (42 loc) · 1.44 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
var _ = require( 'lodash' );
module.exports = function( data ) {
if ( ! data ) {
return;
}
data = JSON.parse( data );
function getSCSS( chunk ) {
var scss = '';
if ( typeof chunk === "object" && ! Array.isArray( chunk ) ) {
_.mapKeys(chunk, function(value, key) {
scss += key + ': '
if (typeof value === "object") {
if ( Array.isArray( value ) ) {
scss += '(';
_.each(value, function( val1 ) {
if ( Array.isArray( val1 ) ) {
_.each(val1, function( val2 ) {
scss += val2 + ' ';
});
scss = scss.slice(0, -1) + ', ';
} else {
scss += val1 + ', ';
}
});
scss = scss.slice(0, -2);
scss += ')';
} else {
scss += '(' + getSCSS( value ) + ')';
}
} else {
scss += getSCSS( value );
}
scss += ', ';
});
scss = scss.slice(0, -2);
} else {
scss += chunk;
}
return scss;
}
return '$' + getSCSS( data ) + ';';
}