| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 | 
							- 'use strict';
 
- const fancyLog = require('fancy-log');
 
- const PluginError = require('plugin-error');
 
- const through = require('through2');
 
- const applySourceMap = require('vinyl-sourcemaps-apply');
 
- const autoprefixer = require('autoprefixer');
 
- const postcss = require('postcss');
 
- module.exports = options => {
 
- 	return through.obj((file, encoding, callback) => {
 
- 		if (file.isNull()) {
 
- 			callback(null, file);
 
- 			return;
 
- 		}
 
- 		if (file.isStream()) {
 
- 			callback(new PluginError('gulp-autoprefixer', 'Streaming not supported'));
 
- 			return;
 
- 		}
 
- 		postcss(autoprefixer(options)).process(file.contents.toString(), {
 
- 			map: file.sourceMap ? {annotation: false} : false,
 
- 			from: file.path,
 
- 			to: file.path
 
- 		}).then(result => {
 
- 			file.contents = Buffer.from(result.css);
 
- 			if (result.map && file.sourceMap) {
 
- 				const map = result.map.toJSON();
 
- 				map.file = file.relative;
 
- 				map.sources = map.sources.map(() => file.relative);
 
- 				applySourceMap(file, map);
 
- 			}
 
- 			const warnings = result.warnings();
 
- 			if (warnings.length > 0) {
 
- 				fancyLog('gulp-autoprefixer:', '\n  ' + warnings.join('\n  '));
 
- 			}
 
- 			setImmediate(callback, null, file);
 
- 		}).catch(error => {
 
- 			const cssError = error.name === 'CssSyntaxError';
 
- 			if (cssError) {
 
- 				error.message += error.showSourceCode();
 
- 			}
 
- 			// Prevent stream unhandled exception from being suppressed by Promise
 
- 			setImmediate(callback, new PluginError('gulp-autoprefixer', error, {
 
- 				fileName: file.path,
 
- 				showStack: !cssError
 
- 			}));
 
- 		});
 
- 	});
 
- };
 
 
  |