@scaffit/core
v1.0.7
Published
Core utilities for Scaffit - Framework detection, AST manipulation, file operations, and scaffold execution
Downloads
8
Maintainers
Readme
@scaffit/core
Core utilities for Scaffit - Framework detection, AST manipulation, file operations, and scaffold execution.
Features
- Framework Detection: Automatically detect Next.js, React, Vue, Angular, Svelte, Express, Fastify, Node.js
- 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 framework
const framework = FileOperations.detectFramework('./my-project');
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
detectFramework(rootDir)- Detect project framework (Next.js, React, Vue, Angular, Svelte, Express, Fastify, Node.js)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 scriptgetFrameworkConfigPaths(framework)- Get framework-specific directory pathsgetFrameworkExtensions(framework)- Get framework-specific file extensionsgetFrameworkDependencies(framework)- Get recommended dependencies for framework
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
