load(
"@prelude-si//:macros.bzl",
"eslint",
"export_file",
"package_node_modules",
"typescript_check",
"docker_image",
"npm_bin",
"typescript_dist",
"typescript_runnable_dist",
"typescript_runnable_dist_bin",
)
load(
"@prelude-si//:pnpm.bzl",
"pnpm_task_library",
"pnpm_task_binary",
)
export_file(
name = "package.json",
)
package_node_modules(
name = "node_modules",
package_name = "@si/auth-api",
)
filegroup(
name = "prisma",
srcs = glob([
"prisma/**/*",
]),
)
filegroup(
name = "src",
srcs = glob([
"src/**/*",
"tsconfig-build.json",
"tsconfig.json",
]),
)
filegroup(
name = "test",
srcs = glob([
"test/**/*",
"test/**/.*",
]),
)
prod_deps_srcs = {
"lib/ts-lib": "//lib/ts-lib:src",
}
dev_deps_srcs = {
"lib/eslint-config": "//lib/eslint-config:src",
"lib/tsconfig": "//lib/tsconfig:src",
}
npm_bin(
name = "tsup",
)
eslint(
name = "check-lint",
directories = ["src", "test"],
srcs = [":src", ":test"] + glob([".eslint*"]),
prod_deps_srcs = prod_deps_srcs,
dev_deps_srcs = dev_deps_srcs,
)
# TODO(fnichol): likely prisma needs to be run first to generate the source in `.prisma/client`
# (whereever that lives)
# typescript_check(
# name = "check-type",
# srcs = [":src"],
# prod_deps_srcs = prod_deps_srcs,
# dev_deps_srcs = dev_deps_srcs,
# )
#
#
#
# TODO(fnichol): DEAL
#
#
#
typescript_dist(
name = "dist",
srcs = [":src"],
tsup = ":tsup",
prod_deps_srcs = prod_deps_srcs,
dev_deps_srcs = dev_deps_srcs,
)
typescript_runnable_dist(
name = "auth-api",
)
typescript_runnable_dist_bin(
name = "bin",
typescript_runnable_dist = ":auth-api",
)
# pnpm_task_library(
# name = "build",
# command = "build",
# srcs = glob(["src/**/*", "tsconfig.json"]),
# deps = [
# "//:node_modules",
# ],
# path = "bin/auth-api",
# outs = ["dist"],
# visibility = ["PUBLIC"],
# )
pnpm_task_binary(
name = "lint-fix",
command = "lint:fix",
srcs = glob(["src/**/*"]),
path = "bin/auth-api",
deps = [
"//:node_modules",
],
visibility = ["PUBLIC"],
)
pnpm_task_binary(
name = "dev",
command = "dev",
srcs = glob(["src/**/*"]),
path = "bin/auth-api",
deps = [
"//:node_modules",
],
visibility = ["PUBLIC"],
)
pnpm_task_binary(
name = "db-reset",
command = "db:reset",
srcs = glob(["src/**/*"]),
path = "bin/auth-api",
deps = [
"//:node_modules",
],
visibility = ["PUBLIC"],
)
docker_image(
name = "image",
image_name = "auth-api",
flake_lock = "//:flake.lock",
build_deps = [
"//bin/auth-api:auth-api",
],
# TODO(fnichol): revisit post 2025-02-01
promote_multi_arches = [
"amd64",
],
)