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("//ts:jest.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"]), ) jest_test( data = [ "@npm//protobufjs", ], deps = [ ":lib", ], )