import { resolve } from "path"; import _locreq from "locreq"; import { promises as fs, existsSync } from "fs"; import { question } from "./utils/question.js"; const target_locreq = _locreq(process.cwd()); import { jddComponentTemplate } from "./templates/jdd-component.js"; import { generateComponents } from "./generate-components.js"; import { toKebabCase } from "js-convert-case"; export async function addJDDComponent(): Promise { const component_name = await question( "What's the name of the component? > ", (s: string) => s.length > 3 ); const file_path = target_locreq.resolve( `src/back/jdd-components/${toKebabCase(component_name)}/${toKebabCase( component_name )}.jdd.tsx` ); if (existsSync(file_path)) { console.error(`ERROR: File ${file_path} already exists.`); return; } await fs.mkdir(resolve(file_path, "../"), { recursive: true }); await fs.writeFile(file_path, await jddComponentTemplate(component_name)); const css_file_path = target_locreq.resolve( `src/back/jdd-components/${toKebabCase(component_name)}/${toKebabCase( component_name )}.css` ); await fs.writeFile( css_file_path, `.${toKebabCase(component_name)} { }` ); console.info(`Created ${file_path}`); console.info(`Created ${css_file_path}`); await generateComponents(); }