Skip to content

Commit 95bb72d

Browse files
devversionmhevery
authored andcommitted
build: serve benchmark tree examples with bazel (angular#28568)
PR Close angular#28568
1 parent ce6e6c3 commit 95bb72d

30 files changed

Lines changed: 376 additions & 179 deletions

modules/benchmarks/BUILD.bazel

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
package(default_visibility = ["//visibility:public"])
22

3+
exports_files([
4+
"tsconfig-build.json",
5+
"start-server.js",
6+
])
7+
38
filegroup(
49
name = "favicon",
510
srcs = [
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
load("//tools:defaults.bzl", "ts_library")
2+
load("@build_bazel_rules_typescript//:defs.bzl", "ts_devserver")
3+
4+
package(default_visibility = ["//modules/benchmarks:__subpackages__"])
5+
6+
ts_library(
7+
name = "baseline",
8+
srcs = glob(["*.ts"]),
9+
tsconfig = "//modules/benchmarks:tsconfig-build.json",
10+
deps = [
11+
"//modules/benchmarks/src:util_lib",
12+
"//modules/benchmarks/src/tree:util_lib",
13+
],
14+
)
15+
16+
ts_devserver(
17+
name = "devserver",
18+
entry_module = "angular/modules/benchmarks/src/tree/baseline/index",
19+
index_html = "index.html",
20+
port = 4200,
21+
deps = [":baseline"],
22+
)

modules/benchmarks/src/tree/baseline/index.html

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
<!doctype html>
22
<html>
3+
<head>
4+
<!-- Prevent the browser from requesting any favicon. -->
5+
<link rel="icon" href="data:,">
6+
</head>
37
<body>
48

59
<h2>Params</h2>
@@ -21,11 +25,5 @@ <h2>Baseline Tree Benchmark</h2>
2125
<div>
2226
<tree id="root">Loading...</tree>
2327
</div>
24-
25-
<script>
26-
var mainUrl = window.location.search.split(/[?&]main=([^&]+)/)[1]
27-
|| '../../bootstrap_plain.js';
28-
document.write('<script src="' + mainUrl + '">\u003c/script>');
29-
</script>
3028
</body>
31-
</html>
29+
</html>
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
load("//tools:defaults.bzl", "ts_library")
2+
load("@build_bazel_rules_typescript//:defs.bzl", "ts_devserver")
3+
4+
package(default_visibility = ["//modules/benchmarks:__subpackages__"])
5+
6+
ts_library(
7+
name = "incremental_dom",
8+
srcs = glob(["*.ts"]),
9+
tsconfig = "//modules/benchmarks:tsconfig-build.json",
10+
deps = [
11+
"//modules/benchmarks/src:util_lib",
12+
"//modules/benchmarks/src/tree:util_lib",
13+
"@ngdeps//@types/node",
14+
],
15+
)
16+
17+
ts_devserver(
18+
name = "devserver",
19+
entry_module = "angular/modules/benchmarks/src/tree/incremental_dom/index",
20+
index_html = "index.html",
21+
port = 4200,
22+
static_files = [
23+
"@ngdeps//node_modules/incremental-dom:dist/incremental-dom.js",
24+
],
25+
deps = [":incremental_dom"],
26+
)

modules/benchmarks/src/tree/incremental_dom/index.html

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
<!doctype html>
22
<html>
3+
<head>
4+
<!-- Prevent the browser from requesting any favicon. -->
5+
<link rel="icon" href="data:,">
6+
</head>
37
<body>
48

59
<h2>Params</h2>
@@ -21,7 +25,5 @@ <h2>Incremental-Dom Tree Benchmark</h2>
2125
<div>
2226
<tree id="root"></tree>
2327
</div>
24-
25-
<script src="../../bootstrap_plain.js"></script>
2628
</body>
27-
</html>
29+
</html>

modules/benchmarks/src/tree/incremental_dom/index.ts

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -9,26 +9,27 @@
99
import {bindAction, profile} from '../../util';
1010
import {buildTree, emptyTree} from '../util';
1111
import {TreeComponent} from './tree';
12-
const {patch} = require('incremental-dom');
1312

14-
export function main() {
15-
let tree: TreeComponent;
13+
let tree: TreeComponent;
1614

17-
function destroyDom() { tree.data = emptyTree; }
18-
19-
function createDom() { tree.data = buildTree(); }
15+
function destroyDom() {
16+
tree.data = emptyTree;
17+
}
2018

21-
function noop() {}
19+
function createDom() {
20+
tree.data = buildTree();
21+
}
2222

23-
function init() {
24-
tree = new TreeComponent(document.querySelector('tree'));
23+
function noop() {}
2524

26-
bindAction('#destroyDom', destroyDom);
27-
bindAction('#createDom', createDom);
25+
function init() {
26+
tree = new TreeComponent(document.querySelector('tree'));
2827

29-
bindAction('#updateDomProfile', profile(createDom, noop, 'update'));
30-
bindAction('#createDomProfile', profile(createDom, destroyDom, 'create'));
31-
}
28+
bindAction('#destroyDom', destroyDom);
29+
bindAction('#createDom', createDom);
3230

33-
init();
31+
bindAction('#updateDomProfile', profile(createDom, noop, 'update'));
32+
bindAction('#createDomProfile', profile(createDom, destroyDom, 'create'));
3433
}
34+
35+
init();

modules/benchmarks/src/tree/incremental_dom/tree.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,12 @@
77
*/
88

99
import {TreeNode} from '../util';
10+
11+
// We load "IncrementalDOM" as a AMD global because the "incremental-dom" NPM package does not
12+
// come with a named UMD module, and it's easier to just import the AMD file and use it globally.
13+
declare const IncrementalDOM: any;
1014
const {patch, elementOpen, elementClose, elementOpenStart, elementOpenEnd, text, attr} =
11-
require('incremental-dom');
15+
IncrementalDOM;
1216

1317
export class TreeComponent {
1418
constructor(private _rootEl: any) {}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
load("@build_bazel_rules_typescript//:defs.bzl", "ts_devserver")
2+
3+
package(default_visibility = ["//modules/benchmarks:__subpackages__"])
4+
5+
ts_devserver(
6+
name = "devserver",
7+
index_html = "index.html",
8+
port = 4200,
9+
static_files = ["tree.js"],
10+
)

modules/benchmarks/src/tree/iv/index.html

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
<!doctype html>
22
<html>
3+
<head>
4+
<!-- Prevent the browser from requesting any favicon. -->
5+
<link rel="icon" href="data:,">
6+
</head>
37
<body>
48

59
<h2>Params</h2>
@@ -24,7 +28,5 @@ <h2>IV Tree Benchmark</h2>
2428
Change detection runs:<span id="numberOfChecks"></span>
2529
</div>
2630
<div id="root"></div>
27-
28-
<script type="text/javascript" src="tree.js"></script>
2931
</body>
3032
</html>
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
load("//tools:defaults.bzl", "ts_library")
2+
load("@build_bazel_rules_typescript//:defs.bzl", "ts_devserver")
3+
4+
package(default_visibility = ["//modules/benchmarks:__subpackages__"])
5+
6+
ts_library(
7+
name = "ng1",
8+
srcs = glob(["*.ts"]),
9+
tsconfig = "//modules/benchmarks:tsconfig-build.json",
10+
deps = [
11+
"//modules/benchmarks/src:util_lib",
12+
"//modules/benchmarks/src/tree:util_lib",
13+
],
14+
)
15+
16+
ts_devserver(
17+
name = "devserver",
18+
entry_module = "angular/modules/benchmarks/src/tree/ng1/index",
19+
index_html = "index.html",
20+
port = 4200,
21+
static_files = [
22+
"@ngdeps//node_modules/angular:angular.js",
23+
],
24+
deps = [":ng1"],
25+
)

0 commit comments

Comments
 (0)