codestate-core
Version:
Core domain models, use cases, and services for CodeState
156 lines (118 loc) • 4.43 kB
Markdown
# CodeState Core
The core domain models, use cases, and services for CodeState - a developer context engine for saving and resuming your full development environment.
## Overview
CodeState Core provides the foundational building blocks for managing development context, including:
- **Domain Models**: Scripts, Sessions, Configurations, Git state, IDE integrations
- **Use Cases**: Business logic for all CodeState operations
- **Services**: Core services for configuration, git management, IDE integration, and more
- **Type Safety**: Full TypeScript support with Zod validation schemas
## Features
### Domain Models
- **Script Management**: Create, update, and manage development scripts
- **Session Persistence**: Save and resume development sessions
- **Configuration System**: Flexible configuration management with validation
- **Git Integration**: Track repository state and changes
- **IDE Support**: Multi-IDE integration capabilities
### Core Services
- **ConfigService**: Configuration management with validation
- **ScriptService**: Script CRUD operations and execution
- **SessionService**: Session persistence and restoration
- **GitService**: Git repository state management
- **IDEService**: IDE integration and file management
### Type Safety
- Full TypeScript definitions
- Zod validation schemas for all data models
- Comprehensive error handling with typed error registry
## Installation
```bash
npm install codestate-core
```
## Usage
```typescript
import {
ConfigService,
ScriptService,
SessionService,
GitService,
IDEService
} from 'codestate-core';
// Initialize services
const configService = new ConfigService();
const scriptService = new ScriptService();
const sessionService = new SessionService();
// Create a new script
const script = await scriptService.createScript({
name: 'setup-project',
content: 'npm install && npm run build',
rootPath: '/path/to/project'
});
// Save current session
const session = await sessionService.saveSession({
name: 'feature-development',
scripts: [script],
gitStatus: await gitService.getGitStatus()
});
```
## API Reference
### Core Services
#### ConfigService
- `getConfig()` - Retrieve current configuration
- `updateConfig(config)` - Update configuration
- `exportConfig()` - Export configuration to file
- `importConfig(filePath)` - Import configuration from file
#### ScriptService
- `createScript(scriptData)` - Create new script
- `updateScript(id, updates)` - Update existing script
- `deleteScript(id)` - Delete script
- `getScripts()` - Get all scripts
- `getScriptsByRootPath(rootPath)` - Get scripts for specific project
#### SessionService
- `saveSession(sessionData)` - Save current development session
- `resumeSession(id)` - Resume saved session
- `listSessions()` - List all saved sessions
- `deleteSession(id)` - Delete session
#### GitService
- `getGitStatus()` - Get current git repository status
- `getDirtyData()` - Get uncommitted changes
- `commitChanges(message)` - Commit changes
- `createStash(message)` - Create git stash
- `applyStash(id)` - Apply git stash
#### IDEService
- `getAvailableIDEs()` - Get list of available IDEs
- `openIDE(ideType, path)` - Open project in specific IDE
- `openFiles(files)` - Open specific files in IDE
## TypeScript Support
Full TypeScript definitions are included:
```typescript
import type {
Script,
Session,
Config,
GitStatus,
IDE
} from 'codestate-core';
```
## Validation
All data models use Zod schemas for runtime validation:
```typescript
import { SchemaRegistry } from 'codestate-core';
// Validate script data
const scriptSchema = SchemaRegistry.getSchema('Script');
const validatedScript = scriptSchema.parse(scriptData);
```
## Error Handling
Comprehensive error handling with typed errors:
```typescript
import { ErrorRegistry, ErrorTypes } from 'codestate-core';
try {
await scriptService.createScript(scriptData);
} catch (error) {
if (error instanceof ErrorRegistry.getError(ErrorTypes.SCRIPT_CREATION_FAILED)) {
// Handle script creation error
}
}
```
## Development
This package is part of the CodeState monorepo. For development setup, see the main [CodeState repository](https://github.com/codestate-cs/code-state-library).
## License
MIT