forked from enviPath/enviPy
Current Dev State
This commit is contained in:
138
static/js/ketcher2/node_modules/gulp-hb/src/gulp-hb.js
generated
vendored
Normal file
138
static/js/ketcher2/node_modules/gulp-hb/src/gulp-hb.js
generated
vendored
Normal file
@ -0,0 +1,138 @@
|
||||
'use strict';
|
||||
|
||||
var assign = require('object-assign');
|
||||
var columns = require('cli-columns');
|
||||
var gutil = require('gulp-util');
|
||||
var handlebars = require('handlebars');
|
||||
var handlebarsWax = require('handlebars-wax');
|
||||
var through = require('through2');
|
||||
|
||||
function logKeys(file, pairs) {
|
||||
var buf = [];
|
||||
var options = {
|
||||
width: process.stdout.columns - 12
|
||||
};
|
||||
|
||||
pairs.forEach(function (pair) {
|
||||
var key = pair[0];
|
||||
var value = pair[1] || '';
|
||||
|
||||
if (typeof value !== 'string') {
|
||||
value = columns(Object.keys(value), options);
|
||||
}
|
||||
|
||||
buf.push(gutil.colors.grey(' ' + key + ':'));
|
||||
buf.push(value.replace(/^/gm, ' '));
|
||||
});
|
||||
|
||||
console.log(' ' + gutil.colors.green(file.relative));
|
||||
console.log(buf.join('\n'));
|
||||
console.log();
|
||||
}
|
||||
|
||||
function gulpHb(options) {
|
||||
var defaults = {
|
||||
debug: 0
|
||||
};
|
||||
|
||||
options = assign(defaults, options);
|
||||
|
||||
var debug = Number(options.debug) || 0;
|
||||
|
||||
// set { debug: 1 } to output gulp-hb info
|
||||
// set { debug: 2 } to output node-glob info
|
||||
options.debug = debug >= 2;
|
||||
|
||||
// Handlebars
|
||||
|
||||
var hb = options.handlebars || gulpHb.handlebars.create();
|
||||
var wax = handlebarsWax(hb, options);
|
||||
|
||||
if (options.partials) {
|
||||
wax.partials(options.partials);
|
||||
}
|
||||
|
||||
if (options.helpers) {
|
||||
wax.helpers(options.helpers);
|
||||
}
|
||||
|
||||
if (options.decorators) {
|
||||
wax.decorators(options.decorators);
|
||||
}
|
||||
|
||||
if (options.data) {
|
||||
wax.data(options.data);
|
||||
}
|
||||
|
||||
// Stream
|
||||
|
||||
var stream = through.obj(function (file, enc, cb) {
|
||||
if (file.isNull()) {
|
||||
cb(null, file);
|
||||
return;
|
||||
}
|
||||
|
||||
if (file.isStream()) {
|
||||
cb(new gutil.PluginError('gulp-hb', 'Streaming not supported.'));
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
var data = assign({}, file.data);
|
||||
var template = wax.compile(file.contents.toString());
|
||||
|
||||
if (debug) {
|
||||
logKeys(file, [
|
||||
['context', wax.context],
|
||||
['data', data],
|
||||
['decorators', hb.decorators],
|
||||
['helpers', hb.helpers],
|
||||
['partials', hb.partials]
|
||||
]);
|
||||
}
|
||||
|
||||
file.contents = new Buffer(template(data, {
|
||||
data: {
|
||||
file: file
|
||||
}
|
||||
}));
|
||||
|
||||
this.push(file);
|
||||
} catch (err) {
|
||||
this.emit('error', new gutil.PluginError('gulp-hb', err, {
|
||||
file: file,
|
||||
fileName: file.path,
|
||||
showStack: true
|
||||
}));
|
||||
}
|
||||
|
||||
cb();
|
||||
});
|
||||
|
||||
// Proxy
|
||||
|
||||
stream.partials = function () {
|
||||
wax.partials.apply(wax, arguments);
|
||||
return stream;
|
||||
};
|
||||
|
||||
stream.helpers = function () {
|
||||
wax.helpers.apply(wax, arguments);
|
||||
return stream;
|
||||
};
|
||||
|
||||
stream.decorators = function () {
|
||||
wax.decorators.apply(wax, arguments);
|
||||
return stream;
|
||||
};
|
||||
|
||||
stream.data = function () {
|
||||
wax.data.apply(wax, arguments);
|
||||
return stream;
|
||||
};
|
||||
|
||||
return stream;
|
||||
}
|
||||
|
||||
module.exports = gulpHb;
|
||||
module.exports.handlebars = handlebars;
|
||||
Reference in New Issue
Block a user