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
48 lines • 2.14 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.writeGeneratedFiles = void 0;
const promises_1 = require("fs/promises");
const path_1 = require("path");
/**
* Write generated component files to disk
*/
async function writeGeneratedFiles(generated, outputDir, componentName) {
try {
// Create output directory if it doesn't exist
await (0, promises_1.mkdir)(outputDir, { recursive: true });
// Write component file
const componentPath = (0, path_1.join)(outputDir, `${componentName}.tsx`);
await (0, promises_1.writeFile)(componentPath, generated.code);
// Write styles if present
if (generated.styles) {
const stylesPath = (0, path_1.join)(outputDir, `${componentName}.module.css`);
await (0, promises_1.writeFile)(stylesPath, generated.styles);
}
// Write types if present
if (generated.types) {
const typesPath = (0, path_1.join)(outputDir, `${componentName}.d.ts`);
await (0, promises_1.writeFile)(typesPath, generated.types);
}
// Write stories if present
if (generated.stories) {
const storiesPath = (0, path_1.join)(outputDir, `${componentName}.stories.tsx`);
await (0, promises_1.writeFile)(storiesPath, generated.stories);
}
// Write tests if present
if (generated.tests) {
const testsPath = (0, path_1.join)(outputDir, `${componentName}.test.tsx`);
await (0, promises_1.writeFile)(testsPath, generated.tests);
}
// Write documentation if present
if (generated.documentation) {
const docsPath = (0, path_1.join)(outputDir, `${componentName}.md`);
await (0, promises_1.writeFile)(docsPath, generated.documentation);
}
}
catch (error) {
const errorMessage = error instanceof Error ? error.message : 'Unknown error occurred';
throw new Error(`Failed to write generated files: ${errorMessage}`);
}
}
exports.writeGeneratedFiles = writeGeneratedFiles;
//# sourceMappingURL=files.js.map