Files
smartantivirus/.serena/memories/code_style_conventions.md

35 lines
1.3 KiB
Markdown

# Code Style and Conventions
## Naming Conventions
- **Interfaces**: Prefix with `I` (e.g., `IUserData`)
- **Types**: Prefix with `T` (e.g., `TResponseType`)
- **Files**: Always lowercase (e.g., `classes.clamavservice.ts`)
- **Classes**: PascalCase (e.g., `ClamAvService`)
- **Methods/Functions**: camelCase (e.g., `scanBuffer`)
- Avoid ENums when possible
## TypeScript Patterns
- TypeScript-first approach with full type safety
- ES modules (type: "module" in package.json)
- Import dependencies in `ts/plugins.ts`
- Reference with full path: `plugins.myModule.myClass()`
## File Organization
- Source code in `ts/` directory
- Tests in `test/` directory
- Distribution in `dist_ts/` directory
- Use `.js` extensions in imports for ES modules
## Testing Patterns
- Use @git.zone/tstest framework
- Import expect from @push.rocks/tapbundle
- Test files end with `export default tap.start()`
- Test naming: `*.both.ts`, `*.node.ts`, `*.browser.ts`
- EICAR test string for antivirus verification
## General Principles
- Make RAZOR SHARP changes - every modification must be goal-oriented
- Improve elegance - changes should enhance clarity and maintainability
- Preserve necessary complexity - don't oversimplify
- Keep async patterns - maintain Promises where they add value
- Remove redundancy carefully while preserving functionality