angular-cn/tools/utils.bzl

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,
],
)