Socket
Socket
Sign inDemoInstall

@svgr/core

Package Overview
Dependencies
Maintainers
1
Versions
45
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@svgr/core - npm Package Compare versions

Comparing version 2.2.0 to 2.4.0

lib/h2x/svgProps.js

19

CHANGELOG.md

@@ -6,2 +6,21 @@ # Change Log

<a name="2.4.0"></a>
# [2.4.0](https://github.com/smooth-code/svgr/compare/v2.3.0...v2.4.0) (2018-09-16)
### Bug Fixes
* use literal instead of litteral ([7849fd4](https://github.com/smooth-code/svgr/commit/7849fd4))
### Features
* allow to spread props at the start ([#166](https://github.com/smooth-code/svgr/issues/166)) ([cd659dc](https://github.com/smooth-code/svgr/commit/cd659dc))
* **upgrade:** h2x@1.1.0 (jsdom@12.0.0) & others ([2d9b7bd](https://github.com/smooth-code/svgr/commit/2d9b7bd))
* new option "svgProps" ([#172](https://github.com/smooth-code/svgr/issues/172)) ([9657110](https://github.com/smooth-code/svgr/commit/9657110))
<a name="2.2.0"></a>

@@ -8,0 +27,0 @@ # [2.2.0](https://github.com/smooth-code/svgr/compare/v2.1.1...v2.2.0) (2018-08-13)

1

lib/config.js

@@ -23,2 +23,3 @@ "use strict";

svgAttributes: null,
svgProps: null,
svgo: true,

@@ -25,0 +26,0 @@ svgoConfig: null,

6

lib/convert.js

@@ -20,8 +20,6 @@ "use strict";

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
async function convert(code, config = {}, state = {}) {
config = _objectSpread({}, _config.DEFAULT_CONFIG, config);
config = _extends({}, _config.DEFAULT_CONFIG, config);
state = (0, _util.expandState)(state);

@@ -28,0 +26,0 @@ let result = code; // Remove null-byte character (copy/paste from Illustrator)

@@ -12,3 +12,3 @@ "use strict";

attr.value = '1em';
attr.litteral = false;
attr.literal = false;
return attr;

@@ -15,0 +15,0 @@ };

@@ -8,3 +8,3 @@ "use strict";

const expandProps = () => () => ({
const expandProps = (place = 'end') => () => ({
visitor: {

@@ -17,3 +17,11 @@ JSXElement: {

props.spread = true;
path.node.attributes.push(props);
if (place === 'start') {
path.node.attributes.unshift(props);
}
if (place === 'end') {
path.node.attributes.push(props);
}
path.replace(path.node);

@@ -20,0 +28,0 @@ }

@@ -25,3 +25,3 @@ "use strict";

const svgAttribute = (attributes = {}) => () => {
const svgAttributes = (attributes = {}) => () => {
const keys = Object.keys(attributes);

@@ -35,6 +35,6 @@ return {

const parseAttributes = keys.reduce((accumulation, key) => {
const props = new _h2xPluginJsx.JSXAttribute();
props.name = key;
props.value = attributes[key];
return [...accumulation, props];
const prop = new _h2xPluginJsx.JSXAttribute();
prop.name = key;
prop.value = attributes[key];
return [...accumulation, prop];
}, []);

@@ -54,3 +54,3 @@ const mergeAttributes = path.node.attributes.reduce((accumulation, value) => {

var _default = svgAttribute;
var _default = svgAttributes;
exports.default = _default;

@@ -16,3 +16,3 @@ "use strict";

props.value = 'svgRef';
props.litteral = true;
props.literal = true;
path.node.attributes.push(props);

@@ -19,0 +19,0 @@ path.replace(path.node);

@@ -6,6 +6,4 @@ "use strict";

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
const elementToComponent = {

@@ -33,3 +31,3 @@ svg: 'Svg',

};
const componentToElement = Object.keys(elementToComponent).reduce((map, key) => _objectSpread({}, map, {
const componentToElement = Object.keys(elementToComponent).reduce((map, key) => _extends({}, map, {
[elementToComponent[key]]: key

@@ -36,0 +34,0 @@ }), {});

@@ -13,2 +13,3 @@ "use strict";

svgAttributes: true,
svgProps: true,
svgRef: true,

@@ -20,3 +21,3 @@ titleProp: true,

};
exports.reactNativeTemplate = exports.reactDomTemplate = exports.toReactNative = exports.titleProp = exports.svgRef = exports.svgAttributes = exports.stripAttribute = exports.replaceAttrValues = exports.removeStyle = exports.removeDimensions = exports.removeComments = exports.expandProps = exports.emSize = exports.default = void 0;
exports.reactNativeTemplate = exports.reactDomTemplate = exports.toReactNative = exports.titleProp = exports.svgRef = exports.svgProps = exports.svgAttributes = exports.stripAttribute = exports.replaceAttrValues = exports.removeStyle = exports.removeDimensions = exports.removeComments = exports.expandProps = exports.emSize = exports.default = void 0;

@@ -75,2 +76,6 @@ var _convert = _interopRequireDefault(require("./convert"));

var _svgProps = _interopRequireDefault(require("./h2x/svgProps"));
exports.svgProps = _svgProps.default;
var _svgRef = _interopRequireDefault(require("./h2x/svgRef"));

@@ -77,0 +82,0 @@

@@ -14,6 +14,4 @@ "use strict";

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function configToPlugins(config) {

@@ -26,3 +24,5 @@ const plugins = [_h2xPluginJsx.default, (0, _.stripAttribute)('xmlns'), (0, _.removeComments)(), (0, _.removeStyle)()];

if (config.svgAttributes) plugins.push((0, _.svgAttributes)(config.svgAttributes));
if (config.expandProps) plugins.push((0, _.expandProps)());
if (config.svgProps) plugins.push((0, _.svgProps)(config.svgProps)); // TODO remove boolean value in the next major release
if (config.expandProps) plugins.push((0, _.expandProps)(config.expandProps === true ? 'end' : config.expandProps));
if (config.native) plugins.push((0, _.toReactNative)());

@@ -35,3 +35,3 @@ if (config.titleProp) plugins.push((0, _.titleProp)());

const plugins = configToPlugins(config);
return (0, _h2xCore.transform)(code, _objectSpread({
return (0, _h2xCore.transform)(code, _extends({
plugins,

@@ -38,0 +38,0 @@ state

@@ -8,3 +8,3 @@ "use strict";

var _merge = _interopRequireDefault(require("lodash/merge"));
var _mergeDeep = _interopRequireDefault(require("merge-deep"));

@@ -19,3 +19,3 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

});
return _prettier.default.format(code, (0, _merge.default)({
return _prettier.default.format(code, (0, _mergeDeep.default)({
parser: 'babylon'

@@ -22,0 +22,0 @@ }, prettierRcConfig, config.prettierConfig || {}));

@@ -10,3 +10,3 @@ "use strict";

var _mergeConfigs = _interopRequireDefault(require("./mergeConfigs"));
var _mergeDeep = _interopRequireDefault(require("merge-deep"));

@@ -34,3 +34,3 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

const svgoRcConfig = await explorer.search(filePath);
const svgo = new _svgo.default((0, _mergeConfigs.default)(getBaseSvgoConfig(config), svgoRcConfig, config.svgoConfig));
const svgo = new _svgo.default((0, _mergeDeep.default)(getBaseSvgoConfig(config), svgoRcConfig, config.svgoConfig));
const info = state.filePath ? {

@@ -37,0 +37,0 @@ input: 'file',

@@ -6,21 +6,16 @@ "use strict";

exports.expandState = expandState;
exports.pascalCase = void 0;
var _path = _interopRequireDefault(require("path"));
var _lodash = require("lodash");
var _camelcase = _interopRequireDefault(require("camelcase"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
const pascalCase = str => (0, _lodash.upperFirst)((0, _lodash.camelCase)(str));
exports.pascalCase = pascalCase;
function getComponentName(state) {
if (!state.filePath) return 'SvgComponent';
const componentName = pascalCase(_path.default.parse(state.filePath).name);
const componentName = (0, _camelcase.default)(_path.default.parse(state.filePath).name, {
pascalCase: true
});
if (Number.isNaN(parseInt(componentName[0], 10))) return componentName;

@@ -31,5 +26,5 @@ return `Svg${componentName}`;

function expandState(state) {
return _objectSpread({
return _extends({
componentName: state.componentName || getComponentName(state)
}, state);
}
{
"name": "@svgr/core",
"description": "Transform SVG into React Components.",
"version": "2.2.0",
"version": "2.4.0",
"main": "lib/index.js",

@@ -25,10 +25,11 @@ "repository": "git@github.com:smooth-code/svgr.git",

"dependencies": {
"camelcase": "^5.0.0",
"cosmiconfig": "^5.0.6",
"h2x-core": "^1.0.0",
"h2x-plugin-jsx": "^1.0.0",
"lodash": "^4.17.10",
"h2x-core": "^1.1.0",
"h2x-plugin-jsx": "^1.1.0",
"merge-deep": "^3.0.2",
"prettier": "^1.14.2",
"svgo": "^1.0.5"
},
"gitHead": "c7ab92b534b0e099670bb9c826e2ffe611a8926c"
"gitHead": "d84e80fe460f194653e79504bf9a4e733364fc26"
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc