123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- 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;
|