Files
smartantivirus/.serena/memories/code_style_conventions.md

1.3 KiB

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