UNPKG

@yhiot/utils

Version:
102 lines (78 loc) 2.88 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.fetchImageBase64UrlEncode = exports.fetchImageBase64 = exports.fetchImageBuffer = exports.fetchImage = void 0; require("isomorphic-fetch"); var _console = _interopRequireDefault(require("console")); var fetchImage = function fetchImage(url) { if (!url) { _console.default.log('error! url=null!'); } _console.default.log('request', url); return fetch(url, { method: 'GET' }).catch(function (error) { _console.default.error('error!', error, url); throw new Error('网络请求失败!'); }).then(function (response) { if (!response.ok) { throw new Error(response.statusText); } if (response.status === 204) { throw new Error('没有数据!'); } return response; }); }; exports.fetchImage = fetchImage; var fetchImageBuffer = function fetchImageBuffer(url) { return fetchImage(url).then(function (response) { var contentType = response.headers.get('content-type'); // let buffer = response.arrayBuffer(); return response.buffer().then(function (buffer) { return { contentType: contentType, buffer: buffer }; }); }); }; exports.fetchImageBuffer = fetchImageBuffer; var fetchImageBase64 = function fetchImageBase64(url) { return fetchImageBuffer(url).then(function (_ref) { var contentType = _ref.contentType, buffer = _ref.buffer; if (buffer) { if (['image/jpg', 'image/bmp', 'image/png', 'image/jpeg'].indexOf(contentType) >= 0) { var base64Flag = 'data:' + contentType + ';base64,'; // let imageStr = arrayBufferToBase64(buffer); var imageStr = buffer.toString('base64'); return base64Flag + imageStr; } } return null; }); }; exports.fetchImageBase64 = fetchImageBase64; var fetchImageBase64UrlEncode = function fetchImageBase64UrlEncode(url) { return fetchImageBuffer(url).then(function (_ref2) { var contentType = _ref2.contentType, buffer = _ref2.buffer; if (buffer) { if (['image/jpg', 'image/bmp', 'image/png', 'image/jpeg'].indexOf(contentType) >= 0) { // let base64Flag = 'data:' + contentType + ';base64,'; // let imageStr = arrayBufferToBase64(buffer); var imageStr = buffer.toString('base64'); return encodeURIComponent(imageStr); // return base64Flag + encodeURIComponent(imageStr); } } return null; }); }; // function arrayBufferToBase64(buffer) { // let binary = ''; // let bytes = [].slice.call(new Uint8Array(buffer)); // bytes.forEach(b => (binary += String.fromCharCode(b))); // return window.btoa(binary); // // return binary.toString('base64'); // } exports.fetchImageBase64UrlEncode = fetchImageBase64UrlEncode;