load("@build_bazel_rules_nodejs//:index.bzl", "nodejs_binary")
load("@npm//@bazel/rollup:index.bzl", "rollup_bundle")
load("@npm//@bazel/concatjs:index.bzl", "ts_library")

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

# TODO: Would be nice to use `ts_project` from @bazel/typescript instead.
# We would prefer to not depend on @bazel/concatjs ...
ts_library(
    name = "preprocessor",
    srcs = glob(["*.ts"]),
    tsconfig = "tsconfig.json",
    deps = [
        "//tools/node_tools/utils",
        "@tools_npm//:node_modules",
    ],
)

#rollup_bundle - workaround for https://github.com/bazelbuild/rules_nodejs/issues/1522
rollup_bundle(
    name = "preprocessor-bundle",
    config_file = "rollup.config.js",
    entry_point = "preprocessor.ts",
    format = "cjs",
    rollup_bin = "//tools/node_tools:rollup-bin",
    silent = True,
    deps = [
        ":preprocessor",
        "@tools_npm//rollup-plugin-node-resolve",
    ],
)

rollup_bundle(
    name = "links-updater-bundle",
    config_file = "rollup.config.js",
    entry_point = "links-updater.ts",
    format = "cjs",
    rollup_bin = "//tools/node_tools:rollup-bin",
    silent = True,
    deps = [
        ":preprocessor",
        "@tools_npm//rollup-plugin-node-resolve",
    ],
)

nodejs_binary(
    name = "preprocessor-bin",
    data = ["@tools_npm//:node_modules"],
    entry_point = "preprocessor-bundle.js",
)

nodejs_binary(
    name = "links-updater-bin",
    data = ["@tools_npm//:node_modules"],
    entry_point = "links-updater-bundle.js",
)

# TODO(dmfilippov): Find a better way to fix it (another workaround or submit a bug to
# Bazel IJ plugin's) authors or to a ts_config rule author).
# The following genrule is a workaround for a bazel intellij plugin's bug.
# According to the documentation, the ts_config_rules section should be added
# to a .bazelproject file if a project uses typescript
# (https://ij.bazel.build/docs/dynamic-languages-typescript.html)
# Unfortunately, this doesn't work. It seems, that the plugin expects some output from
# the ts_config rule, but the rule doesn't produce any output.
# To workaround the issue, the tsconfig_editor genrule was added. The genrule only copies
# input file to the output file, but this is enough to make bazel IJ plugins works.
# So, if you have any problem a typescript editor (import errors, types not found, etc...) -
# try to build this rule from the command line
# (bazel build tools/node_tools/node_modules/licenses:tsconfig_editor) and then sync bazel project
# in intellij.
genrule(
    name = "tsconfig_editor",
    srcs = ["tsconfig.json"],
    outs = ["tsconfig_editor.json"],
    cmd = "cp $< $@",
)
