anki/ts/lib/BUILD.bazel
Damien Elmes 9440898e60 add naturalWholeUnit() and basic tests to lib/time.ts
naturalWholeUnit() is not currently used
2021-04-12 14:42:06 +10:00

107 lines
2.0 KiB
Python

load("@npm//@bazel/typescript:index.bzl", "ts_library")
load("//ts:prettier.bzl", "prettier_test")
load("//ts:eslint.bzl", "eslint_test")
load("//ts:protobuf.bzl", "protobufjs_library")
load("@npm//jest-cli:index.bzl", "jest_test")
# Protobuf
#############
protobufjs_library(
name = "backend_proto",
proto = "//rslib:backend_proto_lib",
visibility = ["//visibility:public"],
)
# Translations
################
load("@rules_python//python:defs.bzl", "py_binary")
load("@py_deps//:requirements.bzl", "requirement")
py_binary(
name = "genfluent",
srcs = [
"genfluent.py",
],
deps = [
requirement("black"),
requirement("stringcase"),
],
)
genrule(
name = "fluent_gen",
outs = ["i18n.ts"],
cmd = "$(location genfluent) $(location //rslib/i18n:strings.json) $@",
tools = [
"genfluent",
"//rslib/i18n:strings.json",
],
)
# Anki Library
################
ts_library(
name = "lib",
srcs = glob(
["**/*.ts"],
exclude = ["*.test.ts"],
) + [":i18n.ts"],
data = [
"backend_proto",
],
module_name = "anki",
tsconfig = "//:tsconfig.json",
visibility = ["//visibility:public"],
deps = [
"backend_proto",
"@npm//@fluent/bundle",
"@npm//@types/long",
"@npm//intl-pluralrules",
"@npm//tslib",
],
)
# Tests
################
prettier_test(
name = "format_check",
srcs = glob(["*.ts"]),
)
eslint_test(
name = "eslint",
srcs = glob(["*.ts"]),
)
ts_library(
name = "test_lib",
srcs = glob(["*.test.ts"]),
tsconfig = "//ts:tsconfig.json",
deps = [
":lib",
"@npm//@types/jest",
],
)
jest_test(
name = "test",
args = [
"--no-cache",
"--no-watchman",
"--ci",
"--colors",
"--config",
"$(location //ts:jest.config.js)",
],
data = [
":test_lib",
"//ts:jest.config.js",
"//ts:package.json",
"@npm//protobufjs",
],
)