v1.3.0
Support GraphQL Promises in Read Model getters. With this change, a Read Model can now define a getter that returns a promise to perform nested queries or additional requests when the property is requested via GraphQL.
Examples:
Return a calculated value:
export class CartReadModel {
public get cartItemsSize(): number | undefined {
return this.cartItems ? this.cartItems.length : 0
}
}Perform a nested search to return another ReadModel value nested in the response:
export class CartReadModel {
public get lastProduct(): Promise<ProductReadModel | undefined> {
if (this.cartItemsSize === 0) {
return Promise.resolve(undefined)
}
return Booster.readModel(ProductReadModel)
.filter({
id: { eq: this.cartItems.at(-1)?.productId },
})
.searchOne()
}
}