-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Description
@johnniwinther and I were discussing this yesterday:
We'd like to support easier composition of declarations in libraries.json files. This will make it easier to share declarations of library UIRs and patch URIs across configurations and across repos and reduce the risk of common configurations going stale accidentally.
As an example, we've recently noticed that the flutter web configuration is missing entries required by dart2js because the entries are simply copied & pasted from a point in time long ago.
We foresee this feature to be used by the flutter target (reusing most settings from the vm target), dart2js and dart2js_server targets (which share some common definitions), and the wasm target (that also reuses bits from the vm target).
So far our inclination is to support cross-file references of this form:
target_name:
inherit_from:
uri: ../../libraries.json
target: boo
library_name:
uri: bar.dart@johnniwinther - dart2js_server and dart2js have a lot in common, but neither is a subset of the other. Because of that, we likely need a mechanism to express only the common pieces. This could be:
- allow artificial "targets" that are only there to specify commonalities (e.g.
dart2js_common) - allow
hidedirectives to exclude what you don't need. I worry about show directives because they are not typically future compatible