Skip to content

Commit 155582d

Browse files
committed
fix(bootstrap): Rename bootstrapping methods
BREAKING CHANGE: - import: - angular/angular_dynamic.dart -> angular/application_factory.dart - angular/angular_static.dart -> angular/application_factory_static.dart - functions: - dynamictApplication() -> applicationFactory() - staticApplication() -> staticApplicationFactory()
1 parent 8b06e67 commit 155582d

21 files changed

+104
-97
lines changed

example/web/animation.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
library animation;
22

33
import 'package:angular/angular.dart';
4-
import 'package:angular/angular_dynamic.dart';
4+
import 'package:angular/application_factory.dart';
55
import 'package:angular/animate/module.dart';
66

77
part 'animation/repeat_demo.dart';
@@ -28,7 +28,7 @@ class AnimationDemoModule extends Module {
2828
}
2929
}
3030
main() {
31-
dynamicApplication()
31+
applicationFactory()
3232
.addModule(new AnimationDemoModule())
3333
.run();
3434
}

example/web/bouncing_balls.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import 'package:angular/angular.dart';
2-
import 'package:angular/angular_dynamic.dart';
2+
import 'package:angular/application_factory.dart';
33
import 'dart:html';
44
import 'dart:math';
55
import 'dart:core';
@@ -131,5 +131,5 @@ class MyModule extends Module {
131131
}
132132

133133
main() {
134-
dynamicApplication().addModule(new MyModule()).run();
134+
applicationFactory().addModule(new MyModule()).run();
135135
}

example/web/hello_world.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import 'package:angular/angular.dart';
2-
import 'package:angular/angular_dynamic.dart';
2+
import 'package:angular/application_factory.dart';
33

