Package Exports
- @scaffit/core
Readme
@scaffit/core
Core utilities for Scaffit - AST manipulation, file operations, and scaffold execution.
Features
- AST Engine: Parse, modify, and generate JavaScript/TypeScript code
- File Operations: Safe file reading/writing with project detection
- Template Engine: Variable replacement and conditional rendering
- Scaffold Executor: Common installation logic and dependency management
- Validation: Zod-based configuration validation
Usage
import { FileOperations, ASTEngine, ScaffoldExecutor } from '@scaffit/core';
// Detect project type
const projectInfo = FileOperations.detectProject('./my-project');
// Parse and modify files
const ast = ASTEngine.parseFile('./src/index.ts');
ASTEngine.addImport('./src/index.ts', 'react', ['useState']);
// Execute scaffold
const result = await ScaffoldExecutor.executeScaffold(scaffold, config, './my-project');API
FileOperations
detectProject(rootDir)- Detect framework and configurationreadFile(filePath)- Safely read filewriteFile(filePath, content)- Safely write fileaddDependency(rootDir, name, version, isDev)- Add package dependencyaddScript(rootDir, name, command)- Add npm script
ASTEngine
parseFile(filePath)- Parse JS/TS to ASTaddImport(filePath, source, specifiers)- Add import statementaddExport(filePath, name, value)- Add export statementaddFunction(filePath, name, params, body)- Add functionapplyModifications(filePath, modifications)- Apply multiple changes
TemplateEngine
renderTemplate(template, variables)- Simple variable replacementrenderTemplateWithConditionals(template, variables)- With if/unless blocksgenerateFileContent(templatePath, variables)- Generate file content
ScaffoldExecutor
executeScaffold(scaffold, config, projectRoot)- Run scaffold installationgetScaffoldPreview(scaffold, config, projectRoot)- Preview changescreateFileFromTemplate(filePath, templateName, variables)- Create fileinstallDependencies(projectRoot, packageManager)- Install deps