48 lines
1.2 KiB
Python
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,
|
|
],
|
|
)
|