@@ -210,6 +210,60 @@ renameCssSelectors.processCss = (pathString, options, cb) => {
210
210
renameCssSelectors . process ( pathString , options , cb ) ;
211
211
} // /processCss
212
212
213
+ /**
214
+ * The synchronous method of generateMapping
215
+ */
216
+ renameCssSelectors . generateMappingSync = ( pathString , options ) => {
217
+ let fileName = 'renaming_map' ;
218
+ let fileNameExt = '.json' ;
219
+ let mappingName = 'CSS_NAME_MAPPING' ;
220
+
221
+ const optionsDefault = {
222
+ cssMapping : true ,
223
+ cssMappingMin : false ,
224
+ extended : false ,
225
+ json : true ,
226
+ origValues : true ,
227
+ isSelectors : true ,
228
+ overwrite : false
229
+ }
230
+
231
+ options = _ . merge ( optionsDefault , options ) ;
232
+
233
+ if ( options . cssMappingMin ) {
234
+ options . origValues = false ;
235
+ mappingName = 'CSS_NAME_MAPPING_MIN' ;
236
+ fileName = fileName + '_min' ;
237
+ }
238
+
239
+ if ( typeof options . cssMappingMin === 'string' ) {
240
+ mappingName = options . cssMappingMin ;
241
+ fileName = options . cssMappingMin ;
242
+ }
243
+
244
+ if ( typeof options . cssMapping === 'string' ) {
245
+ fileName = options . cssMapping ;
246
+ }
247
+
248
+ const cssMappingArray = rcs . selectorLibrary . getAll ( {
249
+ extended : options . extended ,
250
+ origValues : options . origValues ,
251
+ isSelectors : options . isSelectors
252
+ } ) ;
253
+
254
+ let cssMappingJsonString = rcs . helper . objectToJson ( cssMappingArray ) ;
255
+ let writeData = cssMappingJsonString ;
256
+ let newPath = path . join ( pathString , fileName ) ;
257
+
258
+ // no json
259
+ if ( ! options . json ) {
260
+ writeData = `var ${ mappingName } = ${ cssMappingJsonString } ;`
261
+ fileNameExt = '.js' ;
262
+ }
263
+
264
+ rcs . helper . saveSync ( `${ newPath } ${ fileNameExt } ` , writeData , { overwrite : options . overwrite } ) ;
265
+ } // /generateMappingSync
266
+
213
267
/**
214
268
* @typedef {Object } generateMappingOptions
215
269
* @property {Boolean | String } [cssMapping=true] true will generate the css mapping. A string will generate the css mapping file and the object is called like the string
0 commit comments