https://github.com/angular/angular
Raw File
Tip revision: 35690fdf6d4f41db88645fab0fe2dfd9c6ae98a6 authored by Jessica Janiuk on 19 April 2023, 19:09:49 UTC
release: cut the v15.2.8 release
Tip revision: 35690fd
tools.bzl
"""Provides the rollup and dist file generation macro."""

load("//tools:defaults.bzl", "rollup_bundle")

def zone_rollup_bundle(module_name, entry_point):
    config_file = "//packages/zone.js:rollup.config.js"
    rollup_bundle(
        name = module_name + "-rollup",
        config_file = config_file,
        entry_point = entry_point + ".ts",
        silent = True,
        sourcemap = "false",
        deps = [
            "//packages/zone.js/lib",
            "@npm//@rollup/plugin-commonjs",
            "@npm//@rollup/plugin-node-resolve",
            "@npm//magic-string",
        ],
    )

def copy_dist(module_name, module_format, output_module_name, suffix, umd):
    umd_output = umd
    suffix_output = suffix
    if umd == "umd":
        umd_output = "umd."
    if suffix == "min":
        suffix_output = "min."
    native.genrule(
        name = module_name + "." + suffix_output + "dist",
        srcs = [
            "//packages/zone.js:" + module_name + "-rollup." + suffix_output + module_format,
        ],
        outs = [
            output_module_name + "." + umd_output + suffix_output + "js",
        ],
        visibility = ["//visibility:public"],
        cmd = "cp $< $@",
    )

def generate_rollup_bundle(bundles):
    for b in bundles.items():
        module_name = b[0]
        rollup_config = b[1]
        if rollup_config.get("entrypoint") != None:
            entry_point = rollup_config.get("entrypoint")
            zone_rollup_bundle(
                module_name = module_name + "-es5",
                entry_point = entry_point,
            )
            zone_rollup_bundle(
                module_name = module_name + "-es2015",
                entry_point = entry_point,
            )
        else:
            zone_rollup_bundle(
                module_name = module_name + "-es5",
                entry_point = rollup_config.get("es5"),
            )
            zone_rollup_bundle(
                module_name = module_name + "-es2015",
                entry_point = rollup_config.get("es2015"),
            )

def generate_dist(bundles, output_format, umd):
    module_format = "esm.js"
    if output_format == "es5":
        module_format = "es5umd.js"
    for b in bundles:
        module_name = b[0]
        copy_dist(
            module_name = module_name + "-" + output_format,
            module_format = module_format,
            output_module_name = module_name,
            suffix = "",
            umd = umd,
        )
        copy_dist(
            module_name = module_name + "-" + output_format,
            module_format = module_format,
            output_module_name = module_name,
            suffix = "min.",
            umd = umd,
        )
back to top