mediateur v0.2.0
mediateur
Easy-to-use library for implementing the mediator pattern
Getting started
Start by installing the mediateur library in your project with the following NPM command:
npm i mediateur
Then define a Message:
// createPerson.ts
import type { Message } from 'mediateur';
export type CreatePerson = Message<'CREATE_PERSON', {
firstName: string;
lastName: string;
email: string;
age: number;
}>
When your message is defined, you can create a dedicated async function to handle it using the MessageHandler type:
// createPerson.handler.ts
import type { MessageHandler } from 'mediateur';
import type { CreatePerson } from './createPerson.ts'
const createPersonHandler: MessageHandler<CreatePerson> = async (message) => {
console.table(message);
return Promise.resolve();
}
Finally, add the handler to the meditor with the register function, then execute the send function by using an instance corresponding to your message:
// app.ts
import { mediator } from 'mediateur';
import { CreatePerson } from './createPerson';
import { createPersonHandler } from 'createPerson.handler';
mediator.register('CREATE_PERSON', createPersonHandler);
(async () => {
const message: CreatePerson = {
type: 'CREATE_PERSON',
data: {
firstName: 'Anthony',
lastName: 'Houston',
email: 'anthony.houston@some-email.com',
age: 30
}
}
await mediator.send<CreatePerson>(message);
})();
This example is really basic, there is more to discover in the documentation.
Contributing
Before you contribute, please take a few minutes to read the contribution guidelines.
Code of Conduct
This project has adopted the code of conduct defined by the Contributor Covenant.
2 months ago
2 months ago
4 months ago
4 months ago
4 months ago
5 months ago
5 months ago
6 months ago
7 months ago
7 months ago
7 months ago
6 months ago
7 months ago
12 months ago
12 months ago
11 months ago
12 months ago
11 months ago
12 months ago
10 months ago
12 months ago
12 months ago
12 months ago
10 months ago
12 months ago
11 months ago
11 months ago
12 months ago
11 months ago
11 months ago
11 months ago
10 months ago
10 months ago
12 months ago
12 months ago
12 months ago
1 year ago
1 year ago
1 year ago
1 year ago