@@ -5,16 +5,23 @@ const classes = getTypesClasses(types)
5
5
function getTypesClasses ( types ) {
6
6
let classes = { }
7
7
const rawClasses = types . replace ( / ( \n | \r ) / ig, '' )
8
- . match ( / ( e x p o r t d e c l a r e | d e c l a r e c l a s s ) .* ?( } ) / g)
8
+ . split ( 'declare' )
9
+ . filter ( rawClass => rawClass . includes ( 'class' ) )
10
+
9
11
rawClasses . forEach ( rawClass => {
10
- const name = rawClass . match ( / (?< = c l a s s \s + ) .* ?(? = \s + e x t e n d s ) / gs) [ 0 ]
12
+ const name = rawClass . match ( / (?< = c l a s s \s + ) .* ?(? = \s + ) / gs) [ 0 ]
13
+
14
+ const propsRaw = rawClass
15
+ . substring ( rawClass . indexOf ( '{' ) + 1 , rawClass . lastIndexOf ( '}' ) )
16
+ . replace ( / { ( ( ) ( [ ^ } ] ) ) + } / ig, 'custom' )
17
+
11
18
12
- const propsRaw = rawClass . substring ( rawClass . indexOf ( '{' ) + 1 , rawClass . indexOf ( '}' ) )
13
19
let props = propsRaw . match ( / ( [ a - z A - Z ? ] + : ) .* ?(? = [ a - z A - Z ? ] + : | $ ) / g)
14
- if ( props ) {
15
- props = props . map ( prop => prop . trim ( ) )
16
- }
17
20
21
+ if ( props ) {
22
+ props = props . map ( prop => prop . trim ( ) . replace ( '?' , '' ) )
23
+ }
24
+
18
25
classes [ name ] = {
19
26
isExported : rawClass . includes ( 'export' ) ,
20
27
extend : rawClass . match ( / (?< = e x t e n d s \s + ) .* ?(? = \s + { ) / gs) [ 0 ] ,
@@ -24,7 +31,8 @@ function getTypesClasses (types) {
24
31
Object . entries ( classes ) . forEach ( ( [ key , value ] ) => {
25
32
if ( value . extend !== 'Vue' ) {
26
33
const props = classes [ key ] . props || [ ]
27
- classes [ key ] . props = [ ...props , ...( classes [ value . extend ] . props ) ]
34
+ const extend = classes [ value . extend ] . props || [ ]
35
+ classes [ key ] . props = [ ...props , ...extend ]
28
36
}
29
37
} )
30
38
return classes
0 commit comments