# Protobuf JS runtime
#
# See also code generation logic under generator/

load("@rules_pkg//:mappings.bzl", "pkg_attributes", "pkg_files", "strip_prefix")
load("@rules_pkg//:pkg.bzl", "pkg_tar", "pkg_zip")
load("//:protobuf_javascript_release.bzl", "package_naming")

config_setting(
    name = "x64_x86_windows",
    values = {"cpu": "x64_x86_windows"},
)

config_setting(
    name = "x64_windows",
    values = {"cpu": "x64_windows"},
)

config_setting(
    name = "k8",
    values = {"cpu": "k8"},
)

package_naming(
    name = "protobuf_javascript_pkg_naming",
    platform = select({
        ":k8": "linux-x86_64", # currently the only supported build type in Github Actions
        ":x64_x86_windows": "win32",
        ":x64_windows": "win64",
        "//conditions:default": "" # continues with current behavior when no --cpu is specified allowing existing internal builds to function
    })
)

pkg_files(
    name = "plugin_files",
    srcs = ["//generator:protoc-gen-js"],
    attributes = pkg_attributes(mode = "0555"),
    prefix = "bin/",
)

pkg_files(
    name = "dist_files",
    srcs = glob([
        "google/protobuf/*.js",
        "google/protobuf/compiler/*.js"
    ]) + [
        "google-protobuf.js",
        "package.json",
        "README.md",
        "LICENSE.md",
        "LICENSE-asserts.md",
    ],
    strip_prefix = strip_prefix.from_root(""),
)

pkg_tar(
    name = "dist_tar",
    srcs = [
        ":dist_files",
        ":plugin_files",
    ],
    extension = "tar.gz",
    package_file_name = "protobuf-javascript-{version}-{platform}.tar.gz",
    package_variables = ":protobuf_javascript_pkg_naming",
)

pkg_zip(
    name = "dist_zip",
    srcs = [
        ":dist_files",
        ":plugin_files",
    ],
    package_file_name = "protobuf-javascript-{version}-{platform}.zip",
    package_variables = ":protobuf_javascript_pkg_naming",
)

filegroup(
    name = "dist_all",
    srcs = [
        ":dist_tar",
        ":dist_zip",
    ]
)
