forked from enviPath/enviPy
Current Dev State
This commit is contained in:
114
static/js/ketcher2/node_modules/gulp-svg2ttf/src/index.js
generated
vendored
Normal file
114
static/js/ketcher2/node_modules/gulp-svg2ttf/src/index.js
generated
vendored
Normal file
@ -0,0 +1,114 @@
|
||||
'use strict';
|
||||
|
||||
const path = require('path');
|
||||
const Stream = require('readable-stream');
|
||||
const gutil = require('gulp-util');
|
||||
const BufferStreams = require('bufferstreams');
|
||||
const svg2ttf = require('svg2ttf');
|
||||
|
||||
const PLUGIN_NAME = 'gulp-svg2ttf';
|
||||
|
||||
// File level transform function
|
||||
function svg2ttfTransform(options) {
|
||||
// Return a callback function handling the buffered content
|
||||
return function svg2ttfTransformCb(err, buf, cb) {
|
||||
|
||||
// Handle any error
|
||||
if(err) {
|
||||
cb(new gutil.PluginError(PLUGIN_NAME, err, { showStack: true }));
|
||||
return;
|
||||
}
|
||||
|
||||
// Use the buffered content
|
||||
try {
|
||||
buf = Buffer.from(svg2ttf(String(buf), {
|
||||
ts: options.timestamp,
|
||||
copyright: options.copyright,
|
||||
version: options.version,
|
||||
}).buffer);
|
||||
} catch (err2) {
|
||||
cb(new gutil.PluginError(PLUGIN_NAME, err2, { showStack: true }));
|
||||
return;
|
||||
}
|
||||
cb(null, buf);
|
||||
};
|
||||
}
|
||||
|
||||
// Plugin function
|
||||
function svg2ttfGulp(options) {
|
||||
const stream = new Stream.Transform({ objectMode: true });
|
||||
|
||||
options = options || {};
|
||||
options.ignoreExt = options.ignoreExt || false;
|
||||
options.clone = options.clone || false;
|
||||
options.timestamp = 'number' === typeof options.timestamp ?
|
||||
options.timestamp :
|
||||
{}.undef;
|
||||
options.copyright = 'string' === typeof options.copyright ?
|
||||
options.copyright :
|
||||
{}.undef;
|
||||
|
||||
stream._transform = function svg2ttfTransformStream(file, unused, done) {
|
||||
let cntStream;
|
||||
let newFile;
|
||||
|
||||
// When null just pass through
|
||||
if(file.isNull()) {
|
||||
stream.push(file); done();
|
||||
return;
|
||||
}
|
||||
|
||||
// If the ext doesn't match, pass it through
|
||||
if((!options.ignoreExt) && '.svg' !== path.extname(file.path)) {
|
||||
stream.push(file); done();
|
||||
return;
|
||||
}
|
||||
|
||||
// Fix for the vinyl clone method...
|
||||
// https://github.com/wearefractal/vinyl/pull/9
|
||||
if(options.clone) {
|
||||
if(file.isBuffer()) {
|
||||
stream.push(file.clone());
|
||||
} else {
|
||||
cntStream = file.contents;
|
||||
file.contents = null;
|
||||
newFile = file.clone();
|
||||
file.contents = cntStream.pipe(new Stream.PassThrough());
|
||||
newFile.contents = cntStream.pipe(new Stream.PassThrough());
|
||||
stream.push(newFile);
|
||||
}
|
||||
}
|
||||
|
||||
file.path = gutil.replaceExtension(file.path, '.ttf');
|
||||
|
||||
// Buffers
|
||||
if(file.isBuffer()) {
|
||||
try {
|
||||
file.contents = Buffer.from(svg2ttf(String(file.contents), {
|
||||
ts: options.timestamp,
|
||||
copyright: options.copyright,
|
||||
version: options.version,
|
||||
}).buffer);
|
||||
} catch (err) {
|
||||
stream.emit('error',
|
||||
new gutil.PluginError(PLUGIN_NAME, err, { showStack: true }));
|
||||
}
|
||||
|
||||
// Streams
|
||||
} else {
|
||||
file.contents = file.contents.pipe(new BufferStreams(svg2ttfTransform(options)));
|
||||
}
|
||||
|
||||
stream.push(file);
|
||||
done();
|
||||
};
|
||||
|
||||
return stream;
|
||||
|
||||
}
|
||||
|
||||
// Export the file level transform function for other plugins usage
|
||||
svg2ttfGulp.fileTransform = svg2ttfTransform;
|
||||
|
||||
// Export the plugin main function
|
||||
module.exports = svg2ttfGulp;
|
||||
Reference in New Issue
Block a user