forked from angular/angular
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtools.bzl
86 lines (81 loc) · 2.81 KB
/
tools.bzl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
"""Provides the rollup and dist file generation macro."""
load("//tools:defaults.bzl", "rollup_bundle")
def zone_rollup_bundle(module_name, entry_point, rollup_config):
config_file = "//packages/zone.js:rollup.config.js"
rollup_bundle(
name = module_name + "-rollup",
config_file = config_file,
entry_point = entry_point + ".ts",
silent = True,
sourcemap = "false",
deps = [
"//packages/zone.js/lib",
"@npm//@rollup/plugin-commonjs",
"@npm//@rollup/plugin-node-resolve",
],
)
def copy_dist(module_name, module_format, output_module_name, suffix, umd):
umd_output = umd
suffix_output = suffix
if umd == "umd":
umd_output = "umd."
if suffix == "min":
suffix_output = "min."
native.genrule(
name = module_name + "." + suffix_output + "dist",
srcs = [
"//packages/zone.js:" + module_name + "-rollup." + suffix_output + module_format,
],
outs = [
output_module_name + "." + umd_output + suffix_output + "js",
],
visibility = ["//visibility:public"],
cmd = "cp $< $@",
)
def generate_rollup_bundle(bundles):
for b in bundles.items():
module_name = b[0]
rollup_config = b[1]
if rollup_config.get("entrypoint") != None:
entry_point = rollup_config.get("entrypoint")
zone_rollup_bundle(
module_name = module_name + "-es5",
rollup_config = rollup_config,
entry_point = entry_point,
)
zone_rollup_bundle(
module_name = module_name + "-es2015",
rollup_config = rollup_config,
entry_point = entry_point,
)
else:
zone_rollup_bundle(
module_name = module_name + "-es5",
rollup_config = rollup_config,
entry_point = rollup_config.get("es5"),
)
zone_rollup_bundle(
module_name = module_name + "-es2015",
rollup_config = rollup_config,
entry_point = rollup_config.get("es2015"),
)
def generate_dist(bundles, output_format, umd):
module_format = "esm.js"
if output_format == "es5":
module_format = "es5umd.js"
for b in bundles:
module_name = b[0]
copy_dist(
module_name = module_name + "-" + output_format,
module_format = module_format,
output_module_name = module_name,
suffix = "",
umd = umd,
)
copy_dist(
module_name = module_name + "-" + output_format,
module_format = module_format,
output_module_name = module_name,
suffix = "min.",
umd = umd,
)