initializer function

Builder initializer(
  1. BuilderOptions options
)

Supports package:build_runner creation and configuration of initializer.

Not meant to be invoked by hand-authored code.

Implementation

Builder initializer(BuilderOptions options) {
  try {
    final config = Initializer.fromJson(options.config);
    final settings = Settings(config: config);
    // return partBuilder(config: config);
    return AggregateBuilder(
      outputPath: settings.config.outputPath,
      order: settings.config.order,
      debug: settings.config.debug,
      generators: [
        InitializerGenerator.fromSettings(settings),
      ],
    );
  } on CheckedFromJsonException catch (e) {
    final lines = <String>[
      'Could not parse the options provided for `initializer`.'
    ];

    if (e.key != null) {
      lines.add('There is a problem with "${e.key}".');
    }
    if (e.message != null) {
      lines.add(e.message!);
    } else if (e.innerError != null) {
      lines.add(e.innerError.toString());
    }

    throw StateError(lines.join('\n'));
  }
}