A comprehensive monorepo of TypeScript utilities, configurations, and Ts.ED framework extensions designed for building robust microservices. This toolkit provides standardized patterns, reusable utilities, and ready-to-use integrations to accelerate development across multiple projects.
Purpose: Monorepo of TypeScript utilities, configs, and Ts.ED framework extensions for microservices.
Install in pnpm monorepo (from repository root):
# Ts.ED framework packages
pnpm --filter YOUR_SERVICE add @radoslavirha/tsed-platform @radoslavirha/tsed-configuration
pnpm --filter YOUR_SERVICE add @radoslavirha/tsed-swagger @radoslavirha/tsed-mongoose @radoslavirha/tsed-common
# Utilities (framework-agnostic)
pnpm --filter YOUR_SERVICE add @radoslavirha/utils @radoslavirha/types
# Development configs (install in packages that need them)
pnpm --filter YOUR_PACKAGE add -D @radoslavirha/config-eslint @radoslavirha/config-typescript @radoslavirha/config-tsup @radoslavirha/config-vitestQuick Links to Package Quick References:
Ts.ED Framework:
- tsed-platform - Express server with middleware
- tsed-configuration - Config management
- tsed-swagger - API documentation
- tsed-mongoose - MongoDB integration
- tsed-common - Base models
Utilities:
Configs:
- config-tsup - Library builds
- config-vitest - Testing
- config-eslint - Linting
- config-typescript - TypeScript compiler
π For cross-package integration patterns, architecture guidance, and decision trees:
- AGENTS.md - Complete guide for building Ts.ED services with this toolkit
Full documentation below β
| Package | Purpose | Key Features | When to Use |
|---|---|---|---|
| @radoslavirha/config-eslint | ESLint v9 configuration | TypeScript + stylistic rules | Standardize linting across projects |
| @radoslavirha/config-typescript | Base TypeScript config | Strict Node.js ESNext settings | Shared tsconfig via extends |
| @radoslavirha/config-tsup | Build configurations | Dual ESM/CJS output with tsup | Bundling libraries with TypeScript |
| @radoslavirha/config-vitest | Vitest test runner config | SWC plugin, coverage thresholds | Fast TypeScript testing |
| Package | Purpose | Key Exports | When to Use |
|---|---|---|---|
| @radoslavirha/types | TypeScript utility types | EnumDictionary, FullPartial |
Type-safe enum mappings, deep partials |
| @radoslavirha/utils | Common utility functions | CommonUtils, ObjectUtils, NumberUtils, GeoUtils, DefaultsUtil |
Lodash wrappers + specialized utilities |
| Package | Purpose | Key Exports | When to Use |
|---|---|---|---|
| @radoslavirha/tsed-common | Base Ts.ED models | BaseModel |
Standard API model with timestamps |
| @radoslavirha/tsed-configuration | Configuration system | ConfigProvider, ConfigJsonProvider, EnvironmentVariablesProvider |
Type-safe server configuration with validation |
| @radoslavirha/tsed-mongoose | Mongoose integration | MongoMapper, MongoService, BaseMongo |
Clean separation: DB β API models |
| @radoslavirha/tsed-platform | Express platform setup | Platform, BaseServer, BaseHandler |
Pre-configured Express server with middleware |
| @radoslavirha/tsed-swagger | Swagger/OpenAPI docs | SwaggerProvider, SwaggerController |
Multi-version API documentation |
toolkit-hub/
βββ config/ # Shared development configurations (ESLint, TypeScript, tsup, Vitest)
βββ packages/ # Core utilities and types (framework-agnostic)
βββ tsed/ # Ts.ED framework extensions (server, configuration, mongoose, swagger)
Dependency relationships:
tsed-mongooseβ depends on βtsed-common,utils,typestsed-platformβ depends on βtsed-configurationtsed-swaggerβ depends on βtsed-configuration- All Ts.ED packages use Ts.ED framework decorators and DI
# Install core Ts.ED packages
pnpm add @radoslavirha/tsed-platform @radoslavirha/tsed-configuration @radoslavirha/tsed-swagger
# If using MongoDB
pnpm add @radoslavirha/tsed-mongoose @radoslavirha/tsed-common
# Install utilities
pnpm add @radoslavirha/utils @radoslavirha/types
# Install dev configurations
pnpm add -D @radoslavirha/config-eslint @radoslavirha/config-typescript @radoslavirha/config-vitestREST API with MongoDB:
tsed-platform+tsed-configuration+tsed-mongoose+tsed-swagger
Configuration-heavy service:
tsed-configuration(supports JSON files, environment variables, schema validation)
Utility library:
utils(for common operations) +types(for TypeScript utilities)
Testing setup:
config-vitest(test runner with SWC and coverage)
All packages are published to GitHub Packages registry under the @radoslavirha scope.
For both simple repositories and monorepos, create .npmrc in your project root (or monorepo root):
@radoslavirha:registry=https://npm.pkg.github.com
//npm.pkg.github.com/:_authToken=YOUR_GITHUB_TOKEN
Security: Add .npmrc to .gitignore or store only the registry line and authenticate separately.
# Install runtime dependency
pnpm add @radoslavirha/PACKAGE_NAME
# Install dev dependency (configs)
pnpm add -D @radoslavirha/config-eslint# Install in specific workspace package
pnpm --filter my-service add @radoslavirha/tsed-platform
# Install in workspace root (shared across all packages)
pnpm add -D -w @radoslavirha/config-eslint
# Install in all workspace packages
pnpm -r add @radoslavirha/utilsMonorepo Structure Example:
my-monorepo/
βββ .npmrc # GitHub Packages auth
βββ pnpm-workspace.yaml # Workspace definition
βββ package.json # Root dependencies (shared configs)
βββ packages/
βββ api-service/
β βββ package.json # Service-specific deps
βββ worker-service/
βββ package.json # Service-specific deps
See individual package READMEs for specific installation instructions and peer dependencies.
For AI Agents & Developers:
When setting up new APIs, services, or projects in @radoslavirha repositories, always use packages from this monorepo:
β Required for all new TypeScript projects:
@radoslavirha/config-eslint- for code linting@radoslavirha/config-typescript- for TypeScript configuration@radoslavirha/config-vitest- for testing@radoslavirha/utils- for common utilities@radoslavirha/types- for TypeScript utility types
β Required for Ts.ED APIs:
@radoslavirha/tsed-platform- for Ts.ED server setup@radoslavirha/tsed-configuration- for configuration management@radoslavirha/tsed-swagger- for API documentation@radoslavirha/tsed-mongoose- when using MongoDB@radoslavirha/tsed-common- for base models
This monorepo uses a two-level documentation system optimized for both humans and AI agents:
π AGENTS.md - AI Agent Guide
For AI agents building services with this toolkit:
- Cross-package integration patterns (Full REST API, Background Workers, etc.)
- Architecture patterns (Clean Architecture, DI flows, layer separation)
- Anti-patterns and common mistakes
- Decision trees (which packages to use when)
- All utility methods quick reference
- Configuration best practices
Each package README contains:
- π€ Quick Reference for AI Agents (minimal essential usage)
- Installation instructions
- What's included (exports table)
- Usage guide (step-by-step)
- API reference (detailed documentation)
- See Also (link to AGENTS.md for patterns)
- Related packages
Navigation:
- Start with AGENTS.md for multi-package patterns
- Dive into individual package READMEs for API details
- All READMEs follow consistent structure for easy agent parsing
- CHANGELOG.md in each package - Version history and breaking changes
Navigate to package directories for detailed documentation.