2.3 KiB
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
- Shared Utilities: Create and maintain reusable TypeScript packages that can be shared across Generation One projects.
- Public Access: Keep the repository public to facilitate sharing and collaboration.
- Package Management: Use pnpm workspaces for efficient package management.
- TypeScript Support: Ensure all packages have proper TypeScript typings and support.
- Documentation: Maintain comprehensive documentation for each package.
- Testing: Include tests for all packages to ensure reliability.
- 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
- Reliability: Create robust, well-tested packages that can be relied upon in production environments.
- Reusability: Design packages to be easily reused across different projects.
- Maintainability: Ensure code is well-documented and follows best practices for long-term maintenance.
- Extensibility: Design packages to be easily extended or customized for specific use cases.
- Compatibility: Ensure packages work across different environments (browser, Node.js) where applicable.
Future Direction
- Additional Packages: Add more common utilities as needed by Generation One projects.
- Version Management: Maintain proper versioning for all packages.
- 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.