This commit is contained in:
60
node_modules/licia/convertBin.js
generated
vendored
Normal file
60
node_modules/licia/convertBin.js
generated
vendored
Normal file
@@ -0,0 +1,60 @@
|
||||
var isStr = require('./isStr');
|
||||
var base64 = require('./base64');
|
||||
var isArrBuffer = require('./isArrBuffer');
|
||||
var isArr = require('./isArr');
|
||||
var isBuffer = require('./isBuffer');
|
||||
var type = require('./type');
|
||||
var lowerCase = require('./lowerCase');
|
||||
exports = function(bin, t) {
|
||||
var result;
|
||||
t = lowerCase(t);
|
||||
if (isStr(bin)) {
|
||||
result = new Uint8Array(base64.decode(bin));
|
||||
} else if (isArrBuffer(bin)) {
|
||||
bin = bin.slice(0);
|
||||
result = new Uint8Array(bin);
|
||||
} else if (isArr(bin)) {
|
||||
result = new Uint8Array(bin);
|
||||
} else if (type(bin) === 'uint8array') {
|
||||
result = bin.slice(0);
|
||||
} else if (isBuffer(bin)) {
|
||||
result = new Uint8Array(bin.length);
|
||||
for (var i = 0; i < bin.length; i++) {
|
||||
result[i] = bin[i];
|
||||
}
|
||||
}
|
||||
if (result) {
|
||||
switch (t) {
|
||||
case 'base64':
|
||||
result = base64.encode(result);
|
||||
break;
|
||||
case 'arraybuffer':
|
||||
result = result.buffer;
|
||||
break;
|
||||
case 'array':
|
||||
result = [].slice.call(result);
|
||||
break;
|
||||
case 'buffer':
|
||||
result = Buffer.from(result);
|
||||
break;
|
||||
case 'blob':
|
||||
result = new Blob([result.buffer]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
};
|
||||
exports.blobToArrBuffer = function(blob) {
|
||||
return new Promise(function(resolve, reject) {
|
||||
var fileReader = new FileReader();
|
||||
fileReader.onload = function(e) {
|
||||
resolve(e.target.result);
|
||||
};
|
||||
fileReader.onerror = function(err) {
|
||||
reject(err);
|
||||
};
|
||||
fileReader.readAsArrayBuffer(blob);
|
||||
});
|
||||
};
|
||||
|
||||
module.exports = exports;
|
||||
Reference in New Issue
Block a user