load("@rbs//nodejs/rules.rbs", "nodejs_binary", "nodejs_library")
load("@rbs//oci/rules.rbs", "oci_image")
load("@rbs//nodejs/lint.rbs", "nodejs_lint")
nodejs_library(
name = "utils",
srcs = ["src/utils/math.ts", "src/utils/string.ts"],
deps = [":lodash_repo", ":types_lodash_repo"],
ts_compiler_options = {"target": "ES2020", "strict": True, "declaration": True},
)
nodejs_binary(
name = "server",
srcs = ["src/server.ts"],
main = "src/server.ts",
deps = [":utils", ":express_repo", ":types_express_repo", ":types_node_repo", ":typescript_repo"],
env = {"NODE_ENV": "development", "PORT": "4000"},
ts_compiler_options = {"target": "ES2020", "module": "commonjs", "strict": True, "esModuleInterop": True},
)
oci_image(
name = "server_image",
binary = ":server",
base = "ubuntu:22.04",
env = {"NODE_ENV": "production", "PORT": "8080"},
ports = ["8080/tcp"],
tag = "ts-server:latest",
)
nodejs_lint(
name = "lint",
srcs = glob(["src/**/*.ts"]),
linters = ["prettier"],
)