private async handle()

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;
    }