44
@NgController(
55
selector: '[hello-world-controller]',
@@ -9,7 +9,7 @@ class HelloWorldController {
99
}
1010

1111
main() {
12-
dynamicApplication()
12+
applicationFactory()
1313
.addModule(new Module()..type(HelloWorldController))
1414
.run();
1515
}

example/web/todo.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ library todo;
33
import 'dart:html';
44

55
import 'package:angular/angular.dart';
6-
import 'package:angular/angular_dynamic.dart';
6+
import 'package:angular/application_factory.dart';
77
import 'package:angular/playback/playback_http.dart';
88

99
class Item {
@@ -119,5 +119,5 @@ main() {
119119
module.type(HttpBackend, implementedBy: PlaybackHttpBackend);
120120
}
121121

122-
dynamicApplication().addModule(module).run();
122+
applicationFactory().addModule(module).run();
123123
}

lib/angular.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
library angular;
22

33

4-
export 'package:angular/bootstrap.dart';
4+
export 'package:angular/application.dart';
55
export 'package:angular/core/module.dart';
66
export 'package:angular/directive/module.dart';
77
export 'package:angular/core/annotation.dart';

lib/bootstrap.dart renamed to lib/application.dart

Lines changed: 37 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
/**
2-
* Bootstrapping for Angular applications via [app:dynamic](#angular-app-dynamic) for development,
3-
* or [app:static](#angular-app-static) for production.
2+
* Bootstrapping for Angular applications via [app:factory](#angular-app-factory) for development,
3+
* or [app:factory:static](#angular-app-factory-static) for production.
44
*
55
* In your `main()` function, you bootstrap Angular by explicitly defining and adding a module for
6-
* your app:
6+
* your application:
77
*
88
* import 'package:angular/angular.dart';
9-
* import 'package:angular/angular_dynamic.dart';
9+
* import 'package:angular/application_factory.dart';
1010
*
1111
* class MyModule extends Module {
1212
* MyModule() {
@@ -15,25 +15,27 @@
1515
* }
1616
*
1717
* main() {
18-
* dynamicApplication()
18+
* applicationFactory()
1919
* .addModule(new MyModule())
2020
* .run();
2121
* }
2222
*
23-
* In the code above, we use [dynamicApplication](#angular-app-dynamic) to
23+
* In the code above, we use [applicationFactory](#angular-app-factory) to
2424
* take advantage of [dart:mirrors]
2525
* (https://api.dartlang.org/apidocs/channels/stable/dartdoc-viewer/dart-mirrors) during
26-
* development. When you run the app in Dartium, you are using the implementation found under
27-
* [app:dynamic](#angular-app-dynamic). Note also that you must explicitly import both
28-
* `angular.dart` and `angular_dynamic.dart` at the start of your file.
26+
* development. When you run the app in Dartium the [app:factory](#angular-app-factory)
27+
* implementation allows for quick edit-test development cycle.
2928
*
30-
* For production, transformers defined in your `pubspec.yaml` file convert the compiled code to
31-
* use the [app:static](#angular-app-static) implementation when you run `pub build`. Instead of
32-
* relying on mirrors, this automatically generates the getters, setters, annotations, and factories
33-
* needed by Dart for tree shaking in dart2js, ensuring that your final JavaScript code contains
34-
* only what is used by the root Injector that ngApp creates.
29+
* Note that you must explicitly import both `angular.dart` and `application_factory.dart` at
30+
* the start of your file.
3531
*
36-
* Add the transformers rule shown below to your `pubspec.yaml`:
32+
* For production, transformers defined in your `pubspec.yaml` file convert the code to
33+
* use the [app:factory:static](#angular-app-factory-static) when you run `pub build`. Instead of
34+
* relying on mirrors (which disable tree-shaking and thus generate large JS size), the transformers
35+
* generate getters, setters, annotations, and factories needed by Angular. The result is that
36+
* `dart2js` can than enable tree-shaking and produce smaller output.
37+
*
38+
* To enable the transformers add this rule as shown below to your `pubspec.yaml`:
3739
*
3840
* name: angular_dart_example
3941
* version: 0.0.1
@@ -55,12 +57,13 @@
5557
* transformers:
5658
* - angular:
5759
* html_files:
58-
* - lib/_somelibrary/_some_component.html
60+
* - lib/_some_library_/_some_component_.html
5961
*
6062
* If you need a way to build your app without transformers, you can use
61-
* [staticApplication](#angular-app-static@id_staticApplication) directly, instead of
62-
* [dynamicApplication](#angular-app-dynamic@id_dynamicApplication). See the documentation for
63-
* the [app:static](#angular-app-static) library definition for more on this use case.
63+
* [staticApplicationFactory](#angular-app-factory-static@id_staticApplicationFactory) directly,
64+
* instead of [applicationFactory](#angular-app-factory@id_dynamicApplication). See the
65+
* documentation for the [app:factory:static](#angular-app-factory-static) library definition for
66+
* more on this use case.
6467
*/
6568
library angular.app;
6669

@@ -80,8 +83,8 @@ import 'package:angular/introspection_js.dart';
8083

8184
/**
8285
* This is the top level module which describes all Angular components,
83-
* including services, filters and directives. When writing an Angular application,
84-
* AngularModule is automatically included.
86+
* including services, filters and directives. When instantiating an Angular application
87+
* through [applicationFactory](#angular-app-factory), AngularModule is automatically included.
8588
*
8689
* You can use AngularModule explicitly when creating a custom Injector that needs to know
8790
* about Angular services, filters, and directives. When writing tests, this is typically done for
@@ -104,17 +107,19 @@ class AngularModule extends Module {
104107
}
105108

106109
/**
107-
* Application is how you configure and run an Angular application. There are two
110+
* Application represents configuration for your Angular application. There are two
108111
* implementations for this abstract class:
109112
*
110-
* - [app:dynamic](#angular-app-dynamic) for development, which uses transformers to generate the
111-
* getters, setters, annotations, and factories needed by [dart:mirrors](https://api.dartlang.org/apidocs/channels/stable/dartdoc-viewer/dart-mirrors) for tree shaking
112-
* - [app:static](#angular-app-static), for apps that explicitly specify their own getters,
113-
* setters, annotations, and factories and do not rely on transformation or [dart:mirrors]
114-
* (https://api.dartlang.org/apidocs/channels/stable/dartdoc-viewer/dart-mirrors)
115-
*
113+
* - [app:factory](#angular-app-factory) for development. In this mode Angular uses [dart:mirrors]
114+
* (https://api.dartlang.org/apidocs/channels/stable/dartdoc-viewer/dart-mirrors) to
115+
* generate getters, setters, annotations, and factories dynamical at runtime. This mode
116+
* is not ideal for `dart2js` compilation since `dart:mirrors` disable full tree-shaking of the
117+
* resulting codebase.
118+
* - [app:factory:static](#angular-app-factory-static), which is used by transformers to generate
119+
* the getters, setters, annotations, and factorise needed by Angular. Because the code
120+
* is statically generated `dart2js` can than use full tree-shaking to produce minimal output
121+
* size.
116122
*/
117-
118123
abstract class Application {
119124
static _find(String selector, [dom.Element defaultElement]) {
120125
var element = dom.window.document.querySelector(selector);
@@ -125,9 +130,9 @@ abstract class Application {
125130
return element;
126131
}
127132

128-
final zone = new NgZone();
129-
final ngModule = new AngularModule();
130-
final modules = <Module>[];
133+
final NgZone zone = new NgZone();
134+
final AngularModule ngModule = new AngularModule();
135+
final List<Module> modules = <Module>[];
131136
dom.Element element;
132137

133138
dom.Element selector(String selector) => element = _find(selector);

lib/angular_dynamic.dart renamed to lib/application_factory.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22
* Bootstrapping for Angular applications via [dart:mirrors](https://api.dartlang
33
* .org/apidocs/channels/stable/dartdoc-viewer/dart-mirrors) for development.
44
*
5-
* Angular apps that use [dynamicApplication](#angular-app-dynamic@id_dynamicApplication) rely on
5+
* Angular apps that use [applicationFactory](#angular-app-factory@id_dynamicApplication) rely on
66
* dynamic transformation at compile time to generate the getters, setters, annotations, and
77
* factories needed for tree shaking during compilation with `dart2js`. See the [angular:app]
88
* (#angular-app) library for a discussion of how this works.
99
*/
10-
library angular.app.dynamic;
10+
library angular.app.factory;
1111

1212
import 'package:di/dynamic_injector.dart';
1313
import 'package:angular/angular.dart';
@@ -66,4 +66,4 @@ class _DynamicApplication extends Application {
6666
Injector createInjector() => new DynamicInjector(modules: modules);
6767
}
6868

69-
Application dynamicApplication() => new _DynamicApplication();
69+
Application applicationFactory() => new _DynamicApplication();

lib/angular_static.dart renamed to lib/application_factory_static.dart

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
/**
22
* Bootstrapping for Angular applications via code generation, for production.
33
*
4-
* Most angular.dart apps rely on dynamic transformation at compile time to generate the artifacts
4+
* Most angular.dart apps rely on static transformation at compile time to generate the artifacts
55
* needed for tree shaking during compilation with `dart2js`. However,
66
* if your deployment environment makes it impossible for you to use transformers,
7-
* you can call [staticApplication](#angular-app-static@id_staticApplication)
7+
* you can call [staticApplicationFactory](#angular-app-factory-static@id_staticApplicationFactory)
88
* directly in your `main()` function, and explicitly define the getters, setters, annotations, and
99
* factories yourself.
1010
*
1111
* import 'package:angular/angular.dart';
12-
* import 'package:angular/angular_static.dart';
12+
* import 'package:angular/application_factory_static.dart';
1313
*
1414
* class MyModule extends Module {
1515
* MyModule() {
@@ -18,22 +18,22 @@
1818
* }
1919
*
2020
* main() {
21-
* staticApplication()
21+
* staticApplicationFactory()
2222
* .addModule(new MyModule())
2323
* .run();
2424
* }
2525
*
2626
* Note that you must explicitly import both
27-
* `angular.dart` and `angular_static.dart` at the start of your file. See [staticApplication]
28-
* (#angular-app-static@id_staticApplication) for more on explicit definitions required with this
27+
* `angular.dart` and `application_factory_static.dart` at the start of your file. See [staticApplicationFactory]
28+
* (#angular-app-factory-static@id_staticApplicationFactory) for more on explicit definitions required with this
2929
* library.
3030
*
3131
*/
32-
library angular.app.static;
32+
library angular.app.factory.static;
3333

3434
import 'package:di/static_injector.dart';
3535
import 'package:di/di.dart' show TypeFactory, Injector;
36-
import 'package:angular/bootstrap.dart';
36+
import 'package:angular/application.dart';
3737
import 'package:angular/core/registry.dart';
3838
import 'package:angular/core/parser/parser.dart';
3939
import 'package:angular/core/parser/parser_static.dart';
@@ -42,8 +42,9 @@ import 'package:angular/core/registry_static.dart';
4242
import 'package:angular/change_detection/change_detection.dart';
4343
import 'package:angular/change_detection/dirty_checking_change_detector_static.dart';
4444

45-
export 'package:angular/core/parser/parser_static.dart' show
46-
StaticClosureMap;
45+
export 'package:angular/change_detection/change_detection.dart' show
46+
FieldGetter,
47+
FieldSetter;
4748

4849
class _StaticApplication extends Application {
4950
final Map<Type, TypeFactory> typeFactories;
@@ -64,7 +65,7 @@ class _StaticApplication extends Application {
6465
new StaticInjector(modules: modules, typeFactories: typeFactories);
6566
}
6667

67-
Application staticApplication(
68+
Application staticApplicationFactory(
6869
Map<Type, TypeFactory> typeFactories,
6970
Map<Type, Object> metadata,
7071
Map<String, FieldGetter> fieldGetters,

lib/mock/test_injection.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
library angular.mock.test_injection;
22

3-
import 'package:angular/angular_dynamic.dart';
3+
import 'package:angular/application_factory.dart';
44
import 'package:angular/mock/module.dart';
55
import 'package:di/di.dart';
66
import 'package:di/dynamic_injector.dart';
@@ -133,7 +133,7 @@ void setUpInjector() {
133133
_currentSpecInjector = new _SpecInjector();
134134
_currentSpecInjector.module((Module m) {
135135
m
136-
..install(dynamicApplication().ngModule)
136+
..install(applicationFactory().ngModule)
137137
..install(new AngularMockModule());
138138
});
139139
}

lib/routing/module.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ import 'dart:async';
154154
import 'dart:html';
155155
156156
import 'package:di/di.dart';
157-
import 'package:angular/bootstrap.dart';
157+
import 'package:angular/application.dart';
158158
import 'package:angular/core/annotation_src.dart';
159159
import 'package:angular/core/module_internal.dart';
160160
import 'package:angular/core_dom/module_internal.dart';

lib/tools/transformer/static_angular_generator.dart

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ class StaticAngularGenerator extends Transformer with ResolverTransformer {
2222
var asset = transform.primaryInput;
2323

2424
var dynamicApp =
25-
resolver.getLibraryFunction('angular.app.dynamic.dynamicApplication');
25+
resolver.getLibraryFunction('angular.app.factory.applicationFactory');
2626
if (dynamicApp == null) {
2727
// No dynamic app imports, exit.
2828
transform.addOutput(transform.primaryInput);
@@ -36,10 +36,10 @@ class StaticAngularGenerator extends Transformer with ResolverTransformer {
3636

3737
for (var directive in unit.directives) {
3838
if (directive is ImportDirective &&
39-
directive.uri.stringValue == 'package:angular/angular_dynamic.dart') {
39+
directive.uri.stringValue == 'package:angular/application_factory.dart') {
4040
var uri = directive.uri;
4141
transaction.edit(uri.beginToken.offset, uri.end,
42-
'\'package:angular/angular_static.dart\'');
42+
'\'package:angular/application_factory_static.dart\'');
4343
}
4444
}
4545

@@ -81,7 +81,7 @@ class _NgDynamicToStaticVisitor extends GeneralizingAstVisitor {
8181
visitMethodInvocation(MethodInvocation m) {
8282
if (m.methodName.bestElement == ngDynamicFn) {
8383
transaction.edit(m.methodName.beginToken.offset,
84-
m.methodName.endToken.end, 'staticApplication');
84+
m.methodName.endToken.end, 'staticApplicationFactory');
8585

8686
var args = m.argumentList;
8787
transaction.edit(args.beginToken.offset + 1, args.end - 1,

scripts/generate-documentation.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@ cat README-orig.md | sed "1s/^AngularDart.*/AngularDart/" > README.md
2424
angular/routing/module.dart \
2525
angular/mock/module.dart \
2626
angular/perf/module.dart \
27-
angular/angular_dynamic.dart \
28-
angular/angular_static.dart \
29-
angular/bootstrap.dart \
27+
angular/application_factory.dart \
28+
angular/application_factory_static.dart \
29+
angular/application.dart \
3030
angular/introspection.dart \
3131
di/di.dart \
3232
route_hierarchical/client.dart \

test/_specs.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ export 'package:mock/mock.dart';
1414
export 'package:di/di.dart';
1515
export 'package:di/dynamic_injector.dart';
1616
export 'package:angular/angular.dart';
17-
export 'package:angular/bootstrap.dart';
17+
export 'package:angular/application.dart';
1818
export 'package:angular/introspection.dart';
1919
export 'package:angular/core/annotation.dart';
2020
export 'package:angular/core/registry.dart';

0 commit comments

Comments
 (0)