Skip to content

Commit a5a32d1

Browse files
committed
Merge branch 'jessy1092-handle-dots' into version-0.4.4
2 parents 60b6447 + e30ca00 commit a5a32d1

File tree

3 files changed

+21
-11
lines changed

3 files changed

+21
-11
lines changed

README.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,11 @@ the resource will override those given for the loader.
103103
is a simple object of `propname: 'translatedname'`
104104

105105
* `xmlnsTest`: A regular expression used to remove non-supported xmlns
106-
attributes. Default is /^xmlns(Xlink)?$/
106+
attributes. Default is `/^xmlns(Xlink)?$/`
107+
108+
* `titleCaseDelim`: A regular expression used to generate component's name. It
109+
would be ignore if `name` was set.
110+
Default is `/[._-]/`
107111

108112
#### Examples
109113

lib/loader.js

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@ var R = require('ramda');
22
var path = require('path');
33
var lutils = require('loader-utils');
44
var svgToReact = require('./index');
5-
var titleCase = require('./util/title-case')(/[_-]/);
5+
var titleCase = require('./util/title-case');
66

7-
function titleCaseBasename (filepath) {
7+
function titleCaseBasename (filepath, delim) {
88
var ext = path.extname(filepath);
99
var base = path.basename(filepath, ext);
10-
return titleCase(base);
10+
return titleCase(delim)(base);
1111
}
1212

1313
function mapKeyValue (acc, cur) {
@@ -25,13 +25,14 @@ module.exports = function svgReactLoader (source) {
2525
var rsrcQuery = context.resourceQuery && lutils.parseQuery(context.resourceQuery);
2626
var params = R.merge(query || {}, rsrcQuery || {});
2727

28-
var displayName = params.name || titleCaseBasename(context.resourcePath);
29-
var tagname = params.tag;
30-
var tagprops = params.props || params.attrs;
31-
var propsMap = params.propsMap || {};
32-
var raw = params.raw;
33-
var xmlnsTest = params.xmlnsTest;
34-
var classIdPrefix = params.classIdPrefix || false;
28+
var titleCaseDelim = params.titleCaseDelim || /[._-]/;
29+
var displayName = params.name || titleCaseBasename(context.resourcePath, titleCaseDelim);
30+
var tagname = params.tag;
31+
var tagprops = params.props || params.attrs;
32+
var propsMap = params.propsMap || {};
33+
var raw = params.raw;
34+
var xmlnsTest = params.xmlnsTest;
35+
var classIdPrefix = params.classIdPrefix || false;
3536

3637
context.cacheable();
3738

test/unit/utility/camel-case.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,11 @@ describe('svg-react-loader/lib/util/camel-case', () => {
2424
delim: null,
2525
text: 'foo-bar-baz',
2626
result: 'fooBarBaz'
27+
},
28+
{
29+
delim: /[.:-]/g,
30+
text: 'foo.bar.baz',
31+
result: 'fooBarBaz'
2732
}
2833
];
2934

0 commit comments

Comments
 (0)