Commit db5922f3 authored by Amulya Nagesh Jilla's avatar Amulya Nagesh Jilla

removed extra spaces

parent 291358d5
const fs = require('fs'); const fs = require('fs');
const path = require('path'); const path = require('path');
const jsonDataPath = path.join(__dirname, 'data.json'); const jsonDataPath = path.join(__dirname, 'data.json');
const jsonData = require(jsonDataPath); const jsonData = require(jsonDataPath);
const templateContent = generateTemplate(jsonData); const templateContent = generateTemplate(jsonData);
const componentCode = ` const componentCode = `
<template> <template>
${templateContent} ${templateContent}
...@@ -22,12 +18,9 @@ export default { ...@@ -22,12 +18,9 @@ export default {
</style> </style>
`; `;
const outputFilePath = path.join(__dirname, 'GeneratedComponent.vue'); const outputFilePath = path.join(__dirname, 'GeneratedComponent.vue');
fs.writeFileSync(outputFilePath, componentCode); fs.writeFileSync(outputFilePath, componentCode);
console.log(`Vue component generated successfully at ${outputFilePath}`); console.log(`Vue component generated successfully at ${outputFilePath}`);
function generateTemplate(data) { function generateTemplate(data) {
function generateTemplateRecursive(data) { function generateTemplateRecursive(data) {
if (typeof data === 'string') { if (typeof data === 'string') {
...@@ -41,29 +34,22 @@ function generateTemplate(data) { ...@@ -41,29 +34,22 @@ function generateTemplate(data) {
.map(([key, value]) => `${key}="${value}"`) .map(([key, value]) => `${key}="${value}"`)
.join(' ') .join(' ')
: ''; : '';
const directives = Object.entries(data) const directives = Object.entries(data)
.filter(([key]) => key.startsWith('v-')) .filter(([key]) => key.startsWith('v-'))
.map(([key, value]) => `${key}="${value}"`); .map(([key, value]) => `${key}="${value}"`);
const directiveString = directives.length > 0 ? ` ${directives.join(' ')}` : ''; const directiveString = directives.length > 0 ? ` ${directives.join(' ')}` : '';
const children = data.children ? generateTemplateRecursive(data.children) : ''; const children = data.children ? generateTemplateRecursive(data.children) : '';
return `<${tagName}${properties}${directiveString}>${children}</${tagName}>`; return `<${tagName}${properties}${directiveString}>${children}</${tagName}>`;
} else { } else {
return String(data); return String(data);
} }
} }
return `${generateTemplateRecursive(data.template)}`; return `${generateTemplateRecursive(data.template)}`;
} }
function generateScriptContent(scriptData) { function generateScriptContent(scriptData) {
console.log('scriptData:', scriptData); console.log('scriptData:', scriptData);
// const scriptProperties = generateDataProperties(scriptData.exportDefault);
const scriptProperties = scriptData.exportDefault ? generateDataProperties(scriptData.exportDefault) : '{}';
const scriptProperties = scriptData.exportDefault ? generateDataProperties(scriptData.exportDefault) : '{}';
return ` return `
data() { data() {
return ${scriptProperties} return ${scriptProperties}
...@@ -71,7 +57,6 @@ function generateScriptContent(scriptData) { ...@@ -71,7 +57,6 @@ function generateScriptContent(scriptData) {
// Add other Vue component options here // Add other Vue component options here
`; `;
} }
function generateDataProperties(data) { function generateDataProperties(data) {
const properties = Object.entries(data) const properties = Object.entries(data)
.map(([key, value]) => { .map(([key, value]) => {
...@@ -82,6 +67,5 @@ function generateDataProperties(data) { ...@@ -82,6 +67,5 @@ function generateDataProperties(data) {
} }
}) })
.join(', '); .join(', ');
return `{${properties}}`; return `{${properties}}`;
} }
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment