Skip to content

Commit 3c3d928

Browse files
committed
Merge branch 'master' of github.com:dolittle/JavaScript.SDK into event-type
2 parents 2c3bfd1 + a047027 commit 3c3d928

24 files changed

Lines changed: 195 additions & 185 deletions

File tree

Samples/Basic/MyEventHandler.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { eventHandler, handles } from '@dolittle/sdk.events.handling';
55
import { MyEvent } from './MyEvent';
66

77

8-
@eventHandler('a27074a7-5b01-43c9-b4f0-c1d59668d844', { inScope: '406d6473-7cc9-44a6-a55f-775c1021d957' })
8+
@eventHandler('a27074a7-5b01-43c9-b4f0-c1d59668d844')
99
export class MyEventHandler {
1010

1111
@handles(MyEvent)

Samples/Basic/package.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "basic",
33
"private": true,
4-
"version": "3.1.2",
4+
"version": "4.0.0",
55
"main": "index.js",
66
"author": "Dolittle",
77
"license": "MIT",
@@ -11,10 +11,10 @@
1111
"build": "tsc -p ./tsconfig.json"
1212
},
1313
"dependencies": {
14-
"@dolittle/sdk": "3.1.2",
15-
"@dolittle/sdk.artifacts": "3.1.2",
16-
"@dolittle/sdk.events": "3.1.2",
17-
"@dolittle/sdk.events.handling": "3.1.2"
14+
"@dolittle/sdk": "4.0.0",
15+
"@dolittle/sdk.artifacts": "4.0.0",
16+
"@dolittle/sdk.events": "4.0.0",
17+
"@dolittle/sdk.events.handling": "4.0.0"
1818
},
1919
"devDependencies": {
2020
"nodemon": "^2.0.4",

Samples/Container/package.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "container",
33
"private": true,
4-
"version": "3.1.2",
4+
"version": "4.0.0",
55
"main": "index.js",
66
"author": "Dolittle",
77
"license": "MIT",
@@ -11,10 +11,10 @@
1111
"build": "tsc -p ./tsconfig.json"
1212
},
1313
"dependencies": {
14-
"@dolittle/sdk": "3.1.2",
15-
"@dolittle/sdk.artifacts": "3.1.2",
16-
"@dolittle/sdk.events": "3.1.2",
17-
"@dolittle/sdk.events.handling": "3.1.2",
14+
"@dolittle/sdk": "4.0.0",
15+
"@dolittle/sdk.artifacts": "4.0.0",
16+
"@dolittle/sdk.events": "4.0.0",
17+
"@dolittle/sdk.events.handling": "4.0.0",
1818
"reflect-metadata": "^0.1.13",
1919
"typedi": "0.8.0"
2020
},

