2025-04-16 22:33:33 +02:00

2.3 KiB

Project Brief: G1 TypeScript Common Packages

Project Overview

G1 TypeScript Common Packages is a monorepo containing common TypeScript packages used across Generation One projects. The repository is public, making it easier to share and collaborate on common utilities.

Core Requirements

  1. Shared Utilities: Create and maintain reusable TypeScript packages that can be shared across Generation One projects.
  2. Public Access: Keep the repository public to facilitate sharing and collaboration.
  3. Package Management: Use pnpm workspaces for efficient package management.
  4. TypeScript Support: Ensure all packages have proper TypeScript typings and support.
  5. Documentation: Maintain comprehensive documentation for each package.
  6. Testing: Include tests for all packages to ensure reliability.
  7. CI/CD: Implement automated testing and publishing workflows.

Current Packages

SSE Client (@g1/sse-client)

A custom Server-Sent Events (SSE) client that supports headers and bypasses certificate issues.

Key Features:

  • Custom headers support for SSE connections
  • SSL certificate validation bypass
  • Automatic reconnection with exponential backoff
  • Connection management
  • Event handling
  • Works in both browser and Node.js environments

Project Goals

  1. Reliability: Create robust, well-tested packages that can be relied upon in production environments.
  2. Reusability: Design packages to be easily reused across different projects.
  3. Maintainability: Ensure code is well-documented and follows best practices for long-term maintenance.
  4. Extensibility: Design packages to be easily extended or customized for specific use cases.
  5. Compatibility: Ensure packages work across different environments (browser, Node.js) where applicable.

Future Direction

  1. Additional Packages: Add more common utilities as needed by Generation One projects.
  2. Version Management: Maintain proper versioning for all packages.
  3. Community Contributions: Encourage contributions from the community.

Project Scope

This project focuses solely on creating and maintaining common TypeScript packages. It does not include:

  • Application-specific code
  • UI components or frameworks
  • Backend services or APIs

The scope is intentionally limited to ensure the packages remain focused, reusable, and maintainable.