Merge origin/master (session ISession face) and adapt the goal ref read
The runtime's new outward session contract exposes projections as a
ProjectionsFace (faceOf only); the ui-goal verb closure reads the current
value through faceOf('goal').getSnapshot() instead of the store-level get.
Catalogs regenerated after the merge.
This commit is contained in:
@@ -45,7 +45,8 @@ export function apply(ctx: ClientContext): void {
|
|||||||
|
|
||||||
/** The session's current projected CAS ref, read at verb call time (no staleness fence: the RPC's CAS is the guard). */
|
/** The session's current projected CAS ref, read at verb call time (no staleness fence: the RPC's CAS is the guard). */
|
||||||
const refOf = (sessionId: SessionId): GoalRef | undefined => {
|
const refOf = (sessionId: SessionId): GoalRef | undefined => {
|
||||||
const projection = sessions.binding(sessionId)?.session.projections.get('goal') as GoalProjection | null | undefined
|
const face = sessions.binding(sessionId)?.session.projections.faceOf('goal')
|
||||||
|
const projection = face?.getSnapshot() as GoalProjection | null | undefined
|
||||||
if (projection == null) return undefined
|
if (projection == null) return undefined
|
||||||
return { id: projection.goal.id, revision: projection.goal.revision }
|
return { id: projection.goal.id, revision: projection.goal.revision }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -71,7 +71,10 @@ function bench(options: { projection?: GoalProjection | null | undefined; failWi
|
|||||||
ctx.provide('sessions', {
|
ctx.provide('sessions', {
|
||||||
binding: (id: SessionId) => ({
|
binding: (id: SessionId) => ({
|
||||||
sessionId: id,
|
sessionId: id,
|
||||||
session: { projections: { get: (key: string) => (key === 'goal' ? options.projection : undefined) } },
|
session: { projections: { faceOf: (key: string) => ({
|
||||||
|
getSnapshot: () => (key === 'goal' ? options.projection : undefined),
|
||||||
|
subscribe: () => () => {},
|
||||||
|
}) } },
|
||||||
ctx,
|
ctx,
|
||||||
}),
|
}),
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user