4.0.2 • Published 7 years ago

js-cqrs v4.0.2

Weekly downloads
-
License
ISC
Repository
gitlab
Last release
7 years ago

Usage

js-cqrs is a lightweight and easy to use implementation of the cqrs pattern. It allows for quick integration due to simplified API.

export class SaveUserRequest extends Command{
	data: any;
	constructor(data: any){
			this.data = data;
	}
}

export class SaveUserRequestHandler extends CommandHandler {
	handle(command: SaveUserRequest){
			var event = new UserSaved({firstName: command.data.firstName});
			Cqrs.Instance.Publish(event);
	}
}

export class UserSaved extends Event {
    data: any;
    constructor(data: any) {
        this.data = data;
    }
}

class EventListener1 extends EventListener {
	static processed: boolean = false;
	static firstName: string = "";
	handle(event: UserSaved) {
		EventListener1.processed = true;
		EventListener1.firstName = event.data.firstName;
	}
}

class EventListener2 extends EventListener {
	static processed: boolean = false;
	handle(event: UserSaved): void {
		EventListener2.processed = true;
	}
}

Cqrs.Instance.AddCommandHandler(SaveUserRequest, SaveUserRequestHandler, null);
Cqrs.Instance.AddEventListener(UserSaved, EventListener1, null);
Cqrs.Instance.AddEventListener(UserSaved, EventListener2, null);

let newSaveUserCommand = new SaveUserRequest({ id: '1', firstName: 'Sebastian' });
Cqrs.Instance.Send(newSaveUserCommand);

expect(EventListener1.processed).toBe(true);
expect(EventListener2.processed).toBe(true);
expect(EventListener1.firstName).toBe("Sebastian");
4.0.2

7 years ago

4.0.0

7 years ago

3.0.5

8 years ago

3.0.4

8 years ago

3.0.3

8 years ago

3.0.2

8 years ago

3.0.1

8 years ago

3.0.0

8 years ago

2.0.14

8 years ago

2.0.13

8 years ago

2.0.12

8 years ago

2.0.11

8 years ago

2.0.10

8 years ago

2.0.9

8 years ago

2.0.8

8 years ago

2.0.7

8 years ago

2.0.6

8 years ago

2.0.5

8 years ago

2.0.4

8 years ago

2.0.3

8 years ago

2.0.2

8 years ago

2.0.1

8 years ago

2.0.0

8 years ago

1.0.1

8 years ago

1.0.0

8 years ago