UNPKG

@anshsinghsonkhia/pumki-docgen

Version:

Private CLI to generate MDX docs from TSX components for pumki-ui

17 lines (16 loc) 680 B
import { Project } from "ts-morph"; export function parseProps(filePath) { const project = new Project(); project.addSourceFileAtPath(filePath); const sourceFile = project.getSourceFileOrThrow(filePath); // Find interface ending with "Props" const interfaceDec = sourceFile.getInterfaces().find((i) => i.getName().endsWith("Props")); if (!interfaceDec) return []; return interfaceDec.getProperties().map((prop) => ({ name: prop.getName(), type: prop.getType().getText(), isOptional: prop.hasQuestionToken(), defaultValue: undefined // TODO: extract from initializer (if default assigned in component) })); }