Files
hudozka/node_modules/gulp-autoprefixer/index.js
T
tmshv a71eb79001 + gulp-autoprefixer node module;
= package.json gulp-autoprifixer field;
2014-03-15 14:42:39 +04:00

59 lines
1.7 KiB
JavaScript

/* jshint node:true */
'use strict';
var prefix = require('autoprefixer'),
gutil = require('gulp-util'),
transform = require('stream').Transform,
bufferstreams = require('bufferstreams'),
PLUGIN_NAME = 'gulp-autoprefixer';
function autoprefixerTransform(opts) {
// Returns a callback that handles the buffered content
return function(err, buffer, callback) {
if (err) {
callback(gutil.PluginError(PLUGIN_NAME, err));
}
var prefixed = prefix(opts).process(String(buffer)).css;
callback(null, new Buffer(prefixed));
};
}
function gulpautoprefixer() {
var stream = new transform({ objectMode: true }),
opts = arguments.length > 0 ? [].slice.call(arguments, 0) : ['> 1%','last 2 versions','ff 17','opera 12.1'];
stream._transform = function(file, unused, done) {
// Pass through if null
if (file.isNull()) {
stream.push(file);
done();
return;
}
if (file.isStream()) {
try {
file.contents = file.contents.pipe(new bufferstreams(autoprefixerTransform(opts)));
} catch (err) {
err.fileName = file.path;
stream.emit('error', new gutil.PluginError('gulp-autoprefixer', err));
}
stream.push(file);
done();
} else {
try {
var prefixed = prefix(opts).process(String(file.contents)).css;
file.contents = new Buffer(prefixed);
} catch (err) {
err.fileName = file.path;
stream.emit('error', new gutil.PluginError('gulp-autoprefixer', err));
}
stream.push(file);
done();
}
};
return stream;
}
gulpautoprefixer.autoprefixerTransform = autoprefixerTransform;
module.exports = gulpautoprefixer;