Samples/EventHorizon/package.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "eventhorizon",
33
"private": true,
4-
"version": "3.1.2",
4+
"version": "4.0.0",
55
"main": "index.js",
66
"author": "Dolittle",
77
"license": "MIT",
@@ -11,11 +11,11 @@
1111
"build": "tsc -p ./tsconfig.json"
1212
},
1313
"dependencies": {
14-
"@dolittle/sdk": "3.1.2",
15-
"@dolittle/sdk.artifacts": "3.1.2",
16-
"@dolittle/sdk.events": "3.1.2",
17-
"@dolittle/sdk.eventhorizon": "3.1.2",
18-
"@dolittle/sdk.events.handling": "3.1.2"
14+
"@dolittle/sdk": "4.0.0",
15+
"@dolittle/sdk.artifacts": "4.0.0",
16+
"@dolittle/sdk.events": "4.0.0",
17+
"@dolittle/sdk.eventhorizon": "4.0.0",
18+
"@dolittle/sdk.events.handling": "4.0.0"
1919
},
2020
"devDependencies": {
2121
"nodemon": "^2.0.4",

Source/artifacts/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@dolittle/sdk.artifacts",
3-
"version": "3.1.2",
3+
"version": "4.0.0",
44
"description": "",
55
"author": "",
66
"license": "MIT",

Source/common/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@dolittle/sdk.common",
3-
"version": "3.1.2",
3+
"version": "4.0.0",
44
"description": "",
55
"author": "",
66
"license": "MIT",

Source/eventHorizon/package.json

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@dolittle/sdk.eventhorizon",
3-
"version": "3.1.2",
3+
"version": "4.0.0",
44
"description": "",
55
"author": "",
66
"license": "MIT",
@@ -35,12 +35,12 @@
3535
"dependencies": {
3636
"@dolittle/rudiments": "5.0.0",
3737
"@dolittle/runtime.contracts": "5.1.19",
38-
"@dolittle/sdk.events": "3.1.2",
39-
"@dolittle/sdk.artifacts": "3.1.2",
40-
"@dolittle/sdk.execution": "3.1.2",
41-
"@dolittle/sdk.protobuf": "3.1.2",
42-
"@dolittle/sdk.services": "3.1.2",
43-
"@dolittle/sdk.resilience": "3.1.2",
38+
"@dolittle/sdk.events": "4.0.0",
39+
"@dolittle/sdk.artifacts": "4.0.0",
40+
"@dolittle/sdk.execution": "4.0.0",
41+
"@dolittle/sdk.protobuf": "4.0.0",
42+
"@dolittle/sdk.services": "4.0.0",
43+
"@dolittle/sdk.resilience": "4.0.0",
4444
"luxon": "1.24.1",
4545
"rxjs": "6.6.0",
4646
"winston": "3.3.2"

Source/events.filtering/package.json

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@dolittle/sdk.events.filtering",
3-
"version": "3.1.2",
3+
"version": "4.0.0",
44
"description": "",
55
"author": "",
66
"license": "MIT",
@@ -34,14 +34,14 @@
3434
"dependencies": {
3535
"@dolittle/rudiments": "5.0.0",
3636
"@dolittle/runtime.contracts": "5.1.19",
37-
"@dolittle/sdk.artifacts": "3.1.2",
38-
"@dolittle/sdk.events": "3.1.2",
39-
"@dolittle/sdk.events.handling": "3.1.2",
40-
"@dolittle/sdk.events.processing": "3.1.2",
41-
"@dolittle/sdk.execution": "3.1.2",
42-
"@dolittle/sdk.services": "3.1.2",
43-
"@dolittle/sdk.protobuf": "3.1.2",
44-
"@dolittle/sdk.resilience": "3.1.2",
37+
"@dolittle/sdk.artifacts": "4.0.0",
38+
"@dolittle/sdk.events": "4.0.0",
39+
"@dolittle/sdk.events.handling": "4.0.0",
40+
"@dolittle/sdk.events.processing": "4.0.0",
41+
"@dolittle/sdk.execution": "4.0.0",
42+
"@dolittle/sdk.services": "4.0.0",
43+
"@dolittle/sdk.protobuf": "4.0.0",
44+
"@dolittle/sdk.resilience": "4.0.0",
4545
"rxjs": "6.6.0",
4646
"luxon": "1.24.1",
4747
"winston": "3.3.2"

Source/events.handling/EventHandler.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@ import { Guid } from '@dolittle/rudiments';
66
import { Artifact, ArtifactMap } from '@dolittle/sdk.artifacts';
77
import { EventContext, ScopeId } from '@dolittle/sdk.events';
88

9-
import { EventHandlerDecoratedTypes, IEventHandler, EventHandlerSignature, MissingEventHandlerForType, EventHandlerId } from './index';
10-
import { EventHandlerOptions } from './EventHandlerOptions';
9+
import { EventHandlerDecoratedTypes, IEventHandler, EventHandlerSignature, MissingEventHandlerForType, EventHandlerId, EventHandlerDecoratedType, EventHandlerOptions} from './index';
1110

1211
/**
1312
* Represents an implementation of {@link IEventHandler}.
@@ -46,14 +45,15 @@ export class EventHandler implements IEventHandler {
4645

4746
/**
4847
* Decorator to mark a class as an EventHandler.
49-
* @param {Guid | string} eventHandlerId EventHandler's given id
48+
* @param {string | Guid | EventHandlerId} eventHandlerId EventHandler's given id
5049
* @param {EventHandlerOptions} [options={}] Options to give to the EventHandler
5150
*/
52-
export function eventHandler(eventHandlerId: Guid | string, options: EventHandlerOptions = {}) {
51+
export function eventHandler(eventHandlerId: string | Guid | EventHandlerId, options: EventHandlerOptions = {}) {
5352
return function (target: any) {
54-
EventHandlerDecoratedTypes.registerEventHandler(
53+
EventHandlerDecoratedTypes.register(new EventHandlerDecoratedType(
5554
EventHandlerId.from(eventHandlerId),
56-
target);
57-
EventHandlerDecoratedTypes.registerOptions(options, target);
55+
options.inScope ? ScopeId.from(options.inScope) : ScopeId.default,
56+
!options.unpartitioned,
57+
target));
5858
};
5959
}
Lines changed: 8 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,57 +1,21 @@
11
// Copyright (c) Dolittle. All rights reserved.
22
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
33

4-
import { ScopeId } from '@dolittle/sdk.events';
5-
import { EventHandlerDecoratedType, EventHandlerId, EventHandlerIdAlreadyInUse, EventHandlerOptions } from './index';
4+
import { ReplaySubject } from 'rxjs';
5+
6+
import { EventHandlerDecoratedType } from './index';
67

78
/**
89
* Handles registering and mappings between @eventHandler decorated classes and their given id and options.
910
*/
1011
export class EventHandlerDecoratedTypes {
11-
private static readonly _eventHandlers = new Map<Function, EventHandlerId>() ;
12-
private static readonly _scopes = new Map<Function, ScopeId>();
13-
private static readonly _unpartitioned = new Map<Function, boolean>();
14-
15-
/**
16-
* Registers an @EventHandlerId to a specific type.
17-
* @param {EventHandlerId} eventHandlerId EventHandlerId to register the type with.
18-
* @param {Function} eventHandlerType Type of the event handler.
19-
*/
20-
static registerEventHandler(eventHandlerId: EventHandlerId, eventHandlerType: Function) {
21-
for (const [func, id] of this._eventHandlers) {
22-
if (id.equals(eventHandlerId)) throw new EventHandlerIdAlreadyInUse(eventHandlerId, eventHandlerType, func);
23-
}
24-
this._eventHandlers.set(eventHandlerType, eventHandlerId);
25-
}
12+
static readonly types: ReplaySubject<EventHandlerDecoratedType> = new ReplaySubject<EventHandlerDecoratedType>();
2613

2714
/**
28-
* Registers @EventHandlerOptions to a specific type.
29-
* @param options EventHandlerOptions to register the type with.
30-
* @param eventHandlerType Type of the event handler.
15+
* Registers an decorated event handler class with the Runtime.
16+
* @param {EventHandlerDecoratedType} eventHandlerDecoratedType The decorated type to register.
3117
*/
32-
static registerOptions(options: EventHandlerOptions, eventHandlerType: Function) {
33-
if (options.inScope) {
34-
this._scopes.set(eventHandlerType, ScopeId.from(options.inScope));
35-
}
36-
if (options.unpartitioned) {
37-
this._unpartitioned.set(eventHandlerType, true);
38-
}
39-
}
40-
41-
/**
42-
* Creates an array of EventhandlerDecoratedType's and calls the callback on each one of them.
43-
* @param callback
44-
*/
45-
static forEach(callback: (eventHandlerDecoratedType: EventHandlerDecoratedType) => void) {
46-
const eventHandlerDecoratedTypes: EventHandlerDecoratedType[] = [];
47-
for (const [func, id] of this._eventHandlers) {
48-
const scopeId = this._scopes.has(func) ? this._scopes.get(func)! : ScopeId.default;
49-
const partitioned = !this._unpartitioned.has(func);
50-
eventHandlerDecoratedTypes.push(new EventHandlerDecoratedType(id, scopeId, partitioned, func));
51-
}
52-
53-
for (const eventHandlerDecoratedType of eventHandlerDecoratedTypes) {
54-
callback(eventHandlerDecoratedType);
55-
}
18+
static register(eventHandlerDecoratedType: EventHandlerDecoratedType) {
19+
this.types.next(eventHandlerDecoratedType);
5620
}
5721
}

0 commit comments

Comments
 (0)