@nestjs/cqrs
Advanced tools
Comparing version 8.0.1 to 8.0.2
@@ -5,3 +5,4 @@ export declare const COMMAND_METADATA = "__command__"; | ||
export declare const QUERY_HANDLER_METADATA = "__queryHandler__"; | ||
export declare const EVENT_METADATA = "__event__"; | ||
export declare const EVENTS_HANDLER_METADATA = "__eventsHandler__"; | ||
export declare const SAGA_METADATA = "__saga__"; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.SAGA_METADATA = exports.EVENTS_HANDLER_METADATA = exports.QUERY_HANDLER_METADATA = exports.QUERY_METADATA = exports.COMMAND_HANDLER_METADATA = exports.COMMAND_METADATA = void 0; | ||
exports.SAGA_METADATA = exports.EVENTS_HANDLER_METADATA = exports.EVENT_METADATA = exports.QUERY_HANDLER_METADATA = exports.QUERY_METADATA = exports.COMMAND_HANDLER_METADATA = exports.COMMAND_METADATA = void 0; | ||
exports.COMMAND_METADATA = '__command__'; | ||
@@ -8,3 +8,4 @@ exports.COMMAND_HANDLER_METADATA = '__commandHandler__'; | ||
exports.QUERY_HANDLER_METADATA = '__queryHandler__'; | ||
exports.EVENT_METADATA = '__event__'; | ||
exports.EVENTS_HANDLER_METADATA = '__eventsHandler__'; | ||
exports.SAGA_METADATA = '__saga__'; |
@@ -6,2 +6,3 @@ "use strict"; | ||
const constants_1 = require("./constants"); | ||
const uuid_1 = require("uuid"); | ||
/** | ||
@@ -19,2 +20,7 @@ * Decorator that marks a class as a Nest event handler. An event handler | ||
return (target) => { | ||
events.forEach((event) => { | ||
if (!Reflect.hasMetadata(constants_1.EVENT_METADATA, event)) { | ||
Reflect.defineMetadata(constants_1.EVENT_METADATA, { id: (0, uuid_1.v4)() }, event); | ||
} | ||
}); | ||
Reflect.defineMetadata(constants_1.EVENTS_HANDLER_METADATA, events, target); | ||
@@ -21,0 +27,0 @@ }; |
@@ -11,3 +11,3 @@ import { OnModuleDestroy, Type } from '@nestjs/common'; | ||
private readonly moduleRef; | ||
protected getEventName: (event: EventBase) => string; | ||
protected getEventId: (event: EventBase) => string; | ||
protected readonly subscriptions: Subscription[]; | ||
@@ -21,10 +21,10 @@ private _publisher; | ||
publishAll<T extends EventBase>(events: T[]): any; | ||
bind(handler: IEventHandler<EventBase>, name: string): void; | ||
bind(handler: IEventHandler<EventBase>, id: string): void; | ||
registerSagas(types?: Type<unknown>[]): void; | ||
register(handlers?: EventHandlerType<EventBase>[]): void; | ||
protected registerHandler(handler: EventHandlerType<EventBase>): void; | ||
protected ofEventName(name: string): Observable<EventBase>; | ||
protected ofEventId(name: string): Observable<EventBase>; | ||
protected registerSaga(saga: ISaga<EventBase>): void; | ||
private reflectEventsNames; | ||
private reflectEvents; | ||
private useDefaultPublisher; | ||
} |
@@ -21,3 +21,3 @@ "use strict"; | ||
const exceptions_1 = require("./exceptions"); | ||
const default_get_event_name_1 = require("./helpers/default-get-event-name"); | ||
const default_get_event_id_1 = require("./helpers/default-get-event-id"); | ||
const default_pubsub_1 = require("./helpers/default-pubsub"); | ||
@@ -31,3 +31,3 @@ const utils_1 = require("./utils"); | ||
this.subscriptions = []; | ||
this.getEventName = default_get_event_name_1.defaultGetEventName; | ||
this.getEventId = default_get_event_id_1.defaultGetEventId; | ||
this.useDefaultPublisher(); | ||
@@ -53,4 +53,4 @@ } | ||
} | ||
bind(handler, name) { | ||
const stream$ = name ? this.ofEventName(name) : this.subject$; | ||
bind(handler, id) { | ||
const stream$ = id ? this.ofEventId(id) : this.subject$; | ||
const subscription = stream$.subscribe((event) => handler.handle(event)); | ||
@@ -80,7 +80,7 @@ this.subscriptions.push(subscription); | ||
} | ||
const eventsNames = this.reflectEventsNames(handler); | ||
eventsNames.map((event) => this.bind(instance, event.name)); | ||
const events = this.reflectEvents(handler); | ||
events.map((event) => this.bind(instance, (0, default_get_event_id_1.defaultReflectEventId)(event))); | ||
} | ||
ofEventName(name) { | ||
return this.subject$.pipe((0, operators_1.filter)((event) => this.getEventName(event) === name)); | ||
ofEventId(name) { | ||
return this.subject$.pipe((0, operators_1.filter)((event) => this.getEventId(event) === name)); | ||
} | ||
@@ -100,3 +100,3 @@ registerSaga(saga) { | ||
} | ||
reflectEventsNames(handler) { | ||
reflectEvents(handler) { | ||
return Reflect.getMetadata(constants_1.EVENTS_HANDLER_METADATA, handler); | ||
@@ -103,0 +103,0 @@ } |
{ | ||
"name": "@nestjs/cqrs", | ||
"version": "8.0.1", | ||
"version": "8.0.2", | ||
"description": "A lightweight CQRS module for Nest framework (node.js)", | ||
@@ -23,22 +23,22 @@ "license": "MIT", | ||
"devDependencies": { | ||
"@commitlint/cli": "15.0.0", | ||
"@commitlint/config-angular": "15.0.0", | ||
"@nestjs/common": "8.2.3", | ||
"@nestjs/core": "8.2.3", | ||
"@types/node": "16.11.12", | ||
"@types/jest": "27.0.3", | ||
"@typescript-eslint/eslint-plugin": "5.6.0", | ||
"@typescript-eslint/parser": "5.6.0", | ||
"eslint": "8.4.1", | ||
"@commitlint/cli": "16.2.1", | ||
"@commitlint/config-angular": "16.2.1", | ||
"@nestjs/common": "8.3.0", | ||
"@nestjs/core": "8.3.0", | ||
"@types/node": "16.11.24", | ||
"@types/jest": "27.4.0", | ||
"@typescript-eslint/eslint-plugin": "5.11.0", | ||
"@typescript-eslint/parser": "5.11.0", | ||
"eslint": "8.9.0", | ||
"eslint-config-prettier": "8.3.0", | ||
"eslint-plugin-import": "2.25.3", | ||
"eslint-plugin-import": "2.25.4", | ||
"husky": "7.0.4", | ||
"jest": "27.4.3", | ||
"lint-staged": "12.1.2", | ||
"jest": "27.5.1", | ||
"lint-staged": "12.3.4", | ||
"prettier": "2.5.1", | ||
"reflect-metadata": "0.1.13", | ||
"release-it": "14.11.8", | ||
"rxjs": "7.4.0", | ||
"ts-jest": "27.1.1", | ||
"typescript": "4.5.2" | ||
"release-it": "14.12.4", | ||
"rxjs": "7.5.4", | ||
"ts-jest": "27.1.3", | ||
"typescript": "4.5.5" | ||
}, | ||
@@ -45,0 +45,0 @@ "peerDependencies": { |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
84689
128
1339