invoke method

Future<Object?> invoke(
  1. TaskContext context,
  2. Future<Object?> handler()
)

Runs execution middleware around a runtime-provided invocation.

VM workers supply their supervised isolate/inline executor here. Portable processing supplies a local invocation. The caller owns timeout enforcement and error disposition.

Implementation

Future<Object?> invoke(
  TaskContext context,
  Future<Object?> Function() handler,
) async {
  Object? result;

  Future<void> run(int index) async {
    if (index >= middleware.length) {
      result = await handler();
      return;
    }
    await middleware[index].onExecute(context, () => run(index + 1));
  }

  await run(0);
  return result;
}