angular-cn/tools/utils.bzl
Joey Perrott 0f3831b105 build: create macro for transpiling javascript file to es5 (#36802)
For testing on IE, shims must be served in es5.  Because the shims
served in these tests come from node_modules and are not part of
the angular/angular source code, they must be transpiled to es5 if
they are published as es6. This macro allows for a uniform method
for running this transpilation during the build process.

PR Close #36802
2020-05-04 12:43:50 -07:00

48 lines
1.2 KiB
Python

"""Simple utility bazel macros for convenience usage."""
load("@npm//typescript:index.bzl", "tsc")
def transpile_js_to_es5(name, js_file):
"""Transpiles a provided javascript target to es5.
For testing on IE, shims must be served in es5, this macro can be used to
transpile es2015 JS shims to es5 for usage in IE testing.
Example usage:
transpile_js_to_es5(
name = "my-file",
js_file = "@npm//some_package/shim_files/es6_shim_file.js",
)
filegroup(
name = "some_shims_for_tests",
testonly = True,
srcs = [
":my-file",
...
]
)
"""
tsc(
name = name,
outs = [
"%s.js" % name,
],
args = [
# Allow JS files to be used for transpiling
"--allowJs",
# Skip lib check as pure local javascript transpiling should be done
"--skipLibCheck",
# Transpile to ES5
"--target ES5",
# Output the transpiled file to the location provided by the name
"--outFile $(execpath :%s.js)" % name,
# Transpile the provided js_file
"$(execpath %s)" % js_file,
],
data = [
js_file,
],
)