HHConfig constructor
HHConfig({
- required String env,
- List<
HActionHook> ? actionHooks, - List<
SerializationHook> ? serializationHooks, - List<
TerminalSerializationHook> ? terminalSerializationHooks, - bool usesMeta = true,
Creates a mutable configuration.
Set usesMeta to enable metadata support (default: true).
Implementation
HHConfig({
required this.env,
List<HActionHook>? actionHooks,
List<SerializationHook>? serializationHooks,
List<TerminalSerializationHook>? terminalSerializationHooks,
this.usesMeta = true,
}) : actionHooks = actionHooks != null ? List.from(actionHooks) : [],
serializationHooks = serializationHooks != null
? List.from(serializationHooks)
: [],
terminalSerializationHooks = terminalSerializationHooks != null
? List.from(terminalSerializationHooks)
: [] {
// env cannot start with _
if (env.startsWith('_')) {
throw ArgumentError(
'Environment name cannot start with an underscore (_).',
);
}
// If usesMeta is false, no action hooks are allowed
if (!usesMeta && this.actionHooks.isNotEmpty) {
throw ArgumentError(
'Action hooks are not allowed when usesMeta is false.',
);
}
}