feat(dart/transform): Generate DirectiveMetadata for exports

For all files that export another library, include `DirectiveMetadata`
for the exported library in that file's associated `ng_meta.json` file.
This commit is contained in:
Tim Blasi
2015-05-06 10:00:25 -07:00
parent 6651aa1e1d
commit c8ebd11d63
14 changed files with 260 additions and 62 deletions

View File

@ -40,7 +40,7 @@ class _DirectiveMetadataVisitor extends Object
}
meta = new DirectiveMetadata(
type: directiveType,
compileChildren: false,
compileChildren: true,
properties: {},
hostListeners: {},
hostProperties: {},

View File

@ -8,7 +8,7 @@ DartFormatter _formatter = null;
void init(DartFormatter formatter) {
if (_formatter != null) {
logger.warning('Formatter is being overwritten.');
logger.info('Formatter is being overwritten.');
}
_formatter = formatter;
}

View File

@ -4,9 +4,32 @@ const SETUP_METHOD_NAME = 'initReflector';
const REFLECTOR_VAR_NAME = 'reflector';
const TRANSFORM_DYNAMIC_MODE = 'transform_dynamic';
const DEPS_EXTENSION = '.ng_deps.dart';
const META_EXTENSION = '.ng_meta.dart';
const META_EXTENSION = '.ng_meta.json';
const REFLECTION_CAPABILITIES_NAME = 'ReflectionCapabilities';
const REGISTER_TYPE_METHOD_NAME = 'registerType';
const REGISTER_GETTERS_METHOD_NAME = 'registerGetters';
const REGISTER_SETTERS_METHOD_NAME = 'registerSetters';
const REGISTER_METHODS_METHOD_NAME = 'registerMethods';
/// Returns `uri` with its extension updated to [META_EXTENSION].
String toMetaExtension(String uri) =>
_toExtension(uri, const [DEPS_EXTENSION, '.dart'], META_EXTENSION);
/// Returns `uri` with its extension updated to [DEPS_EXTENSION].
String toDepsExtension(String uri) =>
_toExtension(uri, const [META_EXTENSION, '.dart'], DEPS_EXTENSION);
/// Returns `uri` with its extension updated to `toExtension` if its
/// extension is currently in `fromExtension`.
String _toExtension(
String uri, Iterable<String> fromExtensions, String toExtension) {
if (uri == null) return null;
if (uri.endsWith(toExtension)) return uri;
for (var extension in fromExtensions) {
if (uri.endsWith(extension)) {
return '${uri.substring(0, uri.length-extension.length)}'
'$toExtension';
}
}
return uri;
}