# Short description for each builder

#  - preparing_builder: Infers the type of inline Dart expressions in moor files.
#    We create a `input.temp.dart` file containing the expressions so that they
#    can be resolved.
#  - moor_generator: The regular SharedPartBuilder for @UseMoor and @UseDao
#    annotations
#  - moor_generator_not_shared: Like moor_generator, but as a PartBuilder instead of
#    a SharedPartBuilder. This builder is disabled by default, but users may choose
#    to use it so that generated classes can be used by other builders.
#  - moor_cleanup: Deletes the `.temp.dart` files generated by the `preparing_builder`.

builders:
  preparing_builder:
    import: "package:moor_generator/integrations/build.dart"
    builder_factories: ["preparingBuilder"]
    build_extensions: {".moor": [".temp.dart", ".dart_in_moor"]}
    build_to: cache
    auto_apply: dependents
    applies_builders: ["moor_generator|moor_cleanup"]

  moor_generator:
    import: "package:moor_generator/integrations/build.dart"
    builder_factories: ["moorBuilder"]
    build_extensions: {".dart": [".moor.g.part"]}
    auto_apply: dependents
    build_to: cache
    required_inputs: [".dart_in_moor"]
    applies_builders: ["source_gen|combining_builder"]

  moor_generator_not_shared:
    import: "package:moor_generator/integrations/build.dart"
    builder_factories: ["moorBuilderNotShared"]
    build_extensions: {".dart": [".moor.dart"]}
    build_to: source
    auto_apply: none
    required_inputs: [".dart_in_moor"]

post_process_builders:
  moor_cleanup:
    import: "package:moor_generator/integrations/build.dart"
    builder_factory: "moorCleanup"