forked from enviPath/enviPy
Current Dev State
This commit is contained in:
106
static/js/ketcher2/node_modules/gulp-iconfont/src/index.js
generated
vendored
Normal file
106
static/js/ketcher2/node_modules/gulp-iconfont/src/index.js
generated
vendored
Normal file
@ -0,0 +1,106 @@
|
||||
'use strict';
|
||||
|
||||
var duplexer = require('plexer');
|
||||
var svgicons2svgfont = require('gulp-svgicons2svgfont');
|
||||
var svg2ttf = require('gulp-svg2ttf');
|
||||
var ttf2eot = require('gulp-ttf2eot');
|
||||
var ttf2woff = require('gulp-ttf2woff');
|
||||
var ttf2woff2 = require('gulp-ttf2woff2');
|
||||
var cond = require('gulp-cond');
|
||||
var filter = require('streamfilter');
|
||||
var spawn = require('gulp-spawn');
|
||||
|
||||
function gulpFontIcon(options) {
|
||||
var inStream = null;
|
||||
var outStream = null;
|
||||
var duplexStream = null;
|
||||
|
||||
options = options || {};
|
||||
options.formats = options.formats || ['ttf', 'eot', 'woff'];
|
||||
// Generating SVG font and saving her
|
||||
inStream = svgicons2svgfont(options);
|
||||
// Generating TTF font and saving her
|
||||
outStream = inStream
|
||||
.pipe(svg2ttf({
|
||||
clone: -1 !== options.formats.indexOf('svg'),
|
||||
timestamp: options.timestamp,
|
||||
}).on('error', function(err) {
|
||||
outStream.emit('error', err);
|
||||
}))
|
||||
// TTFAutoHint
|
||||
.pipe(cond(!!options.autohint, function() {
|
||||
var hintPath = typeof options.autohint === 'string' ? options.autohint : 'ttfautohint';
|
||||
var nonTTFfilter = filter(function(file, unused, cb) {
|
||||
cb(file.path.indexOf('.ttf') !== file.path.length - 4);
|
||||
}, {
|
||||
objectMode: true,
|
||||
restore: true,
|
||||
passthrough: true,
|
||||
});
|
||||
|
||||
return duplexer(
|
||||
{ objectMode: true },
|
||||
nonTTFfilter,
|
||||
nonTTFfilter.pipe(spawn({
|
||||
cmd: '/bin/sh',
|
||||
args: [
|
||||
'-c',
|
||||
'cat | "'+hintPath+'" --symbol --fallback-script=latn' +
|
||||
' --windows-compatibility --no-info /dev/stdin /dev/stdout | cat',
|
||||
],
|
||||
})).pipe(nonTTFfilter.restore)
|
||||
).on('error', function(err) {
|
||||
outStream.emit('error', err);
|
||||
});
|
||||
}))
|
||||
// Generating EOT font
|
||||
.pipe(cond(
|
||||
-1 !== options.formats.indexOf('eot'),
|
||||
function() {
|
||||
return ttf2eot({ clone: true }).on('error', function(err) {
|
||||
outStream.emit('error', err);
|
||||
});
|
||||
}
|
||||
))
|
||||
// Generating WOFF font
|
||||
.pipe(cond(
|
||||
-1 !== options.formats.indexOf('woff'),
|
||||
function() {
|
||||
return ttf2woff({ clone: true }).on('error', function(err) {
|
||||
outStream.emit('error', err);
|
||||
});
|
||||
}
|
||||
))
|
||||
// Generating WOFF2 font
|
||||
.pipe(cond(
|
||||
-1 !== options.formats.indexOf('woff2'),
|
||||
function() {
|
||||
return ttf2woff2({ clone: true }).on('error', function(err) {
|
||||
outStream.emit('error', err);
|
||||
});
|
||||
}
|
||||
))
|
||||
// Filter TTF font if necessary
|
||||
.pipe(cond(
|
||||
-1 === options.formats.indexOf('ttf'),
|
||||
function() {
|
||||
return filter(function(file, unused, cb) {
|
||||
cb(file.path.indexOf('.ttf') === file.path.length - 4);
|
||||
}, {
|
||||
objectMode: true,
|
||||
passthrough: true,
|
||||
});
|
||||
}
|
||||
));
|
||||
|
||||
duplexStream = duplexer({ objectMode: true }, inStream, outStream);
|
||||
|
||||
// Re-emit codepoint mapping event
|
||||
inStream.on('glyphs', function(glyphs) {
|
||||
duplexStream.emit('glyphs', glyphs, options);
|
||||
});
|
||||
|
||||
return duplexStream;
|
||||
}
|
||||
|
||||
module.exports = gulpFontIcon;
|
||||
Reference in New Issue
Block a user