-
Notifications
You must be signed in to change notification settings - Fork 145
/
j2cl_js_common.bzl
81 lines (66 loc) · 2.01 KB
/
j2cl_js_common.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
"""This module contains j2cl_js_provider helpers."""
load(
"@io_bazel_rules_closure//closure:defs.bzl",
"CLOSURE_JS_TOOLCHAIN_ATTRS",
"closure_js_binary",
"closure_js_library",
"create_closure_js_library",
"web_library",
)
def j2cl_js_provider(ctx, srcs = [], deps = [], exports = []):
""" Creates a js provider from provided sources, deps and exports. """
default_j2cl_suppresses = [
"analyzerChecks",
"JSC_UNKNOWN_EXPR_TYPE",
"JSC_STRICT_INEXISTENT_PROPERTY",
]
suppresses = default_j2cl_suppresses + getattr(ctx.attr, "js_suppress", [])
js = create_closure_js_library(
ctx,
srcs,
deps,
exports,
suppresses,
convention = "GOOGLE",
)
return {
"closure_js_library": js.closure_js_library,
"exports": js.exports,
}
def js_devserver(
name,
entry_point_defs,
deps,
dev_resources):
"""Creates a development server target."""
closure_js_binary(
name = name,
compilation_level = "BUNDLE",
defs = entry_point_defs,
deps = deps,
# For J2CL it is in impractical to embed all source into sourcemap since
# it bloats sourcemaps as well as it slows down bundling.
nodefs = ["--source_map_include_content"],
)
web_library(
name = "%s_server" % name,
srcs = dev_resources,
path = "/",
tags = [
"ibazel_live_reload", # Enable ibazel reload server.
"ibazel_notify_changes", # Do not to restart the server on changes.
],
)
def simple_js_lib(**kwargs):
closure_js_library(no_closure_library = True, **kwargs)
js_binary = closure_js_binary
J2CL_JS_TOOLCHAIN_ATTRS = CLOSURE_JS_TOOLCHAIN_ATTRS
J2CL_JS_ATTRS = {
"js_suppress": attr.string_list(),
}
JS_PROVIDER_NAME = "closure_js_library"
J2CL_OPTIMIZED_DEFS = [
"--define=goog.DEBUG=false",
]
# Place holder until we implement unut testing support for open-source.
J2CL_TEST_DEFS = []