load(
"@prelude-si//:macros.bzl",
"eslint",
"export_file",
"package_node_modules",
"shellcheck",
"shfmt_check",
"test_suite",
"typescript_check",
"vite_app",
)
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-portal",
)
filegroup(
name = "src",
srcs = glob([
".env",
".eslintrc.cjs",
"index.html",
"postcss.config.js",
"public/**/*",
"src/**/*",
"tailwind.config.cjs",
"tsconfig.json",
"tsconfig.node.json",
"vite.config.ts",
]),
)
prod_deps_srcs = {
"lib/ts-lib": "//lib/ts-lib:src",
"lib/vue-lib": "//lib/vue-lib:src",
}
dev_deps_srcs = {
"lib/eslint-config": "//lib/eslint-config:src",
"lib/tsconfig": "//lib/tsconfig:src",
}
vite_app(
name = "auth-portal",
srcs = [":src"],
prod_deps_srcs = prod_deps_srcs,
dev_deps_srcs = dev_deps_srcs,
pnpm_exec_cmd_override = "vite-ssg",
)
eslint(
name = "check-lint-typescript",
srcs = [":src"] + glob([".eslint*"]),
prod_deps_srcs = prod_deps_srcs,
dev_deps_srcs = dev_deps_srcs,
)
typescript_check(
name = "check-type",
srcs = [":src"],
tsc_bin = "vue-tsc",
prod_deps_srcs = prod_deps_srcs,
dev_deps_srcs = dev_deps_srcs,
)
shell_srcs = glob(["public/install.sh"])
shellcheck(
name = "check-lint-shell",
srcs = shell_srcs,
)
shfmt_check(
name = "check-format-shell",
srcs = shell_srcs,
)
test_suite(
name = "check-lint",
tests = [
":check-lint-typescript",
":check-lint-shell",
],
)
test_suite(
name = "check-format",
tests = [
":check-format-shell",
],
)
#
#
#
# TODO(fnichol): DEAL
#
#
#
pnpm_task_binary(
name = "lint-fix",
command = "lint:fix",
srcs = glob(["src/**/*"]),
path = "app/auth-portal",
deps = [
"//:node_modules",
],
visibility = ["PUBLIC"],
)
pnpm_task_binary(
name = "dev",
command = "dev",
srcs = glob(["src/**/*"]),
path = "app/auth-portal",
deps = [
"//:node_modules",
],
visibility = ["PUBLIC"],
)