# gazelle:map_kind bzl_library bzl_library @bazel_lib//:bzl_library.bzl
load("@bazel_lib//:bzl_library.bzl", "bzl_library")
load("//nodejs/private:nodejs_toolchains_repo.bzl", "PLATFORMS")
load("//nodejs/private:user_build_settings.bzl", "user_args")

package(default_visibility = ["//visibility:public"])

bzl_library(
    name = "providers",
    srcs = ["providers.bzl"],
    deps = [
        "//nodejs/private/providers:stamp_setting_info",
        "//nodejs/private/providers:user_build_settings",
    ],
)

bzl_library(
    name = "repositories",
    srcs = ["repositories.bzl"],
    deps = [
        "//nodejs/private:node_versions",
        "//nodejs/private:nodejs_repo_host_os_alias",
        "//nodejs/private:nodejs_toolchains_repo",
        "//nodejs/private:os_name",
    ],
)

bzl_library(
    name = "toolchain",
    srcs = ["toolchain.bzl"],
)

bzl_library(
    name = "extensions",
    srcs = ["extensions.bzl"],
    deps = ["repositories"],
)

# This is the target rule authors should put in their "toolchains"
# attribute in order to get a node interpreter for the correct
# platform.
# See https://docs.bazel.build/versions/main/toolchains.html#writing-rules-that-use-toolchains
toolchain_type(name = "toolchain_type")

[
    platform(
        name = key,
        constraint_values = values.compatible_with,
    )
    for key, values in PLATFORMS.items()
]

# Default arguments/flags that are passed to nodejs in all nodejs_binary and
# nodejs_test targets. Can be overwritten by settings
# --@rules_nodejs//nodejs:default_args="--flag1 --flag2"
user_args(
    name = "default_args",
    build_setting_default = "--preserve-symlinks",
)
