diff --git a/BUILD.bazel b/BUILD.bazel
index f97f95162..f7c42abad 100644
--- a/BUILD.bazel
+++ b/BUILD.bazel
@@ -22,12 +22,6 @@ genrule(
visibility = ["//visibility:public"],
)
-alias(
- name = "tsconfig.json",
- actual = "//ts:tsconfig.json",
- visibility = ["//visibility:public"],
-)
-
pkg_tar(
name = "dist",
srcs = [
diff --git a/defs.bzl b/defs.bzl
index 6e743ec15..d165051eb 100644
--- a/defs.bzl
+++ b/defs.bzl
@@ -9,7 +9,6 @@ load("@build_bazel_rules_nodejs//:index.bzl", "node_repositories", "yarn_install
load("@io_bazel_rules_sass//:defs.bzl", "sass_repositories")
load("@com_github_ali5h_rules_pip//:defs.bzl", "pip_import")
load("//pip/pyqt5:defs.bzl", "install_pyqt5")
-load("@esbuild_toolchain//:esbuild_repo.bzl", "esbuild_dependencies")
anki_version = "2.1.49"
@@ -53,5 +52,3 @@ def setup_deps():
)
sass_repositories()
-
- esbuild_dependencies()
diff --git a/late_deps.bzl b/late_deps.bzl
index 50d275af5..cee5563f3 100644
--- a/late_deps.bzl
+++ b/late_deps.bzl
@@ -2,7 +2,9 @@
load("@py_deps//:requirements.bzl", "pip_install")
load("@rules_rust//tools/rust_analyzer/raze:crates.bzl", "rules_rust_tools_rust_analyzer_fetch_remote_crates")
+load("@build_bazel_rules_nodejs//toolchains/esbuild:esbuild_repositories.bzl", "esbuild_repositories")
def setup_late_deps():
pip_install()
rules_rust_tools_rust_analyzer_fetch_remote_crates()
+ esbuild_repositories()
diff --git a/qt/aqt/data/web/js/BUILD.bazel b/qt/aqt/data/web/js/BUILD.bazel
index c46de6f84..4b3ca41a7 100644
--- a/qt/aqt/data/web/js/BUILD.bazel
+++ b/qt/aqt/data/web/js/BUILD.bazel
@@ -6,6 +6,7 @@ load("//ts:eslint.bzl", "eslint_test")
ts_library(
name = "pycmd",
srcs = ["pycmd.d.ts"],
+ tsconfig = "tsconfig.json",
visibility = ["//qt/aqt/data/web/js:__subpackages__"],
)
@@ -50,8 +51,8 @@ filegroup(
srcs = [
"aqt_es5",
"editor",
- "reviewer",
"mathjax.js",
+ "reviewer",
"//qt/aqt/data/web/js/vendor",
],
visibility = ["//qt:__subpackages__"],
diff --git a/repos.bzl b/repos.bzl
index 8966f31b4..6489d3cb5 100644
--- a/repos.bzl
+++ b/repos.bzl
@@ -89,21 +89,8 @@ def register_repos():
maybe(
http_archive,
name = "build_bazel_rules_nodejs",
- sha256 = "4a5d654a4ccd4a4c24eca5d319d85a88a650edf119601550c95bf400c8cc897e",
- urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.5.1/rules_nodejs-3.5.1.tar.gz"],
- )
-
- # native.local_repository(
- # name = "esbuild_toolchain",
- # path = "../esbuild_toolchain",
- # )
-
- maybe(
- http_archive,
- name = "esbuild_toolchain",
- sha256 = "7385dfb2acce6517fcfdb16480cf18d1959bafb83d8cddc0c1e95779609f762c",
- urls = ["https://github.com/ankitects/esbuild_toolchain/archive/refs/tags/anki-2021-06-01.tar.gz"],
- strip_prefix = "esbuild_toolchain-anki-2021-06-01",
+ sha256 = "3635797a96c7bfcd0d265dacd722a07335e64d6ded9834af8d3f1b7ba5a25bba",
+ urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/4.3.0/rules_nodejs-4.3.0.tar.gz"],
)
# sass
@@ -117,11 +104,11 @@ def register_repos():
maybe(
http_archive,
name = "io_bazel_rules_sass",
- strip_prefix = "rules_sass-anki-2020-12-23",
+ strip_prefix = "rules_sass-d0cda2205a6e9706ded30f7dd7d30c82b1301fbe",
urls = [
- "https://github.com/ankitects/rules_sass/archive/anki-2020-12-23.tar.gz",
+ "https://github.com/bazelbuild/rules_sass/archive/d0cda2205a6e9706ded30f7dd7d30c82b1301fbe.zip",
],
- sha256 = "224ae14b8d2166b3ab4c5fa9b2ae1828f30620ac628dc152e6c0859c7853bb97",
+ sha256 = "640ad20f878a6656968e35f35343359446db91a773224ddf52ae110f1e48bb20",
)
# translations
diff --git a/ts/.eslintrc.js b/ts/.eslintrc.js
index dd3dc4c4b..8106cbae6 100644
--- a/ts/.eslintrc.js
+++ b/ts/.eslintrc.js
@@ -16,4 +16,5 @@ module.exports = {
],
},
env: { browser: true },
+ ignorePatterns: ["backend_proto.d.ts", "*.svelte.d.ts"],
};
diff --git a/ts/.prettierignore b/ts/.prettierignore
index 3fd69af96..ac995e48b 100644
--- a/ts/.prettierignore
+++ b/ts/.prettierignore
@@ -1,2 +1,4 @@
licenses.json
vendor
+*.svelte.d.ts
+backend_proto.d.ts
diff --git a/ts/BUILD.bazel b/ts/BUILD.bazel
index 3ca8c216b..283d64bbe 100644
--- a/ts/BUILD.bazel
+++ b/ts/BUILD.bazel
@@ -1,30 +1,17 @@
load("//ts:prettier.bzl", "prettier", "prettier_test")
load("//ts:sql_format.bzl", "sql_format_setup")
-load("@npm//@bazel/typescript:index.bzl", "ts_library")
+load("@build_bazel_rules_nodejs//:index.bzl", "copy_to_bin")
prettier()
-prettier_test(
- name = "format_check",
- srcs = glob([
- "*.ts",
- "*.js",
- ]),
-)
+prettier_test()
sql_format_setup()
-ts_library(
- name = "image_module_support",
- srcs = ["images.d.ts"],
- visibility = ["//visibility:public"],
-)
-
# Exported files
#################
exports_files([
- "tsconfig.json",
".prettierrc",
".eslintrc.js",
"licenses.json",
@@ -34,6 +21,14 @@ exports_files([
"protobuf-no-long.js",
])
+# a copy needs to be placed in bazel-bin for libs with
+# generated files
+copy_to_bin(
+ name = "tsconfig_bin",
+ srcs = ["tsconfig.json"],
+ visibility = ["//visibility:public"],
+)
+
alias(
name = "yarn",
actual = "@nodejs//:yarn",
diff --git a/ts/change-notetype/BUILD.bazel b/ts/change-notetype/BUILD.bazel
index 017d5c46e..dbea78a03 100644
--- a/ts/change-notetype/BUILD.bazel
+++ b/ts/change-notetype/BUILD.bazel
@@ -1,9 +1,9 @@
-load("@npm//@bazel/typescript:index.bzl", "ts_library")
load("//ts:prettier.bzl", "prettier_test")
load("//ts:eslint.bzl", "eslint_test")
load("//ts/svelte:svelte.bzl", "compile_svelte", "svelte_check")
load("//ts:esbuild.bzl", "esbuild")
load("//ts:compile_sass.bzl", "compile_sass")
+load("//ts:typescript.bzl", "typescript")
load("//ts:jest.bzl", "jest_test")
compile_sass(
@@ -17,69 +17,44 @@ compile_sass(
],
)
-svelte_files = glob(["*.svelte"])
+compile_svelte()
-svelte_names = [f.replace(".svelte", "") for f in svelte_files]
-
-compile_svelte(
- name = "svelte",
- srcs = svelte_files,
- deps = [
- "//ts/components",
- "//ts/sveltelib",
- "@npm//@types/bootstrap",
- ],
-)
-
-ts_library(
+typescript(
name = "index",
- srcs = ["index.ts"],
- deps = [
- "ChangeNotetypePage",
- "lib",
- "//ts/components",
- "//ts/lib",
- "@npm//svelte2tsx",
- ],
-)
-
-ts_library(
- name = "lib",
- srcs = [
- "lib.ts",
- ],
- module_name = "change-notetype",
+ srcs = glob(["*.ts"]),
deps = [
+ ":svelte",
"//ts/components",
"//ts/lib",
"//ts/sveltelib",
+ "@npm//@fluent",
+ "@npm//@types/jest",
"@npm//lodash-es",
"@npm//svelte",
+ "@npm//svelte2tsx",
],
)
esbuild(
name = "change-notetype",
- args = [
- "--global-name=anki",
- "--resolve-extensions=.mjs,.js",
- "--log-level=warning",
- "--loader:.svg=text",
- ],
+ args = {
+ "globalName": "anki",
+ "loader": {".svg": "text"},
+ },
entry_point = "index.ts",
output_css = "change-notetype.css",
visibility = ["//visibility:public"],
deps = [
- "index",
":base_css",
- "@npm//bootstrap",
- "@npm//marked",
+ ":index",
+ ":svelte",
+ "//ts/components",
"//ts/lib",
"//ts/sveltelib",
- "//ts/components",
- "//ts/components:svelte_components",
+ "@npm//bootstrap",
+ "@npm//marked",
"@npm//protobufjs",
- ] + svelte_names,
+ ],
)
exports_files(["change-notetype.html"])
@@ -87,20 +62,9 @@ exports_files(["change-notetype.html"])
# Tests
################
-prettier_test(
- name = "format_check",
- srcs = glob([
- "*.ts",
- "*.svelte",
- ]),
-)
+prettier_test()
-eslint_test(
- name = "eslint",
- srcs = glob([
- "*.ts",
- ]),
-)
+eslint_test()
svelte_check(
name = "svelte_check",
@@ -120,9 +84,6 @@ svelte_check(
jest_test(
protobuf = True,
deps = [
- ":lib",
- "//ts/lib",
- "@npm//protobufjs",
- "@npm//svelte",
+ ":index",
],
)
diff --git a/ts/change-notetype/ChangeNotetypePage.svelte b/ts/change-notetype/ChangeNotetypePage.svelte
index 09ab80a84..878114145 100644
--- a/ts/change-notetype/ChangeNotetypePage.svelte
+++ b/ts/change-notetype/ChangeNotetypePage.svelte
@@ -3,7 +3,7 @@ Copyright: Ankitects Pty Ltd and contributors
License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
-->
diff --git a/ts/editor/AddonButtons.svelte.d.ts b/ts/editor/AddonButtons.svelte.d.ts
new file mode 120000
index 000000000..481d4ffd2
--- /dev/null
+++ b/ts/editor/AddonButtons.svelte.d.ts
@@ -0,0 +1 @@
+../../bazel-bin/ts/editor/AddonButtons.svelte.d.ts
\ No newline at end of file
diff --git a/ts/editor/AutocompleteItem.svelte b/ts/editor/AutocompleteItem.svelte
index 271447325..8e44b1b2c 100644
--- a/ts/editor/AutocompleteItem.svelte
+++ b/ts/editor/AutocompleteItem.svelte
@@ -4,7 +4,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
-->
diff --git a/ts/editor/NoteTypeButtons.svelte.d.ts b/ts/editor/NoteTypeButtons.svelte.d.ts
new file mode 120000
index 000000000..6e46f0f8e
--- /dev/null
+++ b/ts/editor/NoteTypeButtons.svelte.d.ts
@@ -0,0 +1 @@
+../../bazel-bin/ts/editor/NoteTypeButtons.svelte.d.ts
\ No newline at end of file
diff --git a/ts/editor/OnlyEditable.svelte b/ts/editor/OnlyEditable.svelte
index 25d08beb7..f4d6024e1 100644
--- a/ts/editor/OnlyEditable.svelte
+++ b/ts/editor/OnlyEditable.svelte
@@ -3,7 +3,7 @@ Copyright: Ankitects Pty Ltd and contributors
License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
-->
diff --git a/ts/editor/OnlyEditable.svelte.d.ts b/ts/editor/OnlyEditable.svelte.d.ts
new file mode 120000
index 000000000..40521853e
--- /dev/null
+++ b/ts/editor/OnlyEditable.svelte.d.ts
@@ -0,0 +1 @@
+../../bazel-bin/ts/editor/OnlyEditable.svelte.d.ts
\ No newline at end of file
diff --git a/ts/editor/PreviewButton.svelte b/ts/editor/PreviewButton.svelte
index ee3504817..443802722 100644
--- a/ts/editor/PreviewButton.svelte
+++ b/ts/editor/PreviewButton.svelte
@@ -3,12 +3,12 @@ Copyright: Ankitects Pty Ltd and contributors
License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
-->
diff --git a/ts/editor/PreviewButton.svelte.d.ts b/ts/editor/PreviewButton.svelte.d.ts
new file mode 120000
index 000000000..221fdff22
--- /dev/null
+++ b/ts/editor/PreviewButton.svelte.d.ts
@@ -0,0 +1 @@
+../../bazel-bin/ts/editor/PreviewButton.svelte.d.ts
\ No newline at end of file
diff --git a/ts/editor/SelectedTagBadge.svelte b/ts/editor/SelectedTagBadge.svelte
index cd989cd29..24bdbeb99 100644
--- a/ts/editor/SelectedTagBadge.svelte
+++ b/ts/editor/SelectedTagBadge.svelte
@@ -5,13 +5,13 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
diff --git a/ts/graphs/NoDataOverlay.svelte.d.ts b/ts/graphs/NoDataOverlay.svelte.d.ts
new file mode 120000
index 000000000..ec8464501
--- /dev/null
+++ b/ts/graphs/NoDataOverlay.svelte.d.ts
@@ -0,0 +1 @@
+../../bazel-bin/ts/graphs/NoDataOverlay.svelte.d.ts
\ No newline at end of file
diff --git a/ts/graphs/RangeBox.svelte b/ts/graphs/RangeBox.svelte
index 934fe0a44..b4285beb5 100644
--- a/ts/graphs/RangeBox.svelte
+++ b/ts/graphs/RangeBox.svelte
@@ -7,7 +7,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
import InputBox from "./InputBox.svelte";
- import * as tr from "lib/i18n";
+ import * as tr from "../lib/i18n";
import { RevlogRange, daysToRevlogRange } from "./graph-helpers";
enum SearchRange {
diff --git a/ts/graphs/RangeBox.svelte.d.ts b/ts/graphs/RangeBox.svelte.d.ts
new file mode 120000
index 000000000..ec95a1a6b
--- /dev/null
+++ b/ts/graphs/RangeBox.svelte.d.ts
@@ -0,0 +1 @@
+../../bazel-bin/ts/graphs/RangeBox.svelte.d.ts
\ No newline at end of file
diff --git a/ts/graphs/ReviewsGraph.svelte b/ts/graphs/ReviewsGraph.svelte
index 8d64fbec5..7c024e23f 100644
--- a/ts/graphs/ReviewsGraph.svelte
+++ b/ts/graphs/ReviewsGraph.svelte
@@ -3,7 +3,7 @@ Copyright: Ankitects Pty Ltd and contributors
License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
-->
diff --git a/ts/graphs/TableData.svelte.d.ts b/ts/graphs/TableData.svelte.d.ts
new file mode 120000
index 000000000..656f78a87
--- /dev/null
+++ b/ts/graphs/TableData.svelte.d.ts
@@ -0,0 +1 @@
+../../bazel-bin/ts/graphs/TableData.svelte.d.ts
\ No newline at end of file
diff --git a/ts/graphs/TodayStats.svelte b/ts/graphs/TodayStats.svelte
index 44c7a6f36..79798e34e 100644
--- a/ts/graphs/TodayStats.svelte
+++ b/ts/graphs/TodayStats.svelte
@@ -3,7 +3,7 @@ Copyright: Ankitects Pty Ltd and contributors
License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
-->