Exposes inlined stylesheet URIs.
authorJakub Pawlowicz <contact@jakubpawlowicz.com>
Wed, 14 Dec 2016 16:19:56 +0000 (17:19 +0100)
committerJakub Pawlowicz <contact@jakubpawlowicz.com>
Fri, 16 Dec 2016 11:00:33 +0000 (12:00 +0100)
Why:

* So the list can be printed in debug mode.

bin/cleancss
lib/clean.js
lib/utils/read-sources.js
test/binary-test.js

index 5f764d6..84285ed 100755 (executable)
@@ -126,6 +126,13 @@ function minify(data) {
       console.error('Minified: %d bytes', minified.stats.minifiedSize);
       console.error('Efficiency: %d%', ~~(minified.stats.efficiency * 10000) / 100.0);
       console.error('Time spent: %dms', minified.stats.timeSpent);
+
+      if (minified.inlinedStylesheets.length > 0) {
+        console.error('Inlined stylesheets:');
+        minified.inlinedStylesheets.forEach(function (uri) {
+          console.error('- %s', uri);
+        });
+      }
     }
 
     outputFeedback(minified.errors, true);
index 091fa0d..7d634d0 100644 (file)
@@ -75,6 +75,7 @@ CleanCSS.prototype.minify = function (input, callback) {
       timeSpent: 0
     },
     errors: [],
+    inlinedStylesheets: [],
     inputSourceMapTracker: inputSourceMapTracker(),
     localOnly: !callback,
     options: this.options,
@@ -127,6 +128,7 @@ function optimize(tokens, context) {
 function withMetadata(output, context) {
   output.stats = calculateStatsFrom(output.styles, context);
   output.errors = context.errors;
+  output.inlinedStylesheets = context.inlinedStylesheets;
   output.warnings = context.warnings;
 
   return output;
index 418ed6e..10c4f9d 100644 (file)
@@ -142,7 +142,7 @@ function inlineImports(tokens, externalContext, parentInlinerContext, callback)
     callback: callback,
     errors: externalContext.errors,
     externalContext: externalContext,
-    imported: parentInlinerContext.imported || [],
+    inlinedStylesheets: parentInlinerContext.inlinedStylesheets || externalContext.inlinedStylesheets,
     inlinerOptions: externalContext.options.inliner,
     isRemote: parentInlinerContext.isRemote || false,
     localOnly: externalContext.localOnly,
@@ -193,7 +193,7 @@ function inlineRemoteStylesheet(uri, mediaQuery, metadata, inlinerContext) {
   var isAllowed = isAllowedResource(uri, true, inlinerContext.processImportFrom);
   var originalUri = uri;
 
-  if (inlinerContext.imported.indexOf(uri) > -1) {
+  if (inlinerContext.inlinedStylesheets.indexOf(uri) > -1) {
     inlinerContext.warnings.push('Ignoring remote @import of "' + uri + '" as it has already been imported.');
     inlinerContext.sourceTokens = inlinerContext.sourceTokens.slice(1);
     return doInlineImports(inlinerContext);
@@ -217,7 +217,7 @@ function inlineRemoteStylesheet(uri, mediaQuery, metadata, inlinerContext) {
     return doInlineImports(inlinerContext);
   }
 
-  inlinerContext.imported.push(uri);
+  inlinerContext.inlinedStylesheets.push(uri);
 
   loadRemoteResource(uri, inlinerContext.inlinerOptions, function (error, importedStyles) {
     var sourceHash = {};
@@ -262,7 +262,7 @@ function inlineLocalStylesheet(uri, mediaQuery, metadata, inlinerContext) {
   var isAllowed = isAllowedResource(uri, false, inlinerContext.processImportFrom);
   var sourceHash = {};
 
-  if (inlinerContext.imported.indexOf(absolutePath) > -1) {
+  if (inlinerContext.inlinedStylesheets.indexOf(absolutePath) > -1) {
     inlinerContext.warnings.push('Ignoring local @import of "' + uri + '" as it has already been imported.');
   } else if (!fs.existsSync(absolutePath) || !fs.statSync(absolutePath).isFile()) {
     inlinerContext.errors.push('Ignoring local @import of "' + uri + '" as resource is missing.');
@@ -275,7 +275,7 @@ function inlineLocalStylesheet(uri, mediaQuery, metadata, inlinerContext) {
     inlinerContext.outputTokens = inlinerContext.outputTokens.concat(inlinerContext.sourceTokens.slice(0, 1));
   } else {
     importedStyles = fs.readFileSync(absolutePath, 'utf-8');
-    inlinerContext.imported.push(absolutePath);
+    inlinerContext.inlinedStylesheets.push(absolutePath);
 
     sourceHash[relativeToCurrentPath] = {
       styles: importedStyles
index d7fe3fd..1653c88 100644 (file)
@@ -113,7 +113,7 @@ vows.describe('./bin/cleancss')
     })
   })
   .addBatch({
-    'piped with debug info on inlining': pipedContext('@import url(test/fixtures/imports-min.css);', '-d', {
+    'piped with debug info on inlining 123': pipedContext('@import url(test/fixtures/imports-min.css);', '-d', {
       'should output inlining info': function (error, stdout, stderr) {
         assert.include(stderr, path.join(process.cwd(), 'test/fixtures/imports-min.css'));
       }