@@ -210,6 +210,60 @@ renameCssSelectors.processCss = (pathString, options, cb) => {
210210 renameCssSelectors . process ( pathString , options , cb ) ;
211211} // /processCss
212212
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+
213267/**
214268 * @typedef {Object } generateMappingOptions
215269 * @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