drift/drift_dev/build.yaml

71 lines
2.6 KiB
YAML
Raw Normal View History

2021-10-08 09:10:48 -07:00
# Short description for each builder
2023-07-25 14:24:08 -07:00
# - preparing_builder: Infers the type of inline Dart expressions in drift files.
2021-10-08 09:10:48 -07:00
# We create a `input.temp.dart` file containing the expressions so that they
# can be resolved.
2023-07-25 14:24:08 -07:00
# - drift_dev: The regular SharedPartBuilder for @DriftDatabase and @DriftAccessor
2021-10-08 09:10:48 -07:00
# annotations
2023-07-25 14:24:08 -07:00
# - not_shared: Like drift_dev, but as a PartBuilder instead of
2021-10-08 09:10:48 -07:00
# 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.
2023-07-25 14:24:08 -07:00
# - cleanup: Deletes the `.temp.dart` files generated by the `preparing_builder`.
2021-10-08 09:10:48 -07:00
builders:
preparing_builder:
import: "package:drift_dev/integrations/build.dart"
builder_factories: ["preparingBuilder"]
build_extensions:
".moor": [".drift_prep.json"]
".drift": [".drift_prep.json"]
2021-10-08 09:10:48 -07:00
build_to: cache
applies_builders: ["drift_dev:cleanup"]
2021-10-08 09:10:48 -07:00
2022-11-20 08:28:27 -08:00
# Regular build flow, emitting a shared part file for source_gen to pick up
drift_dev:
2022-09-03 14:29:18 -07:00
import: "package:drift_dev/integrations/build.dart"
builder_factories: ["discover", "analyzer", "driftBuilder"]
2022-09-03 14:29:18 -07:00
build_extensions:
".dart": [".drift.g.part", ".dart.drift_module.json"]
2022-09-03 14:29:18 -07:00
".drift": [".drift.drift_module.json"]
2021-10-08 09:10:48 -07:00
auto_apply: dependents
build_to: cache
required_inputs: [".drift_prep.json"]
applies_builders: ["source_gen:combining_builder", ":preparing_builder"]
2021-10-08 09:10:48 -07:00
2022-11-20 08:28:27 -08:00
# Similar to the regular builder, but emitting a direct part file instead of a
# shared part file.
2021-10-09 08:55:21 -07:00
not_shared:
2021-10-08 09:10:48 -07:00
import: "package:drift_dev/integrations/build.dart"
builder_factories: ["driftBuilderNotShared"]
2021-10-09 08:55:21 -07:00
build_extensions: {".dart": [".drift.dart"]}
2021-10-08 09:10:48 -07:00
build_to: source
auto_apply: none
required_inputs: [".drift_prep.json"]
2021-10-08 09:10:48 -07:00
2022-11-20 08:28:27 -08:00
# A work-in-progress builder that emits standalone Dart libraries for each
# .drift file.
modular:
import: "package:drift_dev/integrations/build.dart"
builder_factories: ["modular"]
build_extensions: {".dart": [".drift.dart"]}
build_to: source
auto_apply: none
required_inputs: [".drift.drift_module.json"]
applies_builders: [":analyzer"]
analyzer:
import: "package:drift_dev/integrations/build.dart"
builder_factories: ["discover", "analyzer"]
2022-11-20 08:28:27 -08:00
build_extensions:
".dart": [".dart.drift_module.json"]
".drift": [".drift.drift_module.json"]
build_to: cache
auto_apply: none
required_inputs: [".drift_prep.json"]
applies_builders: [":preparing_builder"]
runs_before: [":not_shared"]
2022-11-20 08:28:27 -08:00
2021-10-08 09:10:48 -07:00
post_process_builders:
cleanup:
2021-10-08 09:10:48 -07:00
import: "package:drift_dev/integrations/build.dart"
builder_factory: "driftCleanup"