UNPKG

dynamate-design-to-code

Version:

A powerful tool for converting Figma designs into high-quality, production-ready code with built-in best practices and customizable rulesets

66 lines 2.77 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.generateCommand = void 0; const commander_1 = require("commander"); const core_1 = require("../../core"); const utils_1 = require("../../utils"); const path_1 = __importDefault(require("path")); exports.generateCommand = new commander_1.Command('generate') .description('Generate code from Figma components') .argument('[url]', 'Figma component URL') .option('-f, --file <string>', 'Figma file ID') .option('-c, --component <string>', 'Component ID') .option('-o, --output <string>', 'Output directory', './components') .option('--framework <string>', 'Target framework', 'react') .option('--styling <string>', 'Styling solution', 'tailwind') .action(async (url, options) => { try { let fileId = options.file; let componentId = options.component; if (url) { const parsed = (0, utils_1.parseFigmaUrl)(url); fileId = parsed.fileId; componentId = parsed.nodeId; } if (!fileId) { throw new Error('Please provide either a Figma URL or file ID'); } const figma = new core_1.FigmaService({ accessToken: process.env.FIGMA_ACCESS_TOKEN || '', fileId }); const generator = new core_1.CodeGenerator({ openaiApiKey: process.env.OPENAI_API_KEY || '', framework: options.framework, styling: options.styling }); if (componentId) { const component = await figma.getFileComponents(fileId); const generated = await generator.generateComponent(component[0]); const componentName = path_1.default.basename(component[0].name); await (0, utils_1.writeGeneratedFiles)(generated, options.output, componentName); } else { const components = await figma.getFileComponents(fileId); for (const component of components) { const generated = await generator.generateComponent(component); const componentName = path_1.default.basename(component.name); await (0, utils_1.writeGeneratedFiles)(generated, options.output, componentName); } } console.log('✨ Code generation completed successfully!'); } catch (error) { if (error instanceof Error) { console.error('❌ Error:', error.message); } else { console.error('❌ An unknown error occurred'); } process.exit(1); } }); //# sourceMappingURL=generate.js.map