HHConfig constructor

HHConfig({
  1. required String env,
  2. List<HActionHook>? actionHooks,
  3. List<SerializationHook>? serializationHooks,
  4. List<TerminalSerializationHook>? terminalSerializationHooks,
  5. 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.',
    );
  }
}