in src/entities/Entity.ts [29:76]
private async handle(
entityTrigger: DurableEntityBindingInfo,
context: EntityContext<T>
): Promise<EntityState> {
const entityBinding = Utils.getInstancesOf<DurableEntityBindingInfo>(
{ trigger: entityTrigger },
new DurableEntityBindingInfoReqFields(
new EntityId("samplename", "samplekey"),
true,
[]
) as DurableEntityBindingInfo
)[0];
if (entityBinding === undefined) {
throw new Error("Could not find an entityTrigger binding on context.");
}
// Setup
const returnState: EntityState = new EntityState([], []);
returnState.entityExists = entityBinding.exists;
returnState.entityState = entityBinding.state;
for (let i = 0; i < entityBinding.batch.length; i++) {
const startTime = new Date();
context.df = this.getCurrentDurableEntityContext(
entityBinding,
returnState,
i,
startTime
);
try {
await Promise.resolve(this.fn(context));
if (!returnState.results[i]) {
const elapsedMs = this.computeElapsedMilliseconds(startTime);
returnState.results[i] = new OperationResult(false, elapsedMs);
}
} catch (error) {
const elapsedMs = this.computeElapsedMilliseconds(startTime);
returnState.results[i] = new OperationResult(
true,
elapsedMs,
JSON.stringify(error)
);
}
}
return returnState;
}