@@ -11,16 +11,34 @@ class PropClass {
1111 }
1212}
1313
14+ function isLastElement ( script : Object | any , currentElement : string ) : string {
15+ const elementArray = Object . keys ( script ) ;
16+ const lastElement = elementArray [ elementArray . length - 1 ] ;
17+
18+ if ( currentElement === lastElement ) {
19+ return '' ;
20+ } else {
21+ return ',' ;
22+ }
23+ }
24+
1425function routesToString ( routes : Object [ ] ) : string {
1526 let routeString = '' ;
16- routes . forEach ( script => routeString += scriptToString ( script ) + ',' ) ;
17- return `[${ routeString } ]` . replace ( new RegExp ( / , } / , 'g' ) , '}' ) . replace ( new RegExp ( / , ] / , 'g' ) , ']' ) ;
27+ const lastRoute = routes [ routes . length - 1 ] ;
28+ routes . forEach ( route => {
29+ if ( route !== lastRoute ) {
30+ routeString += scriptToString ( route ) + ',' ;
31+ } else {
32+ routeString += scriptToString ( route ) ;
33+ }
34+ } ) ;
35+ return `[${ routeString } ]` ;
1836}
1937
2038function routeComponentsToString ( script : Object ) : string {
2139 let componentString = '' ;
2240 for ( let member in script ) {
23- componentString += member + ': __' + script [ member ] + ',' ;
41+ componentString += member + ': __' + script [ member ] + isLastElement ( script , member ) ;
2442 }
2543 return `{${ componentString } }` ;
2644}
@@ -60,44 +78,44 @@ function scriptToString(script: Object | any): string {
6078 const dataObj = xss ( JSON . stringify ( script [ member ] ( ) ) ) ;
6179 scriptString += `${ member } : function(){return ${ dataObj } },` ;
6280 } else {
63- scriptString += member + ': ' + String ( script [ member ] ) + ',' ;
81+ scriptString += member + ': ' + String ( script [ member ] ) + isLastElement ( script , member ) ;
6482 }
6583 break ;
6684 case 'object' :
6785 if ( member === 'data' ) {
68- scriptString += member + ': ' + xss ( JSON . stringify ( script [ member ] ) ) + ',' ;
86+ scriptString += member + ': ' + xss ( JSON . stringify ( script [ member ] ) ) + isLastElement ( script , member ) ;
6987 } else if ( member === 'routes' || member === 'children' ) {
70- scriptString += member + ': ' + routesToString ( script [ member ] ) + ',' ;
88+ scriptString += member + ': ' + routesToString ( script [ member ] ) + isLastElement ( script , member ) ;
7189 } else if ( member === 'components' && script [ 'path' ] !== undefined ) { // Checks if 'components' is in a route object
72- scriptString + = member + ': ' + routeComponentsToString ( script [ member ] ) + ',' ;
90+ scriptString + = member + ': ' + routeComponentsToString ( script [ member ] ) + isLastElement ( script , member ) ;
7391 } else if ( member === 'mixins' ) {
7492 scriptString += member + ': [' + mixinsToString ( script [ member ] ) + '],' ;
7593 } else if ( script [ member ] . constructor === Array ) {
76- scriptString += member + ': ' + xss ( JSON . stringify ( script [ member ] ) ) + ',' ;
94+ scriptString += member + ': ' + xss ( JSON . stringify ( script [ member ] ) ) + isLastElement ( script , member ) ;
7795 } else if ( member === 'props' ) {
7896 if ( script [ member ] [ Object . keys ( script [ member ] ) [ 0 ] ] . type === null ) {
7997 var propsArray = Object . keys ( script [ member ] ) ;
80- scriptString += member + ': ' + xss ( JSON . stringify ( propsArray ) ) + ',' ;
98+ scriptString += member + ': ' + xss ( JSON . stringify ( propsArray ) ) + isLastElement ( script , member ) ;
8199 } else {
82- // scriptString += member + ': ' + scriptToString(script[member]) + ',' ;
100+ // scriptString += member + ': ' + scriptToString(script[member]) + isLastElement(script, member) ;
83101 const propsString = propsToString ( script [ member ] ) ;
84102 scriptString += `${ member } : ${ propsString } ,` ;
85103 }
86104
87105 } else {
88- scriptString += member + ': ' + scriptToString ( script [ member ] ) + ',' ;
106+ scriptString += member + ': ' + scriptToString ( script [ member ] ) + isLastElement ( script , member ) ;
89107 }
90108 break ;
91109 default :
92110 if ( member === 'component' && script [ 'path' ] !== undefined ) { // Checks if 'component' is in a route object
93- scriptString + = member + ': __' + script [ member ] + ',' ;
111+ scriptString + = member + ': __' + script [ member ] + isLastElement ( script , member ) ;
94112 } else {
95- scriptString + = member + ': ' + JSON . stringify ( script [ member ] ) + ',' ;
113+ scriptString + = member + ': ' + JSON . stringify ( script [ member ] ) + isLastElement ( script , member ) ;
96114 }
97115 break ;
98116 }
99117 }
100- let finalScriptString = `{${ scriptString } }` . replace ( new RegExp ( / , } / , 'g' ) , '}' ) . replace ( new RegExp ( / , ] / , 'g' ) , ']' ) ;
118+ let finalScriptString = `{${ scriptString } }` ;
101119 return finalScriptString ;
102120}
103121
0 commit comments