convert-svg-react
Version:
Converts SVG XML code to be used as ReactJS component.
134 lines (107 loc) • 3.93 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
var ConvertSvg = require('./svgconverter');
var server = require('./server');
/**
* Will open port 8000 to copy transformed svg to a usable React component
* For CommonJS
* @param {string} path - path to svg file or file itself
* @returns {Promise}
*/
function read_File_CommonJS(_x) {
return _read_File_CommonJS.apply(this, arguments);
}
/**
* Will open port 8000 to copy transformed svg to a usable React component
* For CommonJS
* @param {string} string - path to svg file or file itself
* @returns {String}
*/
function _read_File_CommonJS() {
_read_File_CommonJS = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(path) {
var fs, svg, REACTsvg;
return _regenerator["default"].wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
fs = require('fs').promises;
_context.next = 3;
return fs.readFile(path, 'utf8');
case 3:
svg = _context.sent;
REACTsvg = new ConvertSvg(svg).findAndReplace();
server(REACTsvg.forCopy); // Retruns transformed svg also for terminal copying for testing.
return _context.abrupt("return", REACTsvg);
case 7:
case "end":
return _context.stop();
}
}
}, _callee);
}));
return _read_File_CommonJS.apply(this, arguments);
}
function from_string_CommonJS(string) {
var REACTsvg = new ConvertSvg(string).findAndReplace();
server(REACTsvg.forCopy); // Retruns transformed svg also for terminal copying for testing.
return REACTsvg;
}
/**
* For browsers
* @param {string} string - string
* @returns {Object[]}
*/
function from_string_ES2016(string) {
var _require = require('../components/StringToJSX'),
StringToJSX = _require.StringToJSX;
var REACTsvg = new ConvertSvg(string).findAndReplace();
return StringToJSX(REACTsvg, 'fromString');
}
/**
* For browsers only
* @param {string} path - path to svg file or file itself
* @returns {Promise<Array>}
*/
function read_File_ES2016(_x2) {
return _read_File_ES.apply(this, arguments);
}
function _read_File_ES() {
_read_File_ES = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(path) {
var _require2, StringToJSX, res, svg, REACTsvg;
return _regenerator["default"].wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
_require2 = require('../components/StringToJSX'), StringToJSX = _require2.StringToJSX; // Will make VueJS svg resuable component from here
_context2.prev = 1;
_context2.next = 4;
return fetch(path);
case 4:
res = _context2.sent;
_context2.next = 7;
return res.text();
case 7:
svg = _context2.sent;
REACTsvg = new ConvertSvg(svg).findAndReplace();
return _context2.abrupt("return", StringToJSX(REACTsvg, 'fromFile'));
case 12:
_context2.prev = 12;
_context2.t0 = _context2["catch"](1);
return _context2.abrupt("return", _context2.t0);
case 15:
case "end":
return _context2.stop();
}
}
}, _callee2, null, [[1, 12]]);
}));
return _read_File_ES.apply(this, arguments);
}
module.exports = {
read_File_ES2016: read_File_ES2016,
from_string_ES2016: from_string_ES2016,
read_File_CommonJS: read_File_CommonJS,
from_string_CommonJS: from_string_CommonJS
};