@foblex/ng-mediator
Version:
A mediator library for Angular facilitating a clean architecture with a better command-query separation.
75 lines (57 loc) • 2.18 kB
Markdown
# ngMediator Library
ngMediator is a mediator library for Angular that facilitates a clean architecture with a better command-query separation. It helps in orchestrating the handling of commands and queries in a simple, extendable, and maintainable manner.
## Installation
Install the ngMediator library via npm:
```bash
npm install /ng-mediator
```
## Usage
ngMediator simplifies the handling of commands and queries within your Angular applications, ensuring a clean and maintainable architecture. Below are the steps on how to utilize ngMediator in your project:
1. **Define Requests, Validators, and Handlers**:
Define your requests, validators, and handlers using the provided decorators and interfaces from the ngMediator library.
Example:
```typescript
import { IRequest, FValidatorBase, FCommandBase, FQueryBase } from '@foblex/ng-mediator';
// Define your Request
class MyRequest implements IRequest<MyResponse> { }
// Define your Response
class MyResponse {
// fields...
}
// Define your Validator
class MyValidator extends FValidatorBase<MyRequest, MyResponse> {
validate(request: MyRequest): Observable<Error[]> {
// validation logic...
}
}
// Define your Handler
class MyHandler extends FCommandBase<MyRequest, MyResponse> {
handle(request: MyRequest): Observable<MyResponse> {
// handling logic...
}
}
// or
class MyHandler extends FQueryBase<MyRequest, MyResponse> {
handle(request: MyRequest): Observable<MyResponse> {
// handling logic...
}
}
export class Module { }
```
2. **Send Requests**:
Utilize the FMediator service to send your requests. The service will ensure that your requests are validated and handled by the appropriate handlers.
Example:
```typescript
import { FMediator } from '@foblex/ng-mediator';
fMediator.send(new MyRequest()).subscribe(response => {
console.log(response);
});
```