invoke method
Dispatches a hook invocation by type.
Implementation
Future<dynamic> invoke(
String hookType,
dynamic input,
String sessionId,
) async {
final invocation = HookInvocation(sessionId: sessionId);
switch (hookType) {
case 'preToolUse':
if (onPreToolUse != null) {
return await onPreToolUse!(
PreToolUseInput.fromJson(input as Map<String, dynamic>),
invocation,
);
}
case 'postToolUse':
if (onPostToolUse != null) {
return await onPostToolUse!(
PostToolUseInput.fromJson(input as Map<String, dynamic>),
invocation,
);
}
case 'userPromptSubmitted':
if (onUserPromptSubmitted != null) {
return await onUserPromptSubmitted!(
UserPromptSubmittedInput.fromJson(input as Map<String, dynamic>),
invocation,
);
}
case 'sessionStart':
if (onSessionStart != null) {
return await onSessionStart!(
SessionStartInput.fromJson(input as Map<String, dynamic>),
invocation,
);
}
case 'sessionEnd':
if (onSessionEnd != null) {
return await onSessionEnd!(
SessionEndInput.fromJson(input as Map<String, dynamic>),
invocation,
);
}
case 'errorOccurred':
if (onErrorOccurred != null) {
return await onErrorOccurred!(
ErrorOccurredInput.fromJson(input as Map<String, dynamic>),
invocation,
);
}
}
return null;
}