@emkodev/emkore
v1.0.3
Published
A TypeScript foundation framework for building robust, type-safe business applications with clean architecture patterns
Maintainers
Readme
Emkore
A TypeScript foundation framework for building robust, type-safe business applications with clean architecture patterns.
Why Emkore?
- Clean architecture patterns - Built on Domain-Driven Design and SOLID principles
- Type-safe - TypeScript with strict mode
- Framework agnostic - Works with Deno, Node.js, and Bun
- Zero dependencies - No external dependencies, pure TypeScript
- Comprehensive - Complete framework with all essential building blocks
- Developer-friendly - Intuitive APIs with comprehensive documentation
Philosophy
Emkore provides pure abstractions and patterns for building scalable business applications without imposing implementation details. It follows a pragmatic, clean code philosophy that prioritizes simplicity, maintainability, and type safety.
Key Features
- Zero Dependencies: Lightweight core with no external dependencies
- Type Safety: Strict TypeScript with comprehensive type checking
- Clean Architecture: Separation of business logic from infrastructure
- Extensible: Pure abstractions that you implement according to your needs
- Testing-Friendly: Built with testability in mind
Code Quality Metrics
- 📊 Pure TypeScript - No JavaScript required
- ✅ Comprehensive Tests - Extensive unit and integration test suite
- 🚀 Direct Execution - No build step required, runs directly
- 📦 Zero Dependencies - No external packages to manage or audit
- 📐 Strict Mode Compliant - No warnings with strictest TypeScript settings
Installation
Deno
deno add @emkodev/emkoreNode.js / npm
npx jsr add @emkodev/emkoreBun
bunx jsr add @emkodev/emkoreQuick Start
See the example directory for a complete working example of how to:
- Create use cases with the
Usecasebase class - Implement business logic with proper authorization
- Use the Entity pattern with DTOs
- Handle validation and permissions
Core Concepts
Entities
Base Entity class with built-in id generation, ownership tracking, and soft
deletion support.
Use Cases
Abstract Usecase<Input, Output> class with interceptor support for
authorization, logging, and performance tracking.
Validation
Fluent ValidatorBuilder for input validation with comprehensive error
reporting.
Repository Pattern
BaseRepository interface for data persistence with Unit of Work support.
Authorization
Permission-based authorization with Actor and resource scoping.
Money Value Object
Type-safe Money class for monetary calculations.
Documentation
- Developer Guide - Philosophy, principles, and best practices
- TypeScript Guide - TypeScript-specific guidelines
- Platform Dependencies - Platform-specific considerations
- Examples - Working code examples
Contributing
- Read the Developer Guide to understand our philosophy
- Follow existing code patterns and conventions
- Write tests for new functionality
- Keep it simple and maintainable
License
MIT License - see LICENSE file for details.
Release Status
Version 1.0.0 - Stable release with a mature, well-tested API.
