UNPKG

@zebrains/velund-python

Version:

Python-генератор для системы UI-компонентов Velund

36 lines 1.82 kB
import { defineVelundGenerator } from '@velund/core'; import { generatePyProject } from './helpers/generatePyProject.js'; import { generateTemplateComponent } from './templates/TemplateComponent.js'; import { generatePrepareRegistry } from './templates/PrepareRegistry.js'; import { generateComponent } from './templates/Component.js'; import { renderers } from './renderers/index.js'; import path from 'path'; import * as fs from 'fs'; import { generateInitPy } from './helpers/generateInitPy.js'; const pythonGenerator = defineVelundGenerator((options) => { return { id: 'python', renderers: Object.keys(renderers), generate(rendererName, components, outDir) { // Выбираем и используем соответствующий рендерер const renderer = renderers[rendererName]; if (!renderer) { throw new Error(`Unsupported renderer: ${rendererName}`); } // Создаем структуру директорий const componentDir = path.join(outDir, 'components'); fs.mkdirSync(componentDir, { recursive: true }); // Генерируем базовые файлы generateTemplateComponent(outDir); generatePrepareRegistry(outDir, components); components.forEach((comp) => generateComponent(comp, outDir)); // Генерируем Renderer.js и package.json renderer.generate({ components, outDir }); generateInitPy(outDir, components); generatePyProject(outDir, rendererName, options?.manifest); console.log(`✅ PYTHON library (${rendererName}) generated in`, outDir); }, }; }); export default pythonGenerator; //# sourceMappingURL=index.js.map