deflectPackage method
Modifies a package on the filesystem in order to remove dart:mirrors from the package.
A copy of this compiler's package will be written to destinationDirectory
.
This method is overridden to modify the contents of that directory
to remove all uses of dart:mirrors.
Packages should export their Compiler
in their main library file and only
import mirrors in files directly or transitively imported by the Compiler file.
This method should remove that export statement and therefore remove all transitive mirror imports.
Implementation
@override
void deflectPackage(Directory destinationDirectory) {
final libFile = File.fromUri(
destinationDirectory.uri.resolve("lib/").resolve("safe_config.dart"));
final contents = libFile.readAsStringSync();
libFile.writeAsStringSync(
contents.replaceFirst("export 'src/compiler.dart';", ""));
}