35 lines
1.2 KiB
Markdown
35 lines
1.2 KiB
Markdown
|
# Code Style and Conventions for TaskBuffer
|
||
|
|
||
|
## File Structure
|
||
|
- Source code in `ts/` directory
|
||
|
- Tests in `test/` directory
|
||
|
- Compiled output in `dist_ts/`
|
||
|
- All filenames must be lowercase
|
||
|
|
||
|
## Naming Conventions
|
||
|
- **Interfaces**: Prefix with `I` (e.g., `ITaskFunction`)
|
||
|
- **Types**: Prefix with `T` (e.g., `TPreOrAfterTaskFunction`)
|
||
|
- **Classes**: PascalCase (e.g., `TaskManager`)
|
||
|
- **Files**: `taskbuffer.classes.{classname}.ts` pattern
|
||
|
- **Test files**: `test.{number}.{feature}.ts` pattern
|
||
|
|
||
|
## TypeScript Conventions
|
||
|
- Use ES modules (import/export)
|
||
|
- Avoid ENums when possible
|
||
|
- Import dependencies through `plugins.ts`
|
||
|
- Reference with full path: `plugins.myModule.myClass()`
|
||
|
- Use async/await patterns consistently
|
||
|
- Strong typing throughout
|
||
|
|
||
|
## Testing Conventions
|
||
|
- Import expect from `@git.zone/tstest/tapbundle`
|
||
|
- Test files end with `export default tap.start()`
|
||
|
- Use descriptive test names with tap.test()
|
||
|
- Test both browser and node when applicable
|
||
|
|
||
|
## Code Quality
|
||
|
- Make focused, goal-oriented changes
|
||
|
- Preserve necessary complexity
|
||
|
- Keep code elegant and maintainable
|
||
|
- No inline documentation unless requested
|
||
|
- Complete implementations only (no partial work)
|