@eac-arch/shared-kernel
v1.0.6
Published
Shared kernel library with domain, application, exception, and utility contracts used across EAC Angular packages.
Readme
@eac-arch/shared-kernel
Shared kernel library with domain, application, exception, and utility contracts used across EAC Angular packages.
Purpose
@eac-arch/shared-kernel defines stable cross-layer primitives so infrastructure and feature packages can share a common language aligned with server-side architecture.
Modules
domain:Entity,AggregateRoot,ValueObject, domain events, specification pattern (including composable query specifications).application: request/result messaging, command/query contracts, repository interfaces, query service contracts, paged list helpers, data shaping helpers.exceptions:BaseExceptionand typed domain/application exception classes.utils: sort field parsing/formatting, patch operation builders, age/date helpers.
Representative API
export * from '@eac-arch/shared-kernel';
// Examples:
createPagedList(...)
formatSortFields(...)
buildReplacePatches(...)
new ValidationException([...])Key Design Notes
- Emphasizes interfaces/contracts over concrete implementations.
- Encodes CQRS concepts (
Command,Query,IQueryService). - Encodes DDD concepts (
Entity,AggregateRoot,ValueObject,Specification). - Patch and sorting utilities are transport-agnostic and reused by persistence/http libraries.
Dependencies
- Angular peer baseline (common/core)
tslib
No dependency on other @eac-arch/* libraries; this is the foundational package.
Development
From eac-arch-shared-kernel:
npm install
npm run build
npm testCreated By
Erick Arostegui Cunza
Enterprise Solutions Architect
Professional Profile:
- LinkedIn: https://www.linkedin.com/in/erick-arostegui-cunza/
Articles:
- Medium: https://medium.com/@scorpius86
Channels and Media:
- Facebook: https://www.facebook.com/Erick.Arostegui.Cunza
- TikTok: https://www.tiktok.com/@erick_arostegui_cunza
- Instagram: https://www.instagram.com/erickarosteguicunza/
- Spotify: https://open.spotify.com/show/2JQxlxcRg7k7cJ1hB52Ge5
Created by Erick Arostegui Cunza.