@@ -3,6 +3,7 @@ const glob = require('fast-glob');
3
3
const css = require ( 'css' ) ;
4
4
const { readFileSync } = require ( 'fs-extra' ) ;
5
5
6
+ const { filterObject } = require ( '../shared/utils/objects' ) ;
6
7
const { compileModularCSS } = require ( './compile/modular-css' ) ;
7
8
const { propTypes } = require ( './var-metadata' ) ;
8
9
@@ -12,6 +13,7 @@ const { propTypes } = require('./var-metadata');
12
13
const extractVarsFromSLDS = ( props = { } ) => {
13
14
const { callback, suppressOutput } = props ;
14
15
const cssFolderExists = fs . existsSync ( './.generated/css' ) ;
16
+ const varsAllowPattern = / ^ - - s d s - c / ;
15
17
16
18
// if there's no css folder yet, generate it!
17
19
if ( ! cssFolderExists ) {
@@ -39,7 +41,9 @@ const extractVarsFromSLDS = (props = {}) => {
39
41
40
42
cssFiles . map ( filename => {
41
43
const cssContent = readFileSync ( filename ) . toString ( ) ;
42
- const fileVars = extractVarsFromCSS ( cssContent ) ;
44
+ const fileVars = extractVarsFromCSS ( cssContent , {
45
+ allowPattern : varsAllowPattern
46
+ } ) ;
43
47
44
48
if ( Object . keys ( fileVars ) . length > 0 ) {
45
49
varsData = Object . assign ( fileVars , varsData ) ;
@@ -67,9 +71,10 @@ const extractVarsFromSLDS = (props = {}) => {
67
71
* @param {string } cssData
68
72
* @returns {object }
69
73
*/
70
- const extractVarsFromCSS = cssContent => {
74
+ const extractVarsFromCSS = ( cssContent , options = { } ) => {
71
75
const ast = css . parse ( cssContent ) ;
72
76
const rules = ast . stylesheet . rules . filter ( rule => rule . type === 'rule' ) ;
77
+ const { allowPattern } = options ;
73
78
let list = { } ;
74
79
75
80
rules . map ( rule => {
@@ -121,7 +126,9 @@ const extractVarsFromCSS = cssContent => {
121
126
}
122
127
} ) ;
123
128
124
- return list ;
129
+ return allowPattern
130
+ ? filterObject ( list , key => RegExp ( allowPattern ) . test ( key ) )
131
+ : list ;
125
132
} ;
126
133
127
134
module . exports = {
0 commit comments