@angular/core 2.0.0-rc.1 → 2.0.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{core.umd.js → bundles/core.umd.js} +6402 -4606
- package/bundles/core.umd.min.js +6 -0
- package/esm/index.d.ts +5 -4
- package/esm/index.js +9 -8
- package/esm/index.js.map +1 -1
- package/esm/private_export.d.ts +96 -11
- package/esm/private_export.js +39 -10
- package/esm/private_export.js.map +1 -1
- package/esm/private_export.metadata.json +1 -1
- package/esm/src/animation/active_animation_players_map.d.ts +11 -0
- package/esm/src/animation/active_animation_players_map.js +47 -0
- package/esm/src/animation/active_animation_players_map.js.map +1 -0
- package/esm/src/animation/animation_constants.d.ts +4 -0
- package/esm/src/animation/animation_constants.js +5 -0
- package/esm/src/animation/animation_constants.js.map +1 -0
- package/esm/src/animation/animation_constants.metadata.json +1 -0
- package/esm/src/animation/animation_driver.d.ts +9 -0
- package/esm/src/animation/animation_driver.js +9 -0
- package/esm/src/animation/animation_driver.js.map +1 -0
- package/esm/src/animation/animation_group_player.d.ts +18 -0
- package/esm/src/animation/animation_group_player.js +60 -0
- package/esm/src/animation/animation_group_player.js.map +1 -0
- package/esm/src/animation/animation_keyframe.d.ts +6 -0
- package/esm/src/animation/animation_keyframe.js +7 -0
- package/esm/src/animation/animation_keyframe.js.map +1 -0
- package/esm/src/animation/animation_player.d.ts +26 -0
- package/esm/src/animation/animation_player.js +30 -0
- package/esm/src/animation/animation_player.js.map +1 -0
- package/esm/src/animation/animation_sequence_player.d.ts +21 -0
- package/esm/src/animation/animation_sequence_player.js +64 -0
- package/esm/src/animation/animation_sequence_player.js.map +1 -0
- package/esm/src/animation/animation_style_util.d.ts +32 -0
- package/esm/src/animation/animation_style_util.js +91 -0
- package/esm/src/animation/animation_style_util.js.map +1 -0
- package/esm/src/animation/animation_style_util.metadata.json +1 -0
- package/esm/src/animation/animation_styles.d.ts +8 -0
- package/esm/src/animation/animation_styles.js +6 -0
- package/esm/src/animation/animation_styles.js.map +1 -0
- package/esm/src/animation/metadata.d.ts +511 -0
- package/esm/src/animation/metadata.js +565 -0
- package/esm/src/animation/metadata.js.map +1 -0
- package/esm/src/animation/metadata.metadata.json +1 -0
- package/esm/src/application_common_providers.d.ts +1 -0
- package/esm/src/application_common_providers.js +5 -4
- package/esm/src/application_common_providers.js.map +1 -1
- package/esm/src/application_common_providers.metadata.json +1 -1
- package/esm/src/application_ref.d.ts +17 -41
- package/esm/src/application_ref.js +32 -23
- package/esm/src/application_ref.js.map +1 -1
- package/esm/src/application_ref.metadata.json +1 -1
- package/esm/src/application_tokens.d.ts +6 -1
- package/esm/src/application_tokens.js +9 -4
- package/esm/src/application_tokens.js.map +1 -1
- package/esm/src/application_tokens.metadata.json +1 -1
- package/esm/src/change_detection/change_detection.d.ts +9 -8
- package/esm/src/change_detection/change_detection.js +7 -7
- package/esm/src/change_detection/change_detection.js.map +1 -1
- package/esm/src/change_detection/change_detection.metadata.json +1 -1
- package/esm/src/change_detection/change_detection_util.d.ts +3 -1
- package/esm/src/change_detection/change_detection_util.js +6 -5
- package/esm/src/change_detection/change_detection_util.js.map +1 -1
- package/esm/src/change_detection/change_detection_util.metadata.json +1 -1
- package/esm/src/change_detection/change_detector_ref.d.ts +3 -0
- package/esm/src/change_detection/change_detector_ref.js +3 -0
- package/esm/src/change_detection/change_detector_ref.js.map +1 -1
- package/esm/src/change_detection/constants.d.ts +1 -0
- package/esm/src/change_detection/constants.js +4 -3
- package/esm/src/change_detection/constants.js.map +1 -1
- package/esm/src/change_detection/constants.metadata.json +1 -1
- package/esm/src/change_detection/differs/default_iterable_differ.d.ts +6 -94
- package/esm/src/change_detection/differs/default_iterable_differ.js +25 -18
- package/esm/src/change_detection/differs/default_iterable_differ.js.map +1 -1
- package/esm/src/change_detection/differs/default_keyvalue_differ.d.ts +3 -30
- package/esm/src/change_detection/differs/default_keyvalue_differ.js +13 -8
- package/esm/src/change_detection/differs/default_keyvalue_differ.js.map +1 -1
- package/esm/src/change_detection/differs/iterable_differs.d.ts +4 -1
- package/esm/src/change_detection/differs/iterable_differs.js +5 -4
- package/esm/src/change_detection/differs/iterable_differs.js.map +1 -1
- package/esm/src/change_detection/differs/keyvalue_differs.d.ts +2 -1
- package/esm/src/change_detection/differs/keyvalue_differs.js +5 -4
- package/esm/src/change_detection/differs/keyvalue_differs.js.map +1 -1
- package/esm/src/change_detection/pipe_transform.js.map +1 -1
- package/esm/src/change_detection.d.ts +1 -1
- package/esm/src/change_detection.js +5 -5
- package/esm/src/change_detection.js.map +1 -1
- package/esm/src/console.js +2 -1
- package/esm/src/console.js.map +1 -1
- package/esm/src/console.metadata.json +1 -1
- package/esm/src/debug/debug_node.d.ts +20 -2
- package/esm/src/debug/debug_node.js +16 -2
- package/esm/src/debug/debug_node.js.map +1 -1
- package/esm/src/debug/debug_node.metadata.json +1 -0
- package/esm/src/debug/debug_renderer.d.ts +10 -6
- package/esm/src/debug/debug_renderer.js +13 -2
- package/esm/src/debug/debug_renderer.js.map +1 -1
- package/esm/src/di/decorators.d.ts +13 -1
- package/esm/src/di/decorators.js +7 -1
- package/esm/src/di/decorators.js.map +1 -1
- package/esm/src/di/decorators.metadata.json +1 -1
- package/esm/src/di/forward_ref.d.ts +3 -1
- package/esm/src/di/forward_ref.js +3 -1
- package/esm/src/di/forward_ref.js.map +1 -1
- package/esm/src/di/injector.d.ts +4 -1
- package/esm/src/di/injector.js +5 -2
- package/esm/src/di/injector.js.map +1 -1
- package/esm/src/di/injector.metadata.json +1 -1
- package/esm/src/di/metadata.d.ts +8 -1
- package/esm/src/di/metadata.js +10 -3
- package/esm/src/di/metadata.js.map +1 -1
- package/esm/src/di/opaque_token.d.ts +2 -1
- package/esm/src/di/opaque_token.js +22 -21
- package/esm/src/di/opaque_token.js.map +1 -1
- package/esm/src/di/provider.d.ts +11 -10
- package/esm/src/di/provider.js +17 -14
- package/esm/src/di/provider.js.map +1 -1
- package/esm/src/di/provider.metadata.json +1 -0
- package/esm/src/di/provider_util.js.map +1 -1
- package/esm/src/di/provider_util.metadata.json +1 -0
- package/esm/src/di/reflective_exceptions.d.ts +11 -16
- package/esm/src/di/reflective_exceptions.js +28 -22
- package/esm/src/di/reflective_exceptions.js.map +1 -1
- package/esm/src/di/reflective_injector.d.ts +3 -33
- package/esm/src/di/reflective_injector.js +10 -7
- package/esm/src/di/reflective_injector.js.map +1 -1
- package/esm/src/di/reflective_key.d.ts +1 -8
- package/esm/src/di/reflective_key.js +3 -2
- package/esm/src/di/reflective_key.js.map +1 -1
- package/esm/src/di/reflective_provider.d.ts +2 -1
- package/esm/src/di/reflective_provider.js +6 -5
- package/esm/src/di/reflective_provider.js.map +1 -1
- package/esm/src/di/reflective_provider.metadata.json +1 -0
- package/esm/src/di.d.ts +2 -2
- package/esm/src/di.js +6 -6
- package/esm/src/di.js.map +1 -1
- package/esm/src/facade/async.d.ts +11 -4
- package/esm/src/facade/async.js +25 -15
- package/esm/src/facade/async.js.map +1 -1
- package/esm/src/facade/base_wrapped_exception.js +4 -4
- package/esm/src/facade/base_wrapped_exception.js.map +1 -1
- package/esm/src/facade/collection.js +1 -1
- package/esm/src/facade/collection.js.map +1 -1
- package/esm/src/facade/collection.metadata.json +1 -1
- package/esm/src/facade/exception_handler.d.ts +2 -11
- package/esm/src/facade/exception_handler.js +8 -7
- package/esm/src/facade/exception_handler.js.map +1 -1
- package/esm/src/facade/exceptions.d.ts +4 -0
- package/esm/src/facade/exceptions.js +6 -2
- package/esm/src/facade/exceptions.js.map +1 -1
- package/esm/src/facade/exceptions.metadata.json +1 -0
- package/esm/src/facade/lang.d.ts +6 -4
- package/esm/src/facade/lang.js +12 -11
- package/esm/src/facade/lang.js.map +1 -1
- package/esm/src/facade/lang.metadata.json +1 -1
- package/esm/src/facade/math.d.ts +2 -0
- package/esm/src/facade/math.js +4 -0
- package/esm/src/facade/math.js.map +1 -0
- package/esm/src/facade/math.metadata.json +1 -0
- package/esm/src/facade/promise.js.map +1 -1
- package/esm/src/linker/component_factory.d.ts +5 -4
- package/esm/src/linker/component_factory.js +7 -3
- package/esm/src/linker/component_factory.js.map +1 -1
- package/esm/src/linker/component_resolver.d.ts +5 -4
- package/esm/src/linker/component_resolver.js +12 -7
- package/esm/src/linker/component_resolver.js.map +1 -1
- package/esm/src/linker/component_resolver.metadata.json +1 -1
- package/esm/src/linker/debug_context.js +5 -4
- package/esm/src/linker/debug_context.js.map +1 -1
- package/esm/src/linker/dynamic_component_loader.d.ts +5 -6
- package/esm/src/linker/dynamic_component_loader.js +5 -3
- package/esm/src/linker/dynamic_component_loader.js.map +1 -1
- package/esm/src/linker/dynamic_component_loader.metadata.json +1 -1
- package/esm/src/linker/element.d.ts +3 -3
- package/esm/src/linker/element.js +5 -5
- package/esm/src/linker/element.js.map +1 -1
- package/esm/src/linker/element_injector.js.map +1 -1
- package/esm/src/linker/element_ref.d.ts +1 -0
- package/esm/src/linker/element_ref.js +5 -5
- package/esm/src/linker/element_ref.js.map +1 -1
- package/esm/src/linker/exceptions.d.ts +4 -1
- package/esm/src/linker/exceptions.js +4 -1
- package/esm/src/linker/exceptions.js.map +1 -1
- package/esm/src/linker/query_list.d.ts +3 -10
- package/esm/src/linker/query_list.js +8 -7
- package/esm/src/linker/query_list.js.map +1 -1
- package/esm/src/linker/systemjs_component_resolver.d.ts +21 -0
- package/esm/src/linker/systemjs_component_resolver.js +44 -0
- package/esm/src/linker/systemjs_component_resolver.js.map +1 -0
- package/esm/src/linker/template_ref.d.ts +2 -1
- package/esm/src/linker/template_ref.js +1 -0
- package/esm/src/linker/template_ref.js.map +1 -1
- package/esm/src/linker/view.d.ts +12 -1
- package/esm/src/linker/view.js +62 -16
- package/esm/src/linker/view.js.map +1 -1
- package/esm/src/linker/view_container_ref.d.ts +2 -10
- package/esm/src/linker/view_container_ref.js +4 -3
- package/esm/src/linker/view_container_ref.js.map +1 -1
- package/esm/src/linker/view_ref.d.ts +5 -1
- package/esm/src/linker/view_ref.js +6 -2
- package/esm/src/linker/view_ref.js.map +1 -1
- package/esm/src/linker/view_type.js.map +1 -1
- package/esm/src/linker/view_utils.d.ts +2 -4
- package/esm/src/linker/view_utils.js +21 -21
- package/esm/src/linker/view_utils.js.map +1 -1
- package/esm/src/linker/view_utils.metadata.json +1 -1
- package/esm/src/linker.d.ts +5 -4
- package/esm/src/linker.js +5 -4
- package/esm/src/linker.js.map +1 -1
- package/esm/src/metadata/di.d.ts +8 -1
- package/esm/src/metadata/di.js +10 -3
- package/esm/src/metadata/di.js.map +1 -1
- package/esm/src/metadata/directives.d.ts +104 -20
- package/esm/src/metadata/directives.js +25 -19
- package/esm/src/metadata/directives.js.map +1 -1
- package/esm/src/metadata/lifecycle_hooks.d.ts +46 -31
- package/esm/src/metadata/lifecycle_hooks.js +464 -10
- package/esm/src/metadata/lifecycle_hooks.js.map +1 -1
- package/esm/src/metadata/lifecycle_hooks.metadata.json +1 -1
- package/esm/src/metadata/view.d.ts +6 -2
- package/esm/src/metadata/view.js +3 -1
- package/esm/src/metadata/view.js.map +1 -1
- package/esm/src/metadata/view.metadata.json +1 -1
- package/esm/src/metadata.d.ts +49 -15
- package/esm/src/metadata.js +35 -10
- package/esm/src/metadata.js.map +1 -1
- package/esm/src/metadata.metadata.json +1 -1
- package/esm/src/platform_common_providers.d.ts +1 -0
- package/esm/src/platform_common_providers.js +3 -3
- package/esm/src/platform_common_providers.js.map +1 -1
- package/esm/src/platform_common_providers.metadata.json +1 -1
- package/esm/src/platform_directives_and_pipes.d.ts +48 -45
- package/esm/src/platform_directives_and_pipes.js +50 -47
- package/esm/src/platform_directives_and_pipes.js.map +1 -1
- package/esm/src/platform_directives_and_pipes.metadata.json +1 -1
- package/esm/src/profile/profile.d.ts +5 -1
- package/esm/src/profile/profile.js +4 -0
- package/esm/src/profile/profile.js.map +1 -1
- package/esm/src/profile/profile.metadata.json +1 -1
- package/esm/src/profile/wtf_impl.js +1 -1
- package/esm/src/profile/wtf_impl.js.map +1 -1
- package/esm/src/profile/wtf_impl.metadata.json +1 -0
- package/esm/src/profile/wtf_init.js +2 -2
- package/esm/src/profile/wtf_init.js.map +1 -1
- package/esm/src/reflection/platform_reflection_capabilities.d.ts +4 -3
- package/esm/src/reflection/platform_reflection_capabilities.js.map +1 -1
- package/esm/src/reflection/reflection.d.ts +1 -1
- package/esm/src/reflection/reflection.js +2 -2
- package/esm/src/reflection/reflection.js.map +1 -1
- package/esm/src/reflection/reflection.metadata.json +1 -1
- package/esm/src/reflection/reflection_capabilities.d.ts +4 -5
- package/esm/src/reflection/reflection_capabilities.js +22 -10
- package/esm/src/reflection/reflection_capabilities.js.map +1 -1
- package/esm/src/reflection/reflector.d.ts +8 -20
- package/esm/src/reflection/reflector.js +13 -3
- package/esm/src/reflection/reflector.js.map +1 -1
- package/esm/src/reflection/reflector_reader.js +3 -3
- package/esm/src/reflection/reflector_reader.js.map +1 -1
- package/esm/src/reflection/types.js.map +1 -1
- package/esm/src/render/api.d.ts +17 -6
- package/esm/src/render/api.js +8 -1
- package/esm/src/render/api.js.map +1 -1
- package/esm/src/render.d.ts +1 -1
- package/esm/src/render.js +1 -1
- package/esm/src/render.js.map +1 -1
- package/esm/src/security.js +6 -6
- package/esm/src/security.js.map +1 -1
- package/esm/src/testability/testability.d.ts +3 -19
- package/esm/src/testability/testability.js +10 -5
- package/esm/src/testability/testability.js.map +1 -1
- package/esm/src/testability/testability.metadata.json +1 -1
- package/esm/src/util/decorators.d.ts +2 -1
- package/esm/src/util/decorators.js +10 -9
- package/esm/src/util/decorators.js.map +1 -1
- package/esm/src/util.js.map +1 -1
- package/esm/src/zone/ng_zone.d.ts +6 -17
- package/esm/src/zone/ng_zone.js +7 -6
- package/esm/src/zone/ng_zone.js.map +1 -1
- package/esm/src/zone/ng_zone_impl.d.ts +1 -4
- package/esm/src/zone/ng_zone_impl.js +3 -2
- package/esm/src/zone/ng_zone_impl.js.map +1 -1
- package/esm/src/zone.js.map +1 -1
- package/esm/testing/async.js +20 -22
- package/esm/testing/async.js.map +1 -1
- package/esm/testing/async.metadata.json +1 -0
- package/esm/testing/async_test_completer.js.map +1 -1
- package/esm/testing/fake_async.d.ts +4 -1
- package/esm/testing/fake_async.js +9 -2
- package/esm/testing/fake_async.js.map +1 -1
- package/esm/testing/lang_utils.js +1 -1
- package/esm/testing/lang_utils.js.map +1 -1
- package/esm/testing/lang_utils.metadata.json +1 -0
- package/esm/testing/logger.js +5 -3
- package/esm/testing/logger.js.map +1 -1
- package/esm/testing/logger.metadata.json +1 -1
- package/esm/testing/mock_application_ref.d.ts +1 -1
- package/esm/testing/mock_application_ref.js +1 -0
- package/esm/testing/mock_application_ref.js.map +1 -1
- package/esm/testing/mock_application_ref.metadata.json +1 -1
- package/esm/testing/ng_zone_mock.d.ts +0 -1
- package/esm/testing/ng_zone_mock.js +2 -1
- package/esm/testing/ng_zone_mock.js.map +1 -1
- package/esm/testing/ng_zone_mock.metadata.json +1 -1
- package/esm/testing/regexp.js +1 -1
- package/esm/testing/regexp.js.map +1 -1
- package/esm/testing/regexp.metadata.json +1 -0
- package/esm/testing/test_injector.d.ts +6 -12
- package/esm/testing/test_injector.js +4 -10
- package/esm/testing/test_injector.js.map +1 -1
- package/esm/testing/test_injector.metadata.json +1 -0
- package/esm/testing/testing.d.ts +2 -2
- package/esm/testing/testing.js +2 -2
- package/esm/testing/testing.js.map +1 -1
- package/esm/testing/testing.metadata.json +1 -1
- package/esm/testing.js.map +1 -1
- package/index.d.ts +5 -4
- package/index.js +10 -8
- package/index.js.map +1 -1
- package/package.json +5 -1
- package/private_export.d.ts +96 -11
- package/private_export.js +39 -10
- package/private_export.js.map +1 -1
- package/private_export.metadata.json +1 -1
- package/src/animation/active_animation_players_map.d.ts +11 -0
- package/src/animation/active_animation_players_map.js +54 -0
- package/src/animation/active_animation_players_map.js.map +1 -0
- package/src/animation/animation_constants.d.ts +4 -0
- package/src/animation/animation_constants.js +6 -0
- package/src/animation/animation_constants.js.map +1 -0
- package/src/animation/animation_constants.metadata.json +1 -0
- package/src/animation/animation_driver.d.ts +9 -0
- package/src/animation/animation_driver.js +25 -0
- package/src/animation/animation_driver.js.map +1 -0
- package/src/animation/animation_group_player.d.ts +18 -0
- package/src/animation/animation_group_player.js +64 -0
- package/src/animation/animation_group_player.js.map +1 -0
- package/src/animation/animation_keyframe.d.ts +6 -0
- package/src/animation/animation_keyframe.js +10 -0
- package/src/animation/animation_keyframe.js.map +1 -0
- package/src/animation/animation_player.d.ts +26 -0
- package/src/animation/animation_player.js +42 -0
- package/src/animation/animation_player.js.map +1 -0
- package/src/animation/animation_sequence_player.d.ts +21 -0
- package/src/animation/animation_sequence_player.js +69 -0
- package/src/animation/animation_sequence_player.js.map +1 -0
- package/src/animation/animation_style_util.d.ts +32 -0
- package/src/animation/animation_style_util.js +99 -0
- package/src/animation/animation_style_util.js.map +1 -0
- package/src/animation/animation_style_util.metadata.json +1 -0
- package/src/animation/animation_styles.d.ts +8 -0
- package/src/animation/animation_styles.js +9 -0
- package/src/animation/animation_styles.js.map +1 -0
- package/src/animation/metadata.d.ts +511 -0
- package/src/animation/metadata.js +627 -0
- package/src/animation/metadata.js.map +1 -0
- package/src/animation/metadata.metadata.json +1 -0
- package/src/application_common_providers.d.ts +1 -0
- package/src/application_common_providers.js +4 -3
- package/src/application_common_providers.js.map +1 -1
- package/src/application_common_providers.metadata.json +1 -1
- package/src/application_ref.d.ts +17 -41
- package/src/application_ref.js +30 -21
- package/src/application_ref.js.map +1 -1
- package/src/application_ref.metadata.json +1 -1
- package/src/application_tokens.d.ts +6 -1
- package/src/application_tokens.js +9 -4
- package/src/application_tokens.js.map +1 -1
- package/src/application_tokens.metadata.json +1 -1
- package/src/change_detection/change_detection.d.ts +9 -8
- package/src/change_detection/change_detection.js +21 -21
- package/src/change_detection/change_detection.js.map +1 -1
- package/src/change_detection/change_detection.metadata.json +1 -1
- package/src/change_detection/change_detection_util.d.ts +3 -1
- package/src/change_detection/change_detection_util.js +6 -5
- package/src/change_detection/change_detection_util.js.map +1 -1
- package/src/change_detection/change_detection_util.metadata.json +1 -1
- package/src/change_detection/change_detector_ref.d.ts +3 -0
- package/src/change_detection/change_detector_ref.js +3 -0
- package/src/change_detection/change_detector_ref.js.map +1 -1
- package/src/change_detection/constants.d.ts +1 -0
- package/src/change_detection/constants.js +4 -3
- package/src/change_detection/constants.js.map +1 -1
- package/src/change_detection/constants.metadata.json +1 -1
- package/src/change_detection/differs/default_iterable_differ.d.ts +6 -94
- package/src/change_detection/differs/default_iterable_differ.js +25 -18
- package/src/change_detection/differs/default_iterable_differ.js.map +1 -1
- package/src/change_detection/differs/default_keyvalue_differ.d.ts +3 -30
- package/src/change_detection/differs/default_keyvalue_differ.js +13 -8
- package/src/change_detection/differs/default_keyvalue_differ.js.map +1 -1
- package/src/change_detection/differs/iterable_differs.d.ts +4 -1
- package/src/change_detection/differs/iterable_differs.js +4 -3
- package/src/change_detection/differs/iterable_differs.js.map +1 -1
- package/src/change_detection/differs/keyvalue_differs.d.ts +2 -1
- package/src/change_detection/differs/keyvalue_differs.js +4 -3
- package/src/change_detection/differs/keyvalue_differs.js.map +1 -1
- package/src/change_detection/pipe_transform.js.map +1 -1
- package/src/change_detection.d.ts +1 -1
- package/src/change_detection.js +9 -9
- package/src/change_detection.js.map +1 -1
- package/src/console.js +2 -1
- package/src/console.js.map +1 -1
- package/src/console.metadata.json +1 -1
- package/src/debug/debug_node.d.ts +20 -2
- package/src/debug/debug_node.js +16 -2
- package/src/debug/debug_node.js.map +1 -1
- package/src/debug/debug_node.metadata.json +1 -0
- package/src/debug/debug_renderer.d.ts +10 -6
- package/src/debug/debug_renderer.js +12 -1
- package/src/debug/debug_renderer.js.map +1 -1
- package/src/di/decorators.d.ts +13 -1
- package/src/di/decorators.js +7 -1
- package/src/di/decorators.js.map +1 -1
- package/src/di/decorators.metadata.json +1 -1
- package/src/di/forward_ref.d.ts +3 -1
- package/src/di/forward_ref.js +3 -1
- package/src/di/forward_ref.js.map +1 -1
- package/src/di/injector.d.ts +4 -1
- package/src/di/injector.js +5 -2
- package/src/di/injector.js.map +1 -1
- package/src/di/injector.metadata.json +1 -1
- package/src/di/metadata.d.ts +8 -1
- package/src/di/metadata.js +10 -3
- package/src/di/metadata.js.map +1 -1
- package/src/di/opaque_token.d.ts +2 -1
- package/src/di/opaque_token.js +22 -21
- package/src/di/opaque_token.js.map +1 -1
- package/src/di/provider.d.ts +11 -10
- package/src/di/provider.js +17 -14
- package/src/di/provider.js.map +1 -1
- package/src/di/provider.metadata.json +1 -0
- package/src/di/provider_util.js.map +1 -1
- package/src/di/provider_util.metadata.json +1 -0
- package/src/di/reflective_exceptions.d.ts +11 -16
- package/src/di/reflective_exceptions.js +28 -22
- package/src/di/reflective_exceptions.js.map +1 -1
- package/src/di/reflective_injector.d.ts +3 -33
- package/src/di/reflective_injector.js +9 -6
- package/src/di/reflective_injector.js.map +1 -1
- package/src/di/reflective_key.d.ts +1 -8
- package/src/di/reflective_key.js +3 -2
- package/src/di/reflective_key.js.map +1 -1
- package/src/di/reflective_provider.d.ts +2 -1
- package/src/di/reflective_provider.js +6 -5
- package/src/di/reflective_provider.js.map +1 -1
- package/src/di/reflective_provider.metadata.json +1 -0
- package/src/di.d.ts +2 -2
- package/src/di.js +7 -9
- package/src/di.js.map +1 -1
- package/src/facade/async.d.ts +11 -4
- package/src/facade/async.js +27 -17
- package/src/facade/async.js.map +1 -1
- package/src/facade/base_wrapped_exception.js +4 -4
- package/src/facade/base_wrapped_exception.js.map +1 -1
- package/src/facade/collection.js.map +1 -1
- package/src/facade/collection.metadata.json +1 -1
- package/src/facade/exception_handler.d.ts +2 -11
- package/src/facade/exception_handler.js +8 -7
- package/src/facade/exception_handler.js.map +1 -1
- package/src/facade/exceptions.d.ts +4 -0
- package/src/facade/exceptions.js +6 -2
- package/src/facade/exceptions.js.map +1 -1
- package/src/facade/exceptions.metadata.json +1 -0
- package/src/facade/lang.d.ts +6 -4
- package/src/facade/lang.js +12 -11
- package/src/facade/lang.js.map +1 -1
- package/src/facade/lang.metadata.json +1 -1
- package/src/facade/math.d.ts +2 -0
- package/src/facade/math.js +5 -0
- package/src/facade/math.js.map +1 -0
- package/src/facade/math.metadata.json +1 -0
- package/src/facade/promise.js.map +1 -1
- package/src/linker/component_factory.d.ts +5 -4
- package/src/linker/component_factory.js +7 -3
- package/src/linker/component_factory.js.map +1 -1
- package/src/linker/component_resolver.d.ts +5 -4
- package/src/linker/component_resolver.js +12 -7
- package/src/linker/component_resolver.js.map +1 -1
- package/src/linker/component_resolver.metadata.json +1 -1
- package/src/linker/debug_context.js +5 -4
- package/src/linker/debug_context.js.map +1 -1
- package/src/linker/dynamic_component_loader.d.ts +5 -6
- package/src/linker/dynamic_component_loader.js +5 -3
- package/src/linker/dynamic_component_loader.js.map +1 -1
- package/src/linker/dynamic_component_loader.metadata.json +1 -1
- package/src/linker/element.d.ts +3 -3
- package/src/linker/element.js +5 -5
- package/src/linker/element.js.map +1 -1
- package/src/linker/element_injector.js.map +1 -1
- package/src/linker/element_ref.d.ts +1 -0
- package/src/linker/element_ref.js +5 -5
- package/src/linker/element_ref.js.map +1 -1
- package/src/linker/exceptions.d.ts +4 -1
- package/src/linker/exceptions.js +4 -1
- package/src/linker/exceptions.js.map +1 -1
- package/src/linker/query_list.d.ts +3 -10
- package/src/linker/query_list.js +8 -7
- package/src/linker/query_list.js.map +1 -1
- package/src/linker/systemjs_component_resolver.d.ts +21 -0
- package/src/linker/systemjs_component_resolver.js +52 -0
- package/src/linker/systemjs_component_resolver.js.map +1 -0
- package/src/linker/template_ref.d.ts +2 -1
- package/src/linker/template_ref.js +1 -0
- package/src/linker/template_ref.js.map +1 -1
- package/src/linker/view.d.ts +12 -1
- package/src/linker/view.js +65 -15
- package/src/linker/view.js.map +1 -1
- package/src/linker/view_container_ref.d.ts +2 -10
- package/src/linker/view_container_ref.js +4 -3
- package/src/linker/view_container_ref.js.map +1 -1
- package/src/linker/view_ref.d.ts +5 -1
- package/src/linker/view_ref.js +6 -2
- package/src/linker/view_ref.js.map +1 -1
- package/src/linker/view_type.js.map +1 -1
- package/src/linker/view_utils.d.ts +2 -4
- package/src/linker/view_utils.js +21 -21
- package/src/linker/view_utils.js.map +1 -1
- package/src/linker/view_utils.metadata.json +1 -1
- package/src/linker.d.ts +5 -4
- package/src/linker.js +12 -9
- package/src/linker.js.map +1 -1
- package/src/metadata/di.d.ts +8 -1
- package/src/metadata/di.js +10 -3
- package/src/metadata/di.js.map +1 -1
- package/src/metadata/directives.d.ts +104 -20
- package/src/metadata/directives.js +25 -27
- package/src/metadata/directives.js.map +1 -1
- package/src/metadata/lifecycle_hooks.d.ts +46 -31
- package/src/metadata/lifecycle_hooks.js +496 -10
- package/src/metadata/lifecycle_hooks.js.map +1 -1
- package/src/metadata/lifecycle_hooks.metadata.json +1 -1
- package/src/metadata/view.d.ts +6 -2
- package/src/metadata/view.js +3 -1
- package/src/metadata/view.js.map +1 -1
- package/src/metadata/view.metadata.json +1 -1
- package/src/metadata.d.ts +49 -15
- package/src/metadata.js +70 -37
- package/src/metadata.js.map +1 -1
- package/src/metadata.metadata.json +1 -1
- package/src/platform_common_providers.d.ts +1 -0
- package/src/platform_common_providers.js +3 -3
- package/src/platform_common_providers.js.map +1 -1
- package/src/platform_common_providers.metadata.json +1 -1
- package/src/platform_directives_and_pipes.d.ts +48 -45
- package/src/platform_directives_and_pipes.js +50 -47
- package/src/platform_directives_and_pipes.js.map +1 -1
- package/src/platform_directives_and_pipes.metadata.json +1 -1
- package/src/profile/profile.d.ts +5 -1
- package/src/profile/profile.js +5 -3
- package/src/profile/profile.js.map +1 -1
- package/src/profile/profile.metadata.json +1 -1
- package/src/profile/wtf_impl.js +1 -1
- package/src/profile/wtf_impl.js.map +1 -1
- package/src/profile/wtf_impl.metadata.json +1 -0
- package/src/profile/wtf_init.js +2 -2
- package/src/profile/wtf_init.js.map +1 -1
- package/src/reflection/platform_reflection_capabilities.d.ts +4 -3
- package/src/reflection/platform_reflection_capabilities.js.map +1 -1
- package/src/reflection/reflection.d.ts +1 -1
- package/src/reflection/reflection.js +2 -2
- package/src/reflection/reflection.js.map +1 -1
- package/src/reflection/reflection.metadata.json +1 -1
- package/src/reflection/reflection_capabilities.d.ts +4 -5
- package/src/reflection/reflection_capabilities.js +24 -10
- package/src/reflection/reflection_capabilities.js.map +1 -1
- package/src/reflection/reflector.d.ts +8 -20
- package/src/reflection/reflector.js +13 -3
- package/src/reflection/reflector.js.map +1 -1
- package/src/reflection/reflector_reader.js +3 -3
- package/src/reflection/reflector_reader.js.map +1 -1
- package/src/reflection/types.js.map +1 -1
- package/src/render/api.d.ts +17 -6
- package/src/render/api.js +8 -1
- package/src/render/api.js.map +1 -1
- package/src/render.d.ts +1 -1
- package/src/render.js +2 -2
- package/src/render.js.map +1 -1
- package/src/security.js +6 -6
- package/src/security.js.map +1 -1
- package/src/testability/testability.d.ts +3 -19
- package/src/testability/testability.js +10 -5
- package/src/testability/testability.js.map +1 -1
- package/src/testability/testability.metadata.json +1 -1
- package/src/util/decorators.d.ts +2 -1
- package/src/util/decorators.js +10 -9
- package/src/util/decorators.js.map +1 -1
- package/src/util.js.map +1 -1
- package/src/zone/ng_zone.d.ts +6 -17
- package/src/zone/ng_zone.js +11 -6
- package/src/zone/ng_zone.js.map +1 -1
- package/src/zone/ng_zone_impl.d.ts +1 -4
- package/src/zone/ng_zone_impl.js +3 -2
- package/src/zone/ng_zone_impl.js.map +1 -1
- package/src/zone.js.map +1 -1
- package/testing/async.js +20 -22
- package/testing/async.js.map +1 -1
- package/testing/async.metadata.json +1 -0
- package/testing/async_test_completer.js.map +1 -1
- package/testing/fake_async.d.ts +4 -1
- package/testing/fake_async.js +10 -2
- package/testing/fake_async.js.map +1 -1
- package/testing/lang_utils.js +1 -1
- package/testing/lang_utils.js.map +1 -1
- package/testing/lang_utils.metadata.json +1 -0
- package/testing/logger.js +5 -3
- package/testing/logger.js.map +1 -1
- package/testing/logger.metadata.json +1 -1
- package/testing/mock_application_ref.d.ts +1 -1
- package/testing/mock_application_ref.js +1 -0
- package/testing/mock_application_ref.js.map +1 -1
- package/testing/mock_application_ref.metadata.json +1 -1
- package/testing/ng_zone_mock.d.ts +0 -1
- package/testing/ng_zone_mock.js +2 -1
- package/testing/ng_zone_mock.js.map +1 -1
- package/testing/ng_zone_mock.metadata.json +1 -1
- package/testing/regexp.js +1 -1
- package/testing/regexp.js.map +1 -1
- package/testing/regexp.metadata.json +1 -0
- package/testing/test_injector.d.ts +6 -12
- package/testing/test_injector.js +3 -9
- package/testing/test_injector.js.map +1 -1
- package/testing/test_injector.metadata.json +1 -0
- package/testing/testing.d.ts +2 -2
- package/testing/testing.js +5 -5
- package/testing/testing.js.map +1 -1
- package/testing/testing.metadata.json +1 -1
- package/testing.js.map +1 -1
package/esm/src/di/metadata.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { stringify } from '
|
|
1
|
+
import { stringify } from '../facade/lang';
|
|
2
2
|
/**
|
|
3
3
|
* A parameter metadata that specifies a dependency.
|
|
4
4
|
*
|
|
@@ -16,7 +16,7 @@ import { stringify } from '../../src/facade/lang';
|
|
|
16
16
|
* }
|
|
17
17
|
*
|
|
18
18
|
* var injector = Injector.resolveAndCreate([
|
|
19
|
-
* provide
|
|
19
|
+
* {provide: "MyEngine", useClass: Engine},
|
|
20
20
|
* Car
|
|
21
21
|
* ]);
|
|
22
22
|
*
|
|
@@ -39,9 +39,10 @@ import { stringify } from '../../src/facade/lang';
|
|
|
39
39
|
* expect(injector.get(Car).engine instanceof Engine).toBe(true);
|
|
40
40
|
* ```
|
|
41
41
|
* @ts2dart_const
|
|
42
|
+
* @stable
|
|
42
43
|
*/
|
|
43
44
|
export class InjectMetadata {
|
|
44
|
-
constructor(token) {
|
|
45
|
+
constructor(token /** TODO #9100 */) {
|
|
45
46
|
this.token = token;
|
|
46
47
|
}
|
|
47
48
|
toString() { return `@Inject(${stringify(this.token)})`; }
|
|
@@ -67,6 +68,7 @@ export class InjectMetadata {
|
|
|
67
68
|
* expect(injector.get(Car).engine).toBeNull();
|
|
68
69
|
* ```
|
|
69
70
|
* @ts2dart_const
|
|
71
|
+
* @stable
|
|
70
72
|
*/
|
|
71
73
|
export class OptionalMetadata {
|
|
72
74
|
toString() { return `@Optional()`; }
|
|
@@ -75,6 +77,7 @@ export class OptionalMetadata {
|
|
|
75
77
|
* `DependencyMetadata` is used by the framework to extend DI.
|
|
76
78
|
* This is internal to Angular and should not be used directly.
|
|
77
79
|
* @ts2dart_const
|
|
80
|
+
* @stable
|
|
78
81
|
*/
|
|
79
82
|
export class DependencyMetadata {
|
|
80
83
|
get token() { return null; }
|
|
@@ -110,6 +113,7 @@ export class DependencyMetadata {
|
|
|
110
113
|
* expect(() => injector.get(NeedsService)).toThrowError();
|
|
111
114
|
* ```
|
|
112
115
|
* @ts2dart_const
|
|
116
|
+
* @stable
|
|
113
117
|
*/
|
|
114
118
|
export class InjectableMetadata {
|
|
115
119
|
constructor() {
|
|
@@ -142,6 +146,7 @@ export class InjectableMetadata {
|
|
|
142
146
|
* expect(() => child.get(NeedsDependency)).toThrowError();
|
|
143
147
|
* ```
|
|
144
148
|
* @ts2dart_const
|
|
149
|
+
* @stable
|
|
145
150
|
*/
|
|
146
151
|
export class SelfMetadata {
|
|
147
152
|
toString() { return `@Self()`; }
|
|
@@ -171,6 +176,7 @@ export class SelfMetadata {
|
|
|
171
176
|
* expect(() => inj.get(NeedsDependency)).toThrowError();
|
|
172
177
|
* ```
|
|
173
178
|
* @ts2dart_const
|
|
179
|
+
* @stable
|
|
174
180
|
*/
|
|
175
181
|
export class SkipSelfMetadata {
|
|
176
182
|
toString() { return `@SkipSelf()`; }
|
|
@@ -229,6 +235,7 @@ export class SkipSelfMetadata {
|
|
|
229
235
|
* bootstrap(App);
|
|
230
236
|
*```
|
|
231
237
|
* @ts2dart_const
|
|
238
|
+
* @stable
|
|
232
239
|
*/
|
|
233
240
|
export class HostMetadata {
|
|
234
241
|
toString() { return `@Host()`; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../../../../../modules/@angular/core/src/di/metadata.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../../../../../modules/@angular/core/src/di/metadata.ts"],"names":[],"mappings":"OAAO,EAAC,SAAS,EAAC,MAAM,gBAAgB;AAExC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH;IACE,YAAmB,KAAU,CAAC,iBAAiB;QAA5B,UAAK,GAAL,KAAK,CAAK;IAAqB,CAAC;IACnD,QAAQ,KAAa,MAAM,CAAC,WAAW,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AACpE,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH;IACE,QAAQ,KAAa,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;GAKG;AACH;IACE,IAAI,KAAK,KAA4B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AACrD,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH;IACE;IAAe,CAAC;AAClB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH;IACE,QAAQ,KAAa,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;AAC1C,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH;IACE,QAAQ,KAAa,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AACH;IACE,QAAQ,KAAa,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;AAC1C,CAAC;AAAA","sourcesContent":["import {stringify} from '../facade/lang';\n\n/**\n * A parameter metadata that specifies a dependency.\n *\n * ### Example ([live demo](http://plnkr.co/edit/6uHYJK?p=preview))\n *\n * ```typescript\n * class Engine {}\n *\n * @Injectable()\n * class Car {\n * engine;\n * constructor(@Inject(\"MyEngine\") engine:Engine) {\n * this.engine = engine;\n * }\n * }\n *\n * var injector = Injector.resolveAndCreate([\n * {provide: \"MyEngine\", useClass: Engine},\n * Car\n * ]);\n *\n * expect(injector.get(Car).engine instanceof Engine).toBe(true);\n * ```\n *\n * When `@Inject()` is not present, {@link Injector} will use the type annotation of the parameter.\n *\n * ### Example\n *\n * ```typescript\n * class Engine {}\n *\n * @Injectable()\n * class Car {\n * constructor(public engine: Engine) {} //same as constructor(@Inject(Engine) engine:Engine)\n * }\n *\n * var injector = Injector.resolveAndCreate([Engine, Car]);\n * expect(injector.get(Car).engine instanceof Engine).toBe(true);\n * ```\n * @ts2dart_const\n * @stable\n */\nexport class InjectMetadata {\n constructor(public token: any /** TODO #9100 */) {}\n toString(): string { return `@Inject(${stringify(this.token)})`; }\n}\n\n/**\n * A parameter metadata that marks a dependency as optional. {@link Injector} provides `null` if\n * the dependency is not found.\n *\n * ### Example ([live demo](http://plnkr.co/edit/AsryOm?p=preview))\n *\n * ```typescript\n * class Engine {}\n *\n * @Injectable()\n * class Car {\n * engine;\n * constructor(@Optional() engine:Engine) {\n * this.engine = engine;\n * }\n * }\n *\n * var injector = Injector.resolveAndCreate([Car]);\n * expect(injector.get(Car).engine).toBeNull();\n * ```\n * @ts2dart_const\n * @stable\n */\nexport class OptionalMetadata {\n toString(): string { return `@Optional()`; }\n}\n\n/**\n * `DependencyMetadata` is used by the framework to extend DI.\n * This is internal to Angular and should not be used directly.\n * @ts2dart_const\n * @stable\n */\nexport class DependencyMetadata {\n get token(): any /** TODO #9100 */ { return null; }\n}\n\n/**\n * A marker metadata that marks a class as available to {@link Injector} for creation.\n *\n * ### Example ([live demo](http://plnkr.co/edit/Wk4DMQ?p=preview))\n *\n * ```typescript\n * @Injectable()\n * class UsefulService {}\n *\n * @Injectable()\n * class NeedsService {\n * constructor(public service:UsefulService) {}\n * }\n *\n * var injector = Injector.resolveAndCreate([NeedsService, UsefulService]);\n * expect(injector.get(NeedsService).service instanceof UsefulService).toBe(true);\n * ```\n * {@link Injector} will throw {@link NoAnnotationError} when trying to instantiate a class that\n * does not have `@Injectable` marker, as shown in the example below.\n *\n * ```typescript\n * class UsefulService {}\n *\n * class NeedsService {\n * constructor(public service:UsefulService) {}\n * }\n *\n * var injector = Injector.resolveAndCreate([NeedsService, UsefulService]);\n * expect(() => injector.get(NeedsService)).toThrowError();\n * ```\n * @ts2dart_const\n * @stable\n */\nexport class InjectableMetadata {\n constructor() {}\n}\n\n/**\n * Specifies that an {@link Injector} should retrieve a dependency only from itself.\n *\n * ### Example ([live demo](http://plnkr.co/edit/NeagAg?p=preview))\n *\n * ```typescript\n * class Dependency {\n * }\n *\n * @Injectable()\n * class NeedsDependency {\n * dependency;\n * constructor(@Self() dependency:Dependency) {\n * this.dependency = dependency;\n * }\n * }\n *\n * var inj = Injector.resolveAndCreate([Dependency, NeedsDependency]);\n * var nd = inj.get(NeedsDependency);\n *\n * expect(nd.dependency instanceof Dependency).toBe(true);\n *\n * var inj = Injector.resolveAndCreate([Dependency]);\n * var child = inj.resolveAndCreateChild([NeedsDependency]);\n * expect(() => child.get(NeedsDependency)).toThrowError();\n * ```\n * @ts2dart_const\n * @stable\n */\nexport class SelfMetadata {\n toString(): string { return `@Self()`; }\n}\n\n/**\n * Specifies that the dependency resolution should start from the parent injector.\n *\n * ### Example ([live demo](http://plnkr.co/edit/Wchdzb?p=preview))\n *\n * ```typescript\n * class Dependency {\n * }\n *\n * @Injectable()\n * class NeedsDependency {\n * dependency;\n * constructor(@SkipSelf() dependency:Dependency) {\n * this.dependency = dependency;\n * }\n * }\n *\n * var parent = Injector.resolveAndCreate([Dependency]);\n * var child = parent.resolveAndCreateChild([NeedsDependency]);\n * expect(child.get(NeedsDependency).dependency instanceof Depedency).toBe(true);\n *\n * var inj = Injector.resolveAndCreate([Dependency, NeedsDependency]);\n * expect(() => inj.get(NeedsDependency)).toThrowError();\n * ```\n * @ts2dart_const\n * @stable\n */\nexport class SkipSelfMetadata {\n toString(): string { return `@SkipSelf()`; }\n}\n\n/**\n * Specifies that an injector should retrieve a dependency from any injector until reaching the\n * closest host.\n *\n * In Angular, a component element is automatically declared as a host for all the injectors in\n * its view.\n *\n * ### Example ([live demo](http://plnkr.co/edit/GX79pV?p=preview))\n *\n * In the following example `App` contains `ParentCmp`, which contains `ChildDirective`.\n * So `ParentCmp` is the host of `ChildDirective`.\n *\n * `ChildDirective` depends on two services: `HostService` and `OtherService`.\n * `HostService` is defined at `ParentCmp`, and `OtherService` is defined at `App`.\n *\n *```typescript\n * class OtherService {}\n * class HostService {}\n *\n * @Directive({\n * selector: 'child-directive'\n * })\n * class ChildDirective {\n * constructor(@Optional() @Host() os:OtherService, @Optional() @Host() hs:HostService){\n * console.log(\"os is null\", os);\n * console.log(\"hs is NOT null\", hs);\n * }\n * }\n *\n * @Component({\n * selector: 'parent-cmp',\n * providers: [HostService],\n * template: `\n * Dir: <child-directive></child-directive>\n * `,\n * directives: [ChildDirective]\n * })\n * class ParentCmp {\n * }\n *\n * @Component({\n * selector: 'app',\n * providers: [OtherService],\n * template: `\n * Parent: <parent-cmp></parent-cmp>\n * `,\n * directives: [ParentCmp]\n * })\n * class App {\n * }\n *\n * bootstrap(App);\n *```\n * @ts2dart_const\n * @stable\n */\nexport class HostMetadata {\n toString(): string { return `@Host()`; }\n}\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n"]}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* var t = new OpaqueToken("value");
|
|
8
8
|
*
|
|
9
9
|
* var injector = Injector.resolveAndCreate([
|
|
10
|
-
* provide
|
|
10
|
+
* {provide: t, useValue: "bindingValue"}
|
|
11
11
|
* ]);
|
|
12
12
|
*
|
|
13
13
|
* expect(injector.get(t)).toEqual("bindingValue");
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
* Using an `OpaqueToken` is preferable to using an `Object` as tokens because it provides better
|
|
20
20
|
* error messages.
|
|
21
21
|
* @ts2dart_const
|
|
22
|
+
* @stable
|
|
22
23
|
*/
|
|
23
24
|
export declare class OpaqueToken {
|
|
24
25
|
private _desc;
|
|
@@ -1,25 +1,26 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Creates a token that can be used in a DI Provider.
|
|
3
|
-
*
|
|
4
|
-
* ### Example ([live demo](http://plnkr.co/edit/Ys9ezXpj2Mnoy3Uc8KBp?p=preview))
|
|
5
|
-
*
|
|
6
|
-
* ```typescript
|
|
7
|
-
* var t = new OpaqueToken("value");
|
|
8
|
-
*
|
|
9
|
-
* var injector = Injector.resolveAndCreate([
|
|
10
|
-
* provide
|
|
11
|
-
* ]);
|
|
12
|
-
*
|
|
13
|
-
* expect(injector.get(t)).toEqual("bindingValue");
|
|
14
|
-
* ```
|
|
15
|
-
*
|
|
16
|
-
* Using an `OpaqueToken` is preferable to using strings as tokens because of possible collisions
|
|
17
|
-
* caused by multiple providers using the same string as two different tokens.
|
|
18
|
-
*
|
|
19
|
-
* Using an `OpaqueToken` is preferable to using an `Object` as tokens because it provides better
|
|
20
|
-
* error messages.
|
|
21
|
-
* @ts2dart_const
|
|
22
|
-
|
|
2
|
+
* Creates a token that can be used in a DI Provider.
|
|
3
|
+
*
|
|
4
|
+
* ### Example ([live demo](http://plnkr.co/edit/Ys9ezXpj2Mnoy3Uc8KBp?p=preview))
|
|
5
|
+
*
|
|
6
|
+
* ```typescript
|
|
7
|
+
* var t = new OpaqueToken("value");
|
|
8
|
+
*
|
|
9
|
+
* var injector = Injector.resolveAndCreate([
|
|
10
|
+
* {provide: t, useValue: "bindingValue"}
|
|
11
|
+
* ]);
|
|
12
|
+
*
|
|
13
|
+
* expect(injector.get(t)).toEqual("bindingValue");
|
|
14
|
+
* ```
|
|
15
|
+
*
|
|
16
|
+
* Using an `OpaqueToken` is preferable to using strings as tokens because of possible collisions
|
|
17
|
+
* caused by multiple providers using the same string as two different tokens.
|
|
18
|
+
*
|
|
19
|
+
* Using an `OpaqueToken` is preferable to using an `Object` as tokens because it provides better
|
|
20
|
+
* error messages.
|
|
21
|
+
* @ts2dart_const
|
|
22
|
+
* @stable
|
|
23
|
+
*/
|
|
23
24
|
export class OpaqueToken {
|
|
24
25
|
constructor(_desc) {
|
|
25
26
|
this._desc = _desc;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opaque_token.js","sourceRoot":"","sources":["../../../../../../modules/@angular/core/src/di/opaque_token.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"opaque_token.js","sourceRoot":"","sources":["../../../../../../modules/@angular/core/src/di/opaque_token.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH;IACE,YAAoB,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;IAAG,CAAC;IAErC,QAAQ,KAAa,MAAM,CAAC,SAAS,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACtD,CAAC;AAAA","sourcesContent":["/**\n * Creates a token that can be used in a DI Provider.\n *\n * ### Example ([live demo](http://plnkr.co/edit/Ys9ezXpj2Mnoy3Uc8KBp?p=preview))\n *\n * ```typescript\n * var t = new OpaqueToken(\"value\");\n *\n * var injector = Injector.resolveAndCreate([\n * {provide: t, useValue: \"bindingValue\"}\n * ]);\n *\n * expect(injector.get(t)).toEqual(\"bindingValue\");\n * ```\n *\n * Using an `OpaqueToken` is preferable to using strings as tokens because of possible collisions\n * caused by multiple providers using the same string as two different tokens.\n *\n * Using an `OpaqueToken` is preferable to using an `Object` as tokens because it provides better\n * error messages.\n * @ts2dart_const\n * @stable\n */\nexport class OpaqueToken {\n constructor(private _desc: string) {}\n\n toString(): string { return `Token ${this._desc}`; }\n}\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n"]}
|
package/esm/src/di/provider.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Type } from '
|
|
1
|
+
import { Type } from '../facade/lang';
|
|
2
2
|
/**
|
|
3
3
|
* Describes how the {@link Injector} should instantiate a given token.
|
|
4
4
|
*
|
|
@@ -14,6 +14,7 @@ import { Type } from '../../src/facade/lang';
|
|
|
14
14
|
* expect(injector.get("message")).toEqual('Hello');
|
|
15
15
|
* ```
|
|
16
16
|
* @ts2dart_const
|
|
17
|
+
* @deprecated
|
|
17
18
|
*/
|
|
18
19
|
export declare class Provider {
|
|
19
20
|
/**
|
|
@@ -136,8 +137,6 @@ export declare class Provider {
|
|
|
136
137
|
* Used in conjunction with `useFactory`.
|
|
137
138
|
*/
|
|
138
139
|
dependencies: Object[];
|
|
139
|
-
/** @internal */
|
|
140
|
-
_multi: boolean;
|
|
141
140
|
constructor(token: any, {useClass, useValue, useExisting, useFactory, deps, multi}: {
|
|
142
141
|
useClass?: Type;
|
|
143
142
|
useValue?: any;
|
|
@@ -224,6 +223,7 @@ export declare class Binding extends Provider {
|
|
|
224
223
|
export declare function bind(token: any): ProviderBuilder;
|
|
225
224
|
/**
|
|
226
225
|
* Helper class for the {@link bind} function.
|
|
226
|
+
* @deprecated
|
|
227
227
|
*/
|
|
228
228
|
export declare class ProviderBuilder {
|
|
229
229
|
token: any;
|
|
@@ -243,11 +243,11 @@ export declare class ProviderBuilder {
|
|
|
243
243
|
*
|
|
244
244
|
* var injectorClass = Injector.resolveAndCreate([
|
|
245
245
|
* Car,
|
|
246
|
-
* provide
|
|
246
|
+
* {provide: Vehicle, useClass: Car}
|
|
247
247
|
* ]);
|
|
248
248
|
* var injectorAlias = Injector.resolveAndCreate([
|
|
249
249
|
* Car,
|
|
250
|
-
* provide
|
|
250
|
+
* {provide: Vehicle, useExisting: Car}
|
|
251
251
|
* ]);
|
|
252
252
|
*
|
|
253
253
|
* expect(injectorClass.get(Vehicle)).not.toBe(injectorClass.get(Car));
|
|
@@ -265,7 +265,7 @@ export declare class ProviderBuilder {
|
|
|
265
265
|
*
|
|
266
266
|
* ```typescript
|
|
267
267
|
* var injector = Injector.resolveAndCreate([
|
|
268
|
-
* provide
|
|
268
|
+
* {provide: 'message', useValue: 'Hello'}
|
|
269
269
|
* ]);
|
|
270
270
|
*
|
|
271
271
|
* expect(injector.get('message')).toEqual('Hello');
|
|
@@ -290,11 +290,11 @@ export declare class ProviderBuilder {
|
|
|
290
290
|
*
|
|
291
291
|
* var injectorAlias = Injector.resolveAndCreate([
|
|
292
292
|
* Car,
|
|
293
|
-
* provide
|
|
293
|
+
* {provide: Vehicle, useExisting: Car}
|
|
294
294
|
* ]);
|
|
295
295
|
* var injectorClass = Injector.resolveAndCreate([
|
|
296
296
|
* Car,
|
|
297
|
-
* provide
|
|
297
|
+
* {provide: Vehicle, useClass: Car})
|
|
298
298
|
* ]);
|
|
299
299
|
*
|
|
300
300
|
* expect(injectorAlias.get(Vehicle)).toBe(injectorAlias.get(Car));
|
|
@@ -312,8 +312,8 @@ export declare class ProviderBuilder {
|
|
|
312
312
|
*
|
|
313
313
|
* ```typescript
|
|
314
314
|
* var injector = Injector.resolveAndCreate([
|
|
315
|
-
* provide
|
|
316
|
-
* provide
|
|
315
|
+
* {provide: Number, useFactory: () => { return 1+2; }},
|
|
316
|
+
* {provide: String, useFactory: (v) => { return "Value: " + v; }, deps: [Number]}
|
|
317
317
|
* ]);
|
|
318
318
|
*
|
|
319
319
|
* expect(injector.get(Number)).toEqual(3);
|
|
@@ -328,6 +328,7 @@ export declare class ProviderBuilder {
|
|
|
328
328
|
* See {@link Provider} for more details.
|
|
329
329
|
*
|
|
330
330
|
* <!-- TODO: improve the docs -->
|
|
331
|
+
* @deprecated
|
|
331
332
|
*/
|
|
332
333
|
export declare function provide(token: any, {useClass, useValue, useExisting, useFactory, deps, multi}: {
|
|
333
334
|
useClass?: Type;
|
package/esm/src/di/provider.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { BaseException } from '../facade/exceptions';
|
|
2
|
+
import { isBlank, isFunction, isType, normalizeBool, stringify } from '../facade/lang';
|
|
3
3
|
/**
|
|
4
4
|
* Describes how the {@link Injector} should instantiate a given token.
|
|
5
5
|
*
|
|
@@ -15,9 +15,10 @@ import { BaseException } from '../../src/facade/exceptions';
|
|
|
15
15
|
* expect(injector.get("message")).toEqual('Hello');
|
|
16
16
|
* ```
|
|
17
17
|
* @ts2dart_const
|
|
18
|
+
* @deprecated
|
|
18
19
|
*/
|
|
19
20
|
export class Provider {
|
|
20
|
-
constructor(token
|
|
21
|
+
constructor(token /** TODO #9100 */, { useClass, useValue, useExisting, useFactory, deps, multi }) {
|
|
21
22
|
this.token = token;
|
|
22
23
|
this.useClass = useClass;
|
|
23
24
|
this.useValue = useValue;
|
|
@@ -65,7 +66,7 @@ export class Provider {
|
|
|
65
66
|
* @ts2dart_const
|
|
66
67
|
*/
|
|
67
68
|
export class Binding extends Provider {
|
|
68
|
-
constructor(token
|
|
69
|
+
constructor(token /** TODO #9100 */, { toClass, toValue, toAlias, toFactory, deps, multi }) {
|
|
69
70
|
super(token, {
|
|
70
71
|
useClass: toClass,
|
|
71
72
|
useValue: toValue,
|
|
@@ -104,14 +105,15 @@ export class Binding extends Provider {
|
|
|
104
105
|
*
|
|
105
106
|
* @deprecated
|
|
106
107
|
*/
|
|
107
|
-
export function bind(token) {
|
|
108
|
+
export function bind(token /** TODO #9100 */) {
|
|
108
109
|
return new ProviderBuilder(token);
|
|
109
110
|
}
|
|
110
111
|
/**
|
|
111
112
|
* Helper class for the {@link bind} function.
|
|
113
|
+
* @deprecated
|
|
112
114
|
*/
|
|
113
115
|
export class ProviderBuilder {
|
|
114
|
-
constructor(token) {
|
|
116
|
+
constructor(token /** TODO #9100 */) {
|
|
115
117
|
this.token = token;
|
|
116
118
|
}
|
|
117
119
|
/**
|
|
@@ -129,11 +131,11 @@ export class ProviderBuilder {
|
|
|
129
131
|
*
|
|
130
132
|
* var injectorClass = Injector.resolveAndCreate([
|
|
131
133
|
* Car,
|
|
132
|
-
* provide
|
|
134
|
+
* {provide: Vehicle, useClass: Car}
|
|
133
135
|
* ]);
|
|
134
136
|
* var injectorAlias = Injector.resolveAndCreate([
|
|
135
137
|
* Car,
|
|
136
|
-
* provide
|
|
138
|
+
* {provide: Vehicle, useExisting: Car}
|
|
137
139
|
* ]);
|
|
138
140
|
*
|
|
139
141
|
* expect(injectorClass.get(Vehicle)).not.toBe(injectorClass.get(Car));
|
|
@@ -156,7 +158,7 @@ export class ProviderBuilder {
|
|
|
156
158
|
*
|
|
157
159
|
* ```typescript
|
|
158
160
|
* var injector = Injector.resolveAndCreate([
|
|
159
|
-
* provide
|
|
161
|
+
* {provide: 'message', useValue: 'Hello'}
|
|
160
162
|
* ]);
|
|
161
163
|
*
|
|
162
164
|
* expect(injector.get('message')).toEqual('Hello');
|
|
@@ -181,11 +183,11 @@ export class ProviderBuilder {
|
|
|
181
183
|
*
|
|
182
184
|
* var injectorAlias = Injector.resolveAndCreate([
|
|
183
185
|
* Car,
|
|
184
|
-
* provide
|
|
186
|
+
* {provide: Vehicle, useExisting: Car}
|
|
185
187
|
* ]);
|
|
186
188
|
* var injectorClass = Injector.resolveAndCreate([
|
|
187
189
|
* Car,
|
|
188
|
-
* provide
|
|
190
|
+
* {provide: Vehicle, useClass: Car})
|
|
189
191
|
* ]);
|
|
190
192
|
*
|
|
191
193
|
* expect(injectorAlias.get(Vehicle)).toBe(injectorAlias.get(Car));
|
|
@@ -208,8 +210,8 @@ export class ProviderBuilder {
|
|
|
208
210
|
*
|
|
209
211
|
* ```typescript
|
|
210
212
|
* var injector = Injector.resolveAndCreate([
|
|
211
|
-
* provide
|
|
212
|
-
* provide
|
|
213
|
+
* {provide: Number, useFactory: () => { return 1+2; }},
|
|
214
|
+
* {provide: String, useFactory: (v) => { return "Value: " + v; }, deps: [Number]}
|
|
213
215
|
* ]);
|
|
214
216
|
*
|
|
215
217
|
* expect(injector.get(Number)).toEqual(3);
|
|
@@ -229,8 +231,9 @@ export class ProviderBuilder {
|
|
|
229
231
|
* See {@link Provider} for more details.
|
|
230
232
|
*
|
|
231
233
|
* <!-- TODO: improve the docs -->
|
|
234
|
+
* @deprecated
|
|
232
235
|
*/
|
|
233
|
-
export function provide(token
|
|
236
|
+
export function provide(token /** TODO #9100 */, { useClass, useValue, useExisting, useFactory, deps, multi }) {
|
|
234
237
|
return new Provider(token, {
|
|
235
238
|
useClass: useClass,
|
|
236
239
|
useValue: useValue,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../../../../modules/@angular/core/src/di/provider.ts"],"names":[],"mappings":"OAIS,EAAC,aAAa,EAAQ,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAC,MAAM,uBAAuB;OAC5F,EAAC,aAAa,EAAC,MAAM,6BAA6B;AAEzD;;;;;;;;;;;;;;;GAeG;AACH;IAkIE,YAAY,KAAK,EAAE,EAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAO3E;QACC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,kEAAkE;IAClE;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,IAAI,KAAK,KAAc,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED;;;;;GAKG;AACH,6BAA6B,QAAQ;IACnC,YAAY,KAAK,EAAE,EAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAKpE;QACC,MAAM,KAAK,EAAE;YACX,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE,OAAO;YACjB,WAAW,EAAE,OAAO;YACpB,UAAU,EAAE,SAAS;YACrB,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,IAAI,OAAO,KAAK,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEvC;;OAEG;IACH,IAAI,OAAO,KAAK,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAE1C;;OAEG;IACH,IAAI,SAAS,KAAK,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAE3C;;OAEG;IACH,IAAI,OAAO,KAAK,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AACzC,CAAC;AAED;;;;;;;;;;;GAWG;AACH,qBAAqB,KAAK;IACxB,MAAM,CAAC,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC;AAED;;GAEG;AACH;IACE,YAAmB,KAAK;QAAL,UAAK,GAAL,KAAK,CAAA;IAAG,CAAC;IAE5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,OAAO,CAAC,IAAU;QAChB,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,MAAM,IAAI,aAAa,CACnB,0CAA0C,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACpF,CAAC;QACD,MAAM,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;IACpD,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,KAAU,IAAc,MAAM,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,EAAC,QAAQ,EAAE,KAAK,EAAC,CAAC,CAAC,CAAC,CAAC;IAErF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACH,OAAO,CAAC,UAAwB;QAC9B,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACxB,MAAM,IAAI,aAAa,CAAC,iBAAiB,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACtF,CAAC;QACD,MAAM,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,EAAC,WAAW,EAAE,UAAU,EAAC,CAAC,CAAC;IAC7D,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,SAAS,CAAC,OAAiB,EAAE,YAAoB;QAC/C,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACzB,MAAM,IAAI,aAAa,CACnB,4CAA4C,SAAS,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;QAC5F,CAAC;QACD,MAAM,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,EAAC,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAC,CAAC,CAAC;IAC7E,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,wBAAwB,KAAK,EAAE,EAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAOvF;IACC,MAAM,CAAC,IAAI,QAAQ,CAAC,KAAK,EAAE;QACzB,QAAQ,EAAE,QAAQ;QAClB,QAAQ,EAAE,QAAQ;QAClB,WAAW,EAAE,WAAW;QACxB,UAAU,EAAE,UAAU;QACtB,IAAI,EAAE,IAAI;QACV,KAAK,EAAE,KAAK;KACb,CAAC,CAAC;AACL,CAAC","sourcesContent":["interface DecoratorInvocation {\n type: Function;\n args?: any[];\n }\n import {normalizeBool, Type, isType, isBlank, isFunction, stringify} from '../../src/facade/lang';\nimport {BaseException} from '../../src/facade/exceptions';\n\n/**\n * Describes how the {@link Injector} should instantiate a given token.\n *\n * See {@link provide}.\n *\n * ### Example ([live demo](http://plnkr.co/edit/GNAyj6K6PfYg2NBzgwZ5?p%3Dpreview&p=preview))\n *\n * ```javascript\n * var injector = Injector.resolveAndCreate([\n * new Provider(\"message\", { useValue: 'Hello' })\n * ]);\n *\n * expect(injector.get(\"message\")).toEqual('Hello');\n * ```\n * @ts2dart_const\n */\nexport class Provider {\n /**\n * Token used when retrieving this provider. Usually, it is a type {@link Type}.\n */\n token;\n\n /**\n * Binds a DI token to an implementation class.\n *\n * ### Example ([live demo](http://plnkr.co/edit/RSTG86qgmoxCyj9SWPwY?p=preview))\n *\n * Because `useExisting` and `useClass` are often confused, the example contains\n * both use cases for easy comparison.\n *\n * ```typescript\n * class Vehicle {}\n *\n * class Car extends Vehicle {}\n *\n * var injectorClass = Injector.resolveAndCreate([\n * Car,\n * {provide: Vehicle, useClass: Car }\n * ]);\n * var injectorAlias = Injector.resolveAndCreate([\n * Car,\n * {provide: Vehicle, useExisting: Car }\n * ]);\n *\n * expect(injectorClass.get(Vehicle)).not.toBe(injectorClass.get(Car));\n * expect(injectorClass.get(Vehicle) instanceof Car).toBe(true);\n *\n * expect(injectorAlias.get(Vehicle)).toBe(injectorAlias.get(Car));\n * expect(injectorAlias.get(Vehicle) instanceof Car).toBe(true);\n * ```\n */\n useClass: Type;\n\n /**\n * Binds a DI token to a value.\n *\n * ### Example ([live demo](http://plnkr.co/edit/UFVsMVQIDe7l4waWziES?p=preview))\n *\n * ```javascript\n * var injector = Injector.resolveAndCreate([\n * new Provider(\"message\", { useValue: 'Hello' })\n * ]);\n *\n * expect(injector.get(\"message\")).toEqual('Hello');\n * ```\n */\n useValue;\n\n /**\n * Binds a DI token to an existing token.\n *\n * {@link Injector} returns the same instance as if the provided token was used.\n * This is in contrast to `useClass` where a separate instance of `useClass` is returned.\n *\n * ### Example ([live demo](http://plnkr.co/edit/QsatsOJJ6P8T2fMe9gr8?p=preview))\n *\n * Because `useExisting` and `useClass` are often confused the example contains\n * both use cases for easy comparison.\n *\n * ```typescript\n * class Vehicle {}\n *\n * class Car extends Vehicle {}\n *\n * var injectorAlias = Injector.resolveAndCreate([\n * Car,\n * {provide: Vehicle, useExisting: Car }\n * ]);\n * var injectorClass = Injector.resolveAndCreate([\n * Car,\n * {provide: Vehicle, useClass: Car }\n * ]);\n *\n * expect(injectorAlias.get(Vehicle)).toBe(injectorAlias.get(Car));\n * expect(injectorAlias.get(Vehicle) instanceof Car).toBe(true);\n *\n * expect(injectorClass.get(Vehicle)).not.toBe(injectorClass.get(Car));\n * expect(injectorClass.get(Vehicle) instanceof Car).toBe(true);\n * ```\n */\n useExisting;\n\n /**\n * Binds a DI token to a function which computes the value.\n *\n * ### Example ([live demo](http://plnkr.co/edit/Scoxy0pJNqKGAPZY1VVC?p=preview))\n *\n * ```typescript\n * var injector = Injector.resolveAndCreate([\n * {provide: Number, useFactory: () => { return 1+2; }},\n * new Provider(String, { useFactory: (value) => { return \"Value: \" + value; },\n * deps: [Number] })\n * ]);\n *\n * expect(injector.get(Number)).toEqual(3);\n * expect(injector.get(String)).toEqual('Value: 3');\n * ```\n *\n * Used in conjunction with dependencies.\n */\n useFactory: Function;\n\n /**\n * Specifies a set of dependencies\n * (as `token`s) which should be injected into the factory function.\n *\n * ### Example ([live demo](http://plnkr.co/edit/Scoxy0pJNqKGAPZY1VVC?p=preview))\n *\n * ```typescript\n * var injector = Injector.resolveAndCreate([\n * {provide: Number, useFactory: () => { return 1+2; }},\n * new Provider(String, { useFactory: (value) => { return \"Value: \" + value; },\n * deps: [Number] })\n * ]);\n *\n * expect(injector.get(Number)).toEqual(3);\n * expect(injector.get(String)).toEqual('Value: 3');\n * ```\n *\n * Used in conjunction with `useFactory`.\n */\n dependencies: Object[];\n\n /** @internal */\n _multi: boolean;\n\n constructor(token, {useClass, useValue, useExisting, useFactory, deps, multi}: {\n useClass?: Type,\n useValue?: any,\n useExisting?: any,\n useFactory?: Function,\n deps?: Object[],\n multi?: boolean\n }) {\n this.token = token;\n this.useClass = useClass;\n this.useValue = useValue;\n this.useExisting = useExisting;\n this.useFactory = useFactory;\n this.dependencies = deps;\n this._multi = multi;\n }\n\n // TODO: Provide a full working example after alpha38 is released.\n /**\n * Creates multiple providers matching the same token (a multi-provider).\n *\n * Multi-providers are used for creating pluggable service, where the system comes\n * with some default providers, and the user can register additional providers.\n * The combination of the default providers and the additional providers will be\n * used to drive the behavior of the system.\n *\n * ### Example\n *\n * ```typescript\n * var injector = Injector.resolveAndCreate([\n * new Provider(\"Strings\", { useValue: \"String1\", multi: true}),\n * new Provider(\"Strings\", { useValue: \"String2\", multi: true})\n * ]);\n *\n * expect(injector.get(\"Strings\")).toEqual([\"String1\", \"String2\"]);\n * ```\n *\n * Multi-providers and regular providers cannot be mixed. The following\n * will throw an exception:\n *\n * ```typescript\n * var injector = Injector.resolveAndCreate([\n * new Provider(\"Strings\", { useValue: \"String1\", multi: true }),\n * new Provider(\"Strings\", { useValue: \"String2\"})\n * ]);\n * ```\n */\n get multi(): boolean { return normalizeBool(this._multi); }\n}\n\n/**\n * See {@link Provider} instead.\n *\n * @deprecated\n * @ts2dart_const\n */\nexport class Binding extends Provider {\n constructor(token, {toClass, toValue, toAlias, toFactory, deps, multi}: {\n toClass?: Type,\n toValue?: any,\n toAlias?: any,\n toFactory: Function, deps?: Object[], multi?: boolean\n }) {\n super(token, {\n useClass: toClass,\n useValue: toValue,\n useExisting: toAlias,\n useFactory: toFactory,\n deps: deps,\n multi: multi\n });\n }\n\n /**\n * @deprecated\n */\n get toClass() { return this.useClass; }\n\n /**\n * @deprecated\n */\n get toAlias() { return this.useExisting; }\n\n /**\n * @deprecated\n */\n get toFactory() { return this.useFactory; }\n\n /**\n * @deprecated\n */\n get toValue() { return this.useValue; }\n}\n\n/**\n * Creates a {@link Provider}.\n *\n * To construct a {@link Provider}, bind a `token` to either a class, a value, a factory function,\n * or\n * to an existing `token`.\n * See {@link ProviderBuilder} for more details.\n *\n * The `token` is most commonly a class or {@link OpaqueToken-class.html}.\n *\n * @deprecated\n */\nexport function bind(token): ProviderBuilder {\n return new ProviderBuilder(token);\n}\n\n/**\n * Helper class for the {@link bind} function.\n */\nexport class ProviderBuilder {\n constructor(public token) {}\n\n /**\n * Binds a DI token to a class.\n *\n * ### Example ([live demo](http://plnkr.co/edit/ZpBCSYqv6e2ud5KXLdxQ?p=preview))\n *\n * Because `toAlias` and `toClass` are often confused, the example contains\n * both use cases for easy comparison.\n *\n * ```typescript\n * class Vehicle {}\n *\n * class Car extends Vehicle {}\n *\n * var injectorClass = Injector.resolveAndCreate([\n * Car,\n * provide(Vehicle, {useClass: Car})\n * ]);\n * var injectorAlias = Injector.resolveAndCreate([\n * Car,\n * provide(Vehicle, {useExisting: Car})\n * ]);\n *\n * expect(injectorClass.get(Vehicle)).not.toBe(injectorClass.get(Car));\n * expect(injectorClass.get(Vehicle) instanceof Car).toBe(true);\n *\n * expect(injectorAlias.get(Vehicle)).toBe(injectorAlias.get(Car));\n * expect(injectorAlias.get(Vehicle) instanceof Car).toBe(true);\n * ```\n */\n toClass(type: Type): Provider {\n if (!isType(type)) {\n throw new BaseException(\n `Trying to create a class provider but \"${stringify(type)}\" is not a class!`);\n }\n return new Provider(this.token, {useClass: type});\n }\n\n /**\n * Binds a DI token to a value.\n *\n * ### Example ([live demo](http://plnkr.co/edit/G024PFHmDL0cJFgfZK8O?p=preview))\n *\n * ```typescript\n * var injector = Injector.resolveAndCreate([\n * provide('message', {useValue: 'Hello'})\n * ]);\n *\n * expect(injector.get('message')).toEqual('Hello');\n * ```\n */\n toValue(value: any): Provider { return new Provider(this.token, {useValue: value}); }\n\n /**\n * Binds a DI token to an existing token.\n *\n * Angular will return the same instance as if the provided token was used. (This is\n * in contrast to `useClass` where a separate instance of `useClass` will be returned.)\n *\n * ### Example ([live demo](http://plnkr.co/edit/uBaoF2pN5cfc5AfZapNw?p=preview))\n *\n * Because `toAlias` and `toClass` are often confused, the example contains\n * both use cases for easy comparison.\n *\n * ```typescript\n * class Vehicle {}\n *\n * class Car extends Vehicle {}\n *\n * var injectorAlias = Injector.resolveAndCreate([\n * Car,\n * provide(Vehicle, {useExisting: Car})\n * ]);\n * var injectorClass = Injector.resolveAndCreate([\n * Car,\n * provide(Vehicle, {useClass: Car})\n * ]);\n *\n * expect(injectorAlias.get(Vehicle)).toBe(injectorAlias.get(Car));\n * expect(injectorAlias.get(Vehicle) instanceof Car).toBe(true);\n *\n * expect(injectorClass.get(Vehicle)).not.toBe(injectorClass.get(Car));\n * expect(injectorClass.get(Vehicle) instanceof Car).toBe(true);\n * ```\n */\n toAlias(aliasToken: /*Type*/ any): Provider {\n if (isBlank(aliasToken)) {\n throw new BaseException(`Can not alias ${stringify(this.token)} to a blank value!`);\n }\n return new Provider(this.token, {useExisting: aliasToken});\n }\n\n /**\n * Binds a DI token to a function which computes the value.\n *\n * ### Example ([live demo](http://plnkr.co/edit/OejNIfTT3zb1iBxaIYOb?p=preview))\n *\n * ```typescript\n * var injector = Injector.resolveAndCreate([\n * provide(Number, {useFactory: () => { return 1+2; }}),\n * provide(String, {useFactory: (v) => { return \"Value: \" + v; }, deps: [Number]})\n * ]);\n *\n * expect(injector.get(Number)).toEqual(3);\n * expect(injector.get(String)).toEqual('Value: 3');\n * ```\n */\n toFactory(factory: Function, dependencies?: any[]): Provider {\n if (!isFunction(factory)) {\n throw new BaseException(\n `Trying to create a factory provider but \"${stringify(factory)}\" is not a function!`);\n }\n return new Provider(this.token, {useFactory: factory, deps: dependencies});\n }\n}\n\n/**\n * Creates a {@link Provider}.\n *\n * See {@link Provider} for more details.\n *\n * <!-- TODO: improve the docs -->\n */\nexport function provide(token, {useClass, useValue, useExisting, useFactory, deps, multi}: {\n useClass?: Type,\n useValue?: any,\n useExisting?: any,\n useFactory?: Function,\n deps?: Object[],\n multi?: boolean\n}): Provider {\n return new Provider(token, {\n useClass: useClass,\n useValue: useValue,\n useExisting: useExisting,\n useFactory: useFactory,\n deps: deps,\n multi: multi\n });\n}\n"]}
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../../../../modules/@angular/core/src/di/provider.ts"],"names":[],"mappings":"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","sourcesContent":["import {BaseException} from '../facade/exceptions';\nimport {Type, isBlank, isFunction, isType, normalizeBool, stringify} from '../facade/lang';\n\n\n/**\n * Describes how the {@link Injector} should instantiate a given token.\n *\n * See {@link provide}.\n *\n * ### Example ([live demo](http://plnkr.co/edit/GNAyj6K6PfYg2NBzgwZ5?p%3Dpreview&p=preview))\n *\n * ```javascript\n * var injector = Injector.resolveAndCreate([\n * new Provider(\"message\", { useValue: 'Hello' })\n * ]);\n *\n * expect(injector.get(\"message\")).toEqual('Hello');\n * ```\n * @ts2dart_const\n * @deprecated\n */\nexport class Provider {\n /**\n * Token used when retrieving this provider. Usually, it is a type {@link Type}.\n */\n token: any /** TODO #9100 */;\n\n /**\n * Binds a DI token to an implementation class.\n *\n * ### Example ([live demo](http://plnkr.co/edit/RSTG86qgmoxCyj9SWPwY?p=preview))\n *\n * Because `useExisting` and `useClass` are often confused, the example contains\n * both use cases for easy comparison.\n *\n * ```typescript\n * class Vehicle {}\n *\n * class Car extends Vehicle {}\n *\n * var injectorClass = Injector.resolveAndCreate([\n * Car,\n * {provide: Vehicle, useClass: Car }\n * ]);\n * var injectorAlias = Injector.resolveAndCreate([\n * Car,\n * {provide: Vehicle, useExisting: Car }\n * ]);\n *\n * expect(injectorClass.get(Vehicle)).not.toBe(injectorClass.get(Car));\n * expect(injectorClass.get(Vehicle) instanceof Car).toBe(true);\n *\n * expect(injectorAlias.get(Vehicle)).toBe(injectorAlias.get(Car));\n * expect(injectorAlias.get(Vehicle) instanceof Car).toBe(true);\n * ```\n */\n useClass: Type;\n\n /**\n * Binds a DI token to a value.\n *\n * ### Example ([live demo](http://plnkr.co/edit/UFVsMVQIDe7l4waWziES?p=preview))\n *\n * ```javascript\n * var injector = Injector.resolveAndCreate([\n * new Provider(\"message\", { useValue: 'Hello' })\n * ]);\n *\n * expect(injector.get(\"message\")).toEqual('Hello');\n * ```\n */\n useValue: any /** TODO #9100 */;\n\n /**\n * Binds a DI token to an existing token.\n *\n * {@link Injector} returns the same instance as if the provided token was used.\n * This is in contrast to `useClass` where a separate instance of `useClass` is returned.\n *\n * ### Example ([live demo](http://plnkr.co/edit/QsatsOJJ6P8T2fMe9gr8?p=preview))\n *\n * Because `useExisting` and `useClass` are often confused the example contains\n * both use cases for easy comparison.\n *\n * ```typescript\n * class Vehicle {}\n *\n * class Car extends Vehicle {}\n *\n * var injectorAlias = Injector.resolveAndCreate([\n * Car,\n * {provide: Vehicle, useExisting: Car }\n * ]);\n * var injectorClass = Injector.resolveAndCreate([\n * Car,\n * {provide: Vehicle, useClass: Car }\n * ]);\n *\n * expect(injectorAlias.get(Vehicle)).toBe(injectorAlias.get(Car));\n * expect(injectorAlias.get(Vehicle) instanceof Car).toBe(true);\n *\n * expect(injectorClass.get(Vehicle)).not.toBe(injectorClass.get(Car));\n * expect(injectorClass.get(Vehicle) instanceof Car).toBe(true);\n * ```\n */\n useExisting: any /** TODO #9100 */;\n\n /**\n * Binds a DI token to a function which computes the value.\n *\n * ### Example ([live demo](http://plnkr.co/edit/Scoxy0pJNqKGAPZY1VVC?p=preview))\n *\n * ```typescript\n * var injector = Injector.resolveAndCreate([\n * {provide: Number, useFactory: () => { return 1+2; }},\n * new Provider(String, { useFactory: (value) => { return \"Value: \" + value; },\n * deps: [Number] })\n * ]);\n *\n * expect(injector.get(Number)).toEqual(3);\n * expect(injector.get(String)).toEqual('Value: 3');\n * ```\n *\n * Used in conjunction with dependencies.\n */\n useFactory: Function;\n\n /**\n * Specifies a set of dependencies\n * (as `token`s) which should be injected into the factory function.\n *\n * ### Example ([live demo](http://plnkr.co/edit/Scoxy0pJNqKGAPZY1VVC?p=preview))\n *\n * ```typescript\n * var injector = Injector.resolveAndCreate([\n * {provide: Number, useFactory: () => { return 1+2; }},\n * new Provider(String, { useFactory: (value) => { return \"Value: \" + value; },\n * deps: [Number] })\n * ]);\n *\n * expect(injector.get(Number)).toEqual(3);\n * expect(injector.get(String)).toEqual('Value: 3');\n * ```\n *\n * Used in conjunction with `useFactory`.\n */\n dependencies: Object[];\n\n /** @internal */\n _multi: boolean;\n\n constructor(\n token: any /** TODO #9100 */, {useClass, useValue, useExisting, useFactory, deps, multi}: {\n useClass?: Type,\n useValue?: any,\n useExisting?: any,\n useFactory?: Function,\n deps?: Object[],\n multi?: boolean\n }) {\n this.token = token;\n this.useClass = useClass;\n this.useValue = useValue;\n this.useExisting = useExisting;\n this.useFactory = useFactory;\n this.dependencies = deps;\n this._multi = multi;\n }\n\n // TODO: Provide a full working example after alpha38 is released.\n /**\n * Creates multiple providers matching the same token (a multi-provider).\n *\n * Multi-providers are used for creating pluggable service, where the system comes\n * with some default providers, and the user can register additional providers.\n * The combination of the default providers and the additional providers will be\n * used to drive the behavior of the system.\n *\n * ### Example\n *\n * ```typescript\n * var injector = Injector.resolveAndCreate([\n * new Provider(\"Strings\", { useValue: \"String1\", multi: true}),\n * new Provider(\"Strings\", { useValue: \"String2\", multi: true})\n * ]);\n *\n * expect(injector.get(\"Strings\")).toEqual([\"String1\", \"String2\"]);\n * ```\n *\n * Multi-providers and regular providers cannot be mixed. The following\n * will throw an exception:\n *\n * ```typescript\n * var injector = Injector.resolveAndCreate([\n * new Provider(\"Strings\", { useValue: \"String1\", multi: true }),\n * new Provider(\"Strings\", { useValue: \"String2\"})\n * ]);\n * ```\n */\n get multi(): boolean { return normalizeBool(this._multi); }\n}\n\n/**\n * See {@link Provider} instead.\n *\n * @deprecated\n * @ts2dart_const\n */\nexport class Binding extends Provider {\n constructor(token: any /** TODO #9100 */, {toClass, toValue, toAlias, toFactory, deps, multi}: {\n toClass?: Type,\n toValue?: any,\n toAlias?: any,\n toFactory: Function, deps?: Object[], multi?: boolean\n }) {\n super(token, {\n useClass: toClass,\n useValue: toValue,\n useExisting: toAlias,\n useFactory: toFactory,\n deps: deps,\n multi: multi\n });\n }\n\n /**\n * @deprecated\n */\n get toClass() { return this.useClass; }\n\n /**\n * @deprecated\n */\n get toAlias() { return this.useExisting; }\n\n /**\n * @deprecated\n */\n get toFactory() { return this.useFactory; }\n\n /**\n * @deprecated\n */\n get toValue() { return this.useValue; }\n}\n\n/**\n * Creates a {@link Provider}.\n *\n * To construct a {@link Provider}, bind a `token` to either a class, a value, a factory function,\n * or\n * to an existing `token`.\n * See {@link ProviderBuilder} for more details.\n *\n * The `token` is most commonly a class or {@link OpaqueToken-class.html}.\n *\n * @deprecated\n */\nexport function bind(token: any /** TODO #9100 */): ProviderBuilder {\n return new ProviderBuilder(token);\n}\n\n/**\n * Helper class for the {@link bind} function.\n * @deprecated\n */\nexport class ProviderBuilder {\n constructor(public token: any /** TODO #9100 */) {}\n\n /**\n * Binds a DI token to a class.\n *\n * ### Example ([live demo](http://plnkr.co/edit/ZpBCSYqv6e2ud5KXLdxQ?p=preview))\n *\n * Because `toAlias` and `toClass` are often confused, the example contains\n * both use cases for easy comparison.\n *\n * ```typescript\n * class Vehicle {}\n *\n * class Car extends Vehicle {}\n *\n * var injectorClass = Injector.resolveAndCreate([\n * Car,\n * {provide: Vehicle, useClass: Car}\n * ]);\n * var injectorAlias = Injector.resolveAndCreate([\n * Car,\n * {provide: Vehicle, useExisting: Car}\n * ]);\n *\n * expect(injectorClass.get(Vehicle)).not.toBe(injectorClass.get(Car));\n * expect(injectorClass.get(Vehicle) instanceof Car).toBe(true);\n *\n * expect(injectorAlias.get(Vehicle)).toBe(injectorAlias.get(Car));\n * expect(injectorAlias.get(Vehicle) instanceof Car).toBe(true);\n * ```\n */\n toClass(type: Type): Provider {\n if (!isType(type)) {\n throw new BaseException(\n `Trying to create a class provider but \"${stringify(type)}\" is not a class!`);\n }\n return new Provider(this.token, {useClass: type});\n }\n\n /**\n * Binds a DI token to a value.\n *\n * ### Example ([live demo](http://plnkr.co/edit/G024PFHmDL0cJFgfZK8O?p=preview))\n *\n * ```typescript\n * var injector = Injector.resolveAndCreate([\n * {provide: 'message', useValue: 'Hello'}\n * ]);\n *\n * expect(injector.get('message')).toEqual('Hello');\n * ```\n */\n toValue(value: any): Provider { return new Provider(this.token, {useValue: value}); }\n\n /**\n * Binds a DI token to an existing token.\n *\n * Angular will return the same instance as if the provided token was used. (This is\n * in contrast to `useClass` where a separate instance of `useClass` will be returned.)\n *\n * ### Example ([live demo](http://plnkr.co/edit/uBaoF2pN5cfc5AfZapNw?p=preview))\n *\n * Because `toAlias` and `toClass` are often confused, the example contains\n * both use cases for easy comparison.\n *\n * ```typescript\n * class Vehicle {}\n *\n * class Car extends Vehicle {}\n *\n * var injectorAlias = Injector.resolveAndCreate([\n * Car,\n * {provide: Vehicle, useExisting: Car}\n * ]);\n * var injectorClass = Injector.resolveAndCreate([\n * Car,\n * {provide: Vehicle, useClass: Car})\n * ]);\n *\n * expect(injectorAlias.get(Vehicle)).toBe(injectorAlias.get(Car));\n * expect(injectorAlias.get(Vehicle) instanceof Car).toBe(true);\n *\n * expect(injectorClass.get(Vehicle)).not.toBe(injectorClass.get(Car));\n * expect(injectorClass.get(Vehicle) instanceof Car).toBe(true);\n * ```\n */\n toAlias(aliasToken: /*Type*/ any): Provider {\n if (isBlank(aliasToken)) {\n throw new BaseException(`Can not alias ${stringify(this.token)} to a blank value!`);\n }\n return new Provider(this.token, {useExisting: aliasToken});\n }\n\n /**\n * Binds a DI token to a function which computes the value.\n *\n * ### Example ([live demo](http://plnkr.co/edit/OejNIfTT3zb1iBxaIYOb?p=preview))\n *\n * ```typescript\n * var injector = Injector.resolveAndCreate([\n * {provide: Number, useFactory: () => { return 1+2; }},\n * {provide: String, useFactory: (v) => { return \"Value: \" + v; }, deps: [Number]}\n * ]);\n *\n * expect(injector.get(Number)).toEqual(3);\n * expect(injector.get(String)).toEqual('Value: 3');\n * ```\n */\n toFactory(factory: Function, dependencies?: any[]): Provider {\n if (!isFunction(factory)) {\n throw new BaseException(\n `Trying to create a factory provider but \"${stringify(factory)}\" is not a function!`);\n }\n return new Provider(this.token, {useFactory: factory, deps: dependencies});\n }\n}\n\n/**\n * Creates a {@link Provider}.\n *\n * See {@link Provider} for more details.\n *\n * <!-- TODO: improve the docs -->\n * @deprecated\n */\nexport function provide(\n token: any /** TODO #9100 */, {useClass, useValue, useExisting, useFactory, deps, multi}: {\n useClass?: Type,\n useValue?: any,\n useExisting?: any,\n useFactory?: Function,\n deps?: Object[],\n multi?: boolean\n }): Provider {\n return new Provider(token, {\n useClass: useClass,\n useValue: useValue,\n useExisting: useExisting,\n useFactory: useFactory,\n deps: deps,\n multi: multi\n });\n}\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"__symbolic":"module","version":1,"metadata":{"bind":{"__symbolic":"function","parameters":["token"],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"ProviderBuilder"},"arguments":[{"__symbolic":"reference","name":"token"}]}},"provide":{"__symbolic":"function","parameters":["token","useClass","useValue","useExisting","useFactory","deps","multi"],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"Provider"},"arguments":[{"__symbolic":"reference","name":"token"},{"useClass":{"__symbolic":"reference","name":"useClass"},"useValue":{"__symbolic":"reference","name":"useValue"},"useExisting":{"__symbolic":"reference","name":"useExisting"},"useFactory":{"__symbolic":"reference","name":"useFactory"},"deps":{"__symbolic":"reference","name":"deps"},"multi":{"__symbolic":"reference","name":"multi"}}]}}}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider_util.js","sourceRoot":"","sources":["../../../../../../modules/@angular/core/src/di/provider_util.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"provider_util.js","sourceRoot":"","sources":["../../../../../../modules/@angular/core/src/di/provider_util.ts"],"names":[],"mappings":"OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY;AAEnC,kCAAkC,GAAQ;IACxC,MAAM,CAAC,GAAG,IAAI,OAAO,GAAG,IAAI,QAAQ,IAAI,GAAG,CAAC,OAAO,CAAC;AACtD,CAAC;AAED,+BAA+B,GAAQ;IACrC,MAAM,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AACxC,CAAC","sourcesContent":["import {Provider} from './provider';\n\nexport function isProviderLiteral(obj: any): boolean {\n return obj && typeof obj == 'object' && obj.provide;\n}\n\nexport function createProvider(obj: any): Provider {\n return new Provider(obj.provide, obj);\n}\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"__symbolic":"module","version":1,"metadata":{"isProviderLiteral":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"reference","name":"obj"},"right":{"__symbolic":"binop","operator":"==","left":{"__symbolic":"error","message":"Expression form not supported","line":3,"character":15},"right":"object"}},"right":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"obj"},"member":"provide"}}},"createProvider":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"./provider","name":"Provider"},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"obj"},"member":"provide"},{"__symbolic":"reference","name":"obj"}]}}}}
|
|
@@ -1,18 +1,11 @@
|
|
|
1
|
-
import { BaseException, WrappedException } from '
|
|
2
|
-
import { ReflectiveKey } from './reflective_key';
|
|
1
|
+
import { BaseException, WrappedException } from '../facade/exceptions';
|
|
3
2
|
import { ReflectiveInjector } from './reflective_injector';
|
|
3
|
+
import { ReflectiveKey } from './reflective_key';
|
|
4
4
|
/**
|
|
5
5
|
* Base class for all errors arising from misconfigured providers.
|
|
6
|
+
* @stable
|
|
6
7
|
*/
|
|
7
8
|
export declare class AbstractProviderError extends BaseException {
|
|
8
|
-
/** @internal */
|
|
9
|
-
message: string;
|
|
10
|
-
/** @internal */
|
|
11
|
-
keys: ReflectiveKey[];
|
|
12
|
-
/** @internal */
|
|
13
|
-
injectors: ReflectiveInjector[];
|
|
14
|
-
/** @internal */
|
|
15
|
-
constructResolvingMessage: Function;
|
|
16
9
|
constructor(injector: ReflectiveInjector, key: ReflectiveKey, constructResolvingMessage: Function);
|
|
17
10
|
addKey(injector: ReflectiveInjector, key: ReflectiveKey): void;
|
|
18
11
|
readonly context: any;
|
|
@@ -30,6 +23,7 @@ export declare class AbstractProviderError extends BaseException {
|
|
|
30
23
|
*
|
|
31
24
|
* expect(() => Injector.resolveAndCreate([A])).toThrowError();
|
|
32
25
|
* ```
|
|
26
|
+
* @stable
|
|
33
27
|
*/
|
|
34
28
|
export declare class NoProviderError extends AbstractProviderError {
|
|
35
29
|
constructor(injector: ReflectiveInjector, key: ReflectiveKey);
|
|
@@ -41,14 +35,15 @@ export declare class NoProviderError extends AbstractProviderError {
|
|
|
41
35
|
*
|
|
42
36
|
* ```typescript
|
|
43
37
|
* var injector = Injector.resolveAndCreate([
|
|
44
|
-
* provide
|
|
45
|
-
* provide
|
|
38
|
+
* {provide: "one", useFactory: (two) => "two", deps: [[new Inject("two")]]},
|
|
39
|
+
* {provide: "two", useFactory: (one) => "one", deps: [[new Inject("one")]]}
|
|
46
40
|
* ]);
|
|
47
41
|
*
|
|
48
42
|
* expect(() => injector.get("one")).toThrowError();
|
|
49
43
|
* ```
|
|
50
44
|
*
|
|
51
45
|
* Retrieving `A` or `B` throws a `CyclicDependencyError` as the graph above cannot be constructed.
|
|
46
|
+
* @stable
|
|
52
47
|
*/
|
|
53
48
|
export declare class CyclicDependencyError extends AbstractProviderError {
|
|
54
49
|
constructor(injector: ReflectiveInjector, key: ReflectiveKey);
|
|
@@ -78,12 +73,9 @@ export declare class CyclicDependencyError extends AbstractProviderError {
|
|
|
78
73
|
* expect(e.originalStack).toBeDefined();
|
|
79
74
|
* }
|
|
80
75
|
* ```
|
|
76
|
+
* @stable
|
|
81
77
|
*/
|
|
82
78
|
export declare class InstantiationError extends WrappedException {
|
|
83
|
-
/** @internal */
|
|
84
|
-
keys: ReflectiveKey[];
|
|
85
|
-
/** @internal */
|
|
86
|
-
injectors: ReflectiveInjector[];
|
|
87
79
|
constructor(injector: ReflectiveInjector, originalException: any, originalStack: any, key: ReflectiveKey);
|
|
88
80
|
addKey(injector: ReflectiveInjector, key: ReflectiveKey): void;
|
|
89
81
|
readonly wrapperMessage: string;
|
|
@@ -99,6 +91,7 @@ export declare class InstantiationError extends WrappedException {
|
|
|
99
91
|
* ```typescript
|
|
100
92
|
* expect(() => Injector.resolveAndCreate(["not a type"])).toThrowError();
|
|
101
93
|
* ```
|
|
94
|
+
* @stable
|
|
102
95
|
*/
|
|
103
96
|
export declare class InvalidProviderError extends BaseException {
|
|
104
97
|
constructor(provider: any);
|
|
@@ -130,6 +123,7 @@ export declare class InvalidProviderError extends BaseException {
|
|
|
130
123
|
*
|
|
131
124
|
* expect(() => Injector.resolveAndCreate([A,B])).toThrowError();
|
|
132
125
|
* ```
|
|
126
|
+
* @stable
|
|
133
127
|
*/
|
|
134
128
|
export declare class NoAnnotationError extends BaseException {
|
|
135
129
|
constructor(typeOrFunc: any, params: any[][]);
|
|
@@ -147,6 +141,7 @@ export declare class NoAnnotationError extends BaseException {
|
|
|
147
141
|
*
|
|
148
142
|
* expect(() => injector.getAt(100)).toThrowError();
|
|
149
143
|
* ```
|
|
144
|
+
* @stable
|
|
150
145
|
*/
|
|
151
146
|
export declare class OutOfBoundsError extends BaseException {
|
|
152
147
|
constructor(index: any);
|