Revision b60c9c18f11bb8cba5f6f263b64edc25fda15558 authored by Andrew Scott on 27 May 2021, 17:57:24 UTC, committed by Andrew Kushnir on 27 May 2021, 21:08:51 UTC
1 parent a261489
Raw File
utils.bzl
"""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,
        ],
    )
back to top