Skip to content

Commit 8d79f51

Browse files
fixes stupid cheating shit
1 parent 73be954 commit 8d79f51

File tree

3 files changed

+52
-34
lines changed

3 files changed

+52
-34
lines changed

package-lock.json

Lines changed: 19 additions & 19 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/utils/string.js

Lines changed: 32 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
1425
function 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

2038
function 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

tests/example/components/uuid.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ export default {
1212
uuid: {
1313
type: String,
1414
default: 'missing',
15-
required: true
15+
required: false
1616
}
1717
},
1818
data: function () {

0 commit comments

Comments
 (0)