new files from existing ones. abstract class Builder { /// Mapping from input file extension to output file extensions. Map<String, List<String>> get buildExtensions; /// Generates the outputs for a given [BuildStep]. FutureOr<void> build(BuildStep buildStep); }
async { final LibraryElement inputLibrary = await buildStep.inputLibrary; // Get all imports final List<ImportElement> imports = inputLibrary.imports; // Find element with name of foo final List<Element> topElements = inputLibrary.topLevelElements; // Generate content ... }
options) => CopyBuilder(); # my_builder/build.yaml builders: copy: import: "package:my_builder/builder.dart" builder_factories: ["copyBuilder"] build_extensions: {".dart": [".copy.dart"]} # Will automatically run on any package that depends on it auto_apply: dependents # Generate the output directly into the package, not to a hidden cache dir build_to: source /// Creates a [Builder] honoring the configuation in [options]. typedef BuilderFactory = Builder Function(BuilderOptions options);