1
1
'use strict' ;
2
2
3
- const preserveCamelCase = string => {
3
+
4
+ const preserveCamelCase = ( string , locale ) => {
4
5
let isLastCharLower = false ;
5
6
let isLastCharUpper = false ;
6
7
let isLastLastCharUpper = false ;
@@ -20,9 +21,9 @@ const preserveCamelCase = string => {
20
21
isLastCharUpper = false ;
21
22
isLastCharLower = true ;
22
23
} else {
23
- isLastCharLower = character . toLocaleLowerCase ( ) === character && character . toLocaleUpperCase ( ) !== character ;
24
+ isLastCharLower = character . toLocaleLowerCase ( locale ) === character && character . toLocaleUpperCase ( locale ) !== character ;
24
25
isLastLastCharUpper = isLastCharUpper ;
25
- isLastCharUpper = character . toLocaleUpperCase ( ) === character && character . toLocaleLowerCase ( ) !== character ;
26
+ isLastCharUpper = character . toLocaleUpperCase ( locale ) === character && character . toLocaleLowerCase ( locale ) !== character ;
26
27
}
27
28
}
28
29
@@ -35,11 +36,11 @@ const camelCase = (input, options) => {
35
36
}
36
37
37
38
options = {
38
- ...{ pascalCase : false } ,
39
+ ...{ pascalCase : false , locale : null } ,
39
40
...options
40
41
} ;
41
-
42
- const postProcess = x => options . pascalCase ? x . charAt ( 0 ) . toLocaleUpperCase ( ) + x . slice ( 1 ) : x ;
42
+ const locale = ( options . locale != null ) ? options . locale : undefined ; // It's going to use default if locale option is null
43
+ const postProcess = x => options . pascalCase ? x . charAt ( 0 ) . toLocaleUpperCase ( locale ) + x . slice ( 1 ) : x ;
43
44
44
45
if ( Array . isArray ( input ) ) {
45
46
input = input . map ( x => x . trim ( ) )
@@ -54,20 +55,20 @@ const camelCase = (input, options) => {
54
55
}
55
56
56
57
if ( input . length === 1 ) {
57
- return options . pascalCase ? input . toLocaleUpperCase ( ) : input . toLocaleLowerCase ( ) ;
58
+ return options . pascalCase ? input . toLocaleUpperCase ( locale ) : input . toLocaleLowerCase ( locale ) ;
58
59
}
59
60
60
- const hasUpperCase = input !== input . toLocaleLowerCase ( ) ;
61
+ const hasUpperCase = input !== input . toLocaleLowerCase ( locale ) ;
61
62
62
63
if ( hasUpperCase ) {
63
- input = preserveCamelCase ( input ) ;
64
+ input = preserveCamelCase ( input , locale ) ;
64
65
}
65
66
66
67
input = input
67
68
. replace ( / ^ [ _ . \- ] + / , '' )
68
- . toLocaleLowerCase ( )
69
- . replace ( / [ _ . \- ] + ( [ \p{ Alpha} \p{ N} _ ] | $ ) / gu, ( _ , p1 ) => p1 . toLocaleUpperCase ( ) )
70
- . replace ( / \d + ( [ \p{ Alpha} \p{ N} _ ] | $ ) / gu, m => m . toLocaleUpperCase ( ) ) ;
69
+ . toLocaleLowerCase ( locale )
70
+ . replace ( / [ _ . \- ] + ( [ \p{ Alpha} \p{ N} _ ] | $ ) / gu, ( _ , p1 ) => p1 . toLocaleUpperCase ( locale ) )
71
+ . replace ( / \d + ( [ \p{ Alpha} \p{ N} _ ] | $ ) / gu, m => m . toLocaleUpperCase ( locale ) ) ;
71
72
72
73
return postProcess ( input ) ;
73
74
} ;
0 commit comments