forked from public/fvtt-cthulhu-eternal
Initial import with skill sheet working
This commit is contained in:
107
node_modules/vinyl-fs/lib/codecs.js
generated
vendored
Normal file
107
node_modules/vinyl-fs/lib/codecs.js
generated
vendored
Normal file
@@ -0,0 +1,107 @@
|
||||
'use strict';
|
||||
|
||||
/* eslint-disable new-cap */
|
||||
|
||||
var iconv = require('iconv-lite');
|
||||
// TODO: Reaching into iconv-lite is fragile
|
||||
var StripBOM = require('iconv-lite/lib/bom-handling').StripBOM;
|
||||
var Transform = require('streamx').Transform;
|
||||
|
||||
var DEFAULT_ENCODING = require('./constants').DEFAULT_ENCODING;
|
||||
|
||||
function Codec(codec, encoding) {
|
||||
this.codec = codec;
|
||||
this.enc = codec.enc || encoding;
|
||||
this.bomAware = codec.bomAware || false;
|
||||
}
|
||||
|
||||
function getEncoder(codec) {
|
||||
return new codec.encoder(null, codec);
|
||||
}
|
||||
|
||||
Codec.prototype.encode = function (str) {
|
||||
var encoder = getEncoder(this.codec);
|
||||
var buf = encoder.write(str);
|
||||
var end = encoder.end();
|
||||
return end && end.length > 0 ? Buffer.concat(buf, end) : buf;
|
||||
};
|
||||
|
||||
Codec.prototype.encodeStream = function () {
|
||||
var encoder = getEncoder(this.codec);
|
||||
return new Transform({
|
||||
transform: function (str, cb) {
|
||||
var buf = encoder.write(str);
|
||||
if (buf && buf.length) {
|
||||
this.push(buf);
|
||||
}
|
||||
cb();
|
||||
},
|
||||
flush: function (cb) {
|
||||
var buf = encoder.end();
|
||||
if (buf && buf.length) {
|
||||
this.push(buf);
|
||||
}
|
||||
cb();
|
||||
},
|
||||
});
|
||||
};
|
||||
|
||||
function getDecoder(codec) {
|
||||
return new codec.decoder(null, codec);
|
||||
}
|
||||
|
||||
Codec.prototype.decode = function (buf, options) {
|
||||
var decoder = getDecoder(this.codec);
|
||||
if (options && options.removeBOM) {
|
||||
decoder = new StripBOM(decoder);
|
||||
}
|
||||
var str = decoder.write(buf);
|
||||
var end = decoder.end();
|
||||
return end ? str + end : str;
|
||||
};
|
||||
|
||||
Codec.prototype.decodeStream = function (options) {
|
||||
var decoder = getDecoder(this.codec);
|
||||
if (options && options.removeBOM) {
|
||||
decoder = new StripBOM(decoder);
|
||||
}
|
||||
return new Transform({
|
||||
transform: function (buf, cb) {
|
||||
var str = decoder.write(buf);
|
||||
if (str && str.length) {
|
||||
this.push(str);
|
||||
}
|
||||
cb();
|
||||
},
|
||||
flush: function (cb) {
|
||||
var str = decoder.end();
|
||||
if (str && str.length) {
|
||||
this.push(str);
|
||||
}
|
||||
cb();
|
||||
},
|
||||
});
|
||||
};
|
||||
|
||||
var cache = {};
|
||||
|
||||
function getCodec(encoding) {
|
||||
var codec = cache[encoding];
|
||||
if (!!codec || !encoding || Object.hasOwnProperty.call(cache, encoding)) {
|
||||
return codec;
|
||||
}
|
||||
|
||||
try {
|
||||
codec = new Codec(iconv.getCodec(encoding), encoding);
|
||||
} catch (err) {
|
||||
// Unsupported codec
|
||||
}
|
||||
|
||||
cache[encoding] = codec;
|
||||
return codec;
|
||||
}
|
||||
|
||||
// Pre-load default encoding
|
||||
getCodec(DEFAULT_ENCODING);
|
||||
|
||||
module.exports = getCodec;
|
||||
Reference in New Issue
Block a user