Skip to content

Commit 560f69a

Browse files
authored
Merge pull request #115 from dolittle/builder-api
Implement explicit builder API for MongoDB copies.
2 parents 5e7af65 + 353f8d3 commit 560f69a

36 files changed

+471
-36
lines changed

Samples/Tutorials/Projections/Chef.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
export class Chef {
77
constructor(
88
public name: string = '',
9-
public dishes: string[] = []
9+
public dishes: string[] = [],
10+
public lastPreparedDish: Date = new Date(0),
1011
) { }
1112
}

Samples/Tutorials/Projections/index.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
import { DolittleClient } from '@dolittle/sdk';
77
import { TenantId } from '@dolittle/sdk.execution';
8+
import { MongoDBConversion } from '@dolittle/sdk.projections';
89
import { setTimeout } from 'timers/promises';
910

1011
import { Chef } from './Chef';
@@ -17,8 +18,12 @@ import { DishPrepared } from './DishPrepared';
1718
.withProjections(_ => _
1819
.create('0767bc04-bc03-40b8-a0be-5f6c6130f68b')
1920
.forReadModel(Chef)
21+
.copyToMongoDB(_ => _
22+
.withConversion('lastPreparedDish', MongoDBConversion.DateTime)
23+
)
2024
.on(DishPrepared, _ => _.keyFromProperty('Chef'), (chef, event, projectionContext) => {
2125
chef.name = event.Chef;
26+
chef.lastPreparedDish = new Date();
2227
if (!chef.dishes.includes(event.Dish)) chef.dishes.push(event.Dish);
2328
return chef;
2429
})

Source/artifacts/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747
"@dolittle/concepts": "6.0.0",
4848
"@dolittle/rudiments": "6.0.0",
4949
"@dolittle/types": "6.0.0",
50-
"@dolittle/runtime.contracts": "6.5.0"
50+
"@dolittle/runtime.contracts": "6.6.0-sam.0"
5151
},
5252
"devDependencies": {
5353
"@types/is-natural-number": "^4.0.0"

Source/embeddings/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,9 @@
4545
},
4646
"dependencies": {
4747
"@dolittle/concepts": "6.0.0",
48-
"@dolittle/contracts": "6.5.0",
48+
"@dolittle/contracts": "6.6.0-sam.0",
4949
"@dolittle/rudiments": "6.0.0",
50-
"@dolittle/runtime.contracts": "6.5.0",
50+
"@dolittle/runtime.contracts": "6.6.0-sam.0",
5151
"@dolittle/sdk.artifacts": "22.1.0",
5252
"@dolittle/sdk.common": "22.1.0",
5353
"@dolittle/sdk.dependencyinversion": "22.1.0",

Source/eventHorizon/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
"dependencies": {
4747
"@dolittle/concepts": "6.0.0",
4848
"@dolittle/rudiments": "6.0.0",
49-
"@dolittle/runtime.contracts": "6.5.0",
49+
"@dolittle/runtime.contracts": "6.6.0-sam.0",
5050
"@dolittle/sdk.events": "22.1.0",
5151
"@dolittle/sdk.execution": "22.1.0",
5252
"@dolittle/sdk.protobuf": "22.1.0",

Source/events.filtering/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,9 @@
4545
},
4646
"dependencies": {
4747
"@dolittle/concepts": "6.0.0",
48-
"@dolittle/contracts": "6.5.0",
48+
"@dolittle/contracts": "6.6.0-sam.0",
4949
"@dolittle/rudiments": "6.0.0",
50-
"@dolittle/runtime.contracts": "6.5.0",
50+
"@dolittle/runtime.contracts": "6.6.0-sam.0",
5151
"@dolittle/sdk.common": "22.1.0",
5252
"@dolittle/sdk.dependencyinversion": "22.1.0",
5353
"@dolittle/sdk.events": "22.1.0",

Source/events.handling/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,9 @@
4545
},
4646
"dependencies": {
4747
"@dolittle/concepts": "6.0.0",
48-
"@dolittle/contracts": "6.5.0",
48+
"@dolittle/contracts": "6.6.0-sam.0",
4949
"@dolittle/rudiments": "6.0.0",
50-
"@dolittle/runtime.contracts": "6.5.0",
50+
"@dolittle/runtime.contracts": "6.6.0-sam.0",
5151
"@dolittle/sdk.artifacts": "22.1.0",
5252
"@dolittle/sdk.common": "22.1.0",
5353
"@dolittle/sdk.dependencyinversion": "22.1.0",

Source/events.processing/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,9 @@
4545
},
4646
"dependencies": {
4747
"@dolittle/concepts": "6.0.0",
48-
"@dolittle/contracts": "6.5.0",
48+
"@dolittle/contracts": "6.6.0-sam.0",
4949
"@dolittle/rudiments": "6.0.0",
50-
"@dolittle/runtime.contracts": "6.5.0",
50+
"@dolittle/runtime.contracts": "6.6.0-sam.0",
5151
"@dolittle/sdk.common": "22.1.0",
5252
"@dolittle/sdk.dependencyinversion": "22.1.0",
5353
"@dolittle/sdk.execution": "22.1.0",

Source/events/EventTypeId.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,14 @@ export class EventTypeId extends ConceptAs<Guid, '@dolittle/sdk.events.EventType
2020
constructor(id: Guid) {
2121
super(id, '@dolittle/sdk.events.EventTypeId');
2222
}
23+
2324
/**
2425
* Creates an {@link EventTypeId} from a {@link Guid} or a {@link string}.
25-
* @param {Guid | string} id - The event type id.
26-
* @returns {EventTypeId} The create event type id concept.
26+
* @param {EventTypeIdLike} id - The event type id.
27+
* @returns {EventTypeId} The created event type id concept.
2728
*/
2829
static from(id: EventTypeIdLike): EventTypeId {
29-
if (id instanceof EventTypeId) return id;
30+
if (isEventTypeId(id)) return id;
3031
return new EventTypeId(Guid.as(id));
3132
}
3233
};

Source/events/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,9 @@
4545
},
4646
"dependencies": {
4747
"@dolittle/concepts": "6.0.0",
48-
"@dolittle/contracts": "6.5.0",
48+
"@dolittle/contracts": "6.6.0-sam.0",
4949
"@dolittle/rudiments": "6.0.0",
50-
"@dolittle/runtime.contracts": "6.5.0",
50+
"@dolittle/runtime.contracts": "6.6.0-sam.0",
5151
"@dolittle/sdk.artifacts": "22.1.0",
5252
"@dolittle/sdk.execution": "22.1.0",
5353
"@dolittle/sdk.protobuf": "22.1.0",

0 commit comments

Comments
 (0)