declare bootstrap prereq in Svelte compile

Mistakenly stripped this out when removing the typescript dependencies
This commit is contained in:
Damien Elmes 2021-10-13 11:48:22 +10:00
parent a4db8c5c75
commit 7128de895f
3 changed files with 25 additions and 4 deletions

View file

@ -3,7 +3,9 @@ load("//ts:prettier.bzl", "prettier_test")
load("//ts:eslint.bzl", "eslint_test") load("//ts:eslint.bzl", "eslint_test")
load("//ts:typescript.bzl", "typescript") load("//ts:typescript.bzl", "typescript")
compile_svelte() compile_svelte(
deps = ["//sass/bootstrap"],
)
typescript( typescript(
name = "components", name = "components",

View file

@ -18,7 +18,11 @@ compile_sass(
], ],
) )
compile_svelte() compile_svelte(
deps = [
"//sass/bootstrap",
],
)
typescript( typescript(
name = "index", name = "index",

View file

@ -3,6 +3,17 @@ load("@build_bazel_rules_nodejs//:providers.bzl", "DeclarationInfo", "declaratio
load("@io_bazel_rules_sass//:defs.bzl", "SassInfo") load("@io_bazel_rules_sass//:defs.bzl", "SassInfo")
load("@build_bazel_rules_nodejs//:index.bzl", "js_library") load("@build_bazel_rules_nodejs//:index.bzl", "js_library")
def _get_dep_sources(dep):
if SassInfo in dep:
return dep[SassInfo].transitive_sources
elif DeclarationInfo in dep:
return dep[DeclarationInfo].transitive_declarations
else:
return []
def _get_sources(deps):
return depset([], transitive = [_get_dep_sources(dep) for dep in deps])
def _svelte(ctx): def _svelte(ctx):
args = ctx.actions.args() args = ctx.actions.args()
args.use_param_file("@%s", use_always = True) args.use_param_file("@%s", use_always = True)
@ -16,11 +27,13 @@ def _svelte(ctx):
args.add(ctx.var["GENDIR"]) args.add(ctx.var["GENDIR"])
args.add_all(ctx.files._shims) args.add_all(ctx.files._shims)
deps = _get_sources(ctx.attr.deps).to_list()
ctx.actions.run( ctx.actions.run(
execution_requirements = {"supports-workers": "1"}, execution_requirements = {"supports-workers": "1"},
executable = ctx.executable._svelte_bin, executable = ctx.executable._svelte_bin,
outputs = [ctx.outputs.mjs, ctx.outputs.dts, ctx.outputs.css], outputs = [ctx.outputs.mjs, ctx.outputs.dts, ctx.outputs.css],
inputs = [ctx.file.entry_point] + ctx.files._shims, inputs = [ctx.file.entry_point] + deps + ctx.files._shims,
mnemonic = "Svelte", mnemonic = "Svelte",
arguments = [args], arguments = [args],
) )
@ -33,6 +46,7 @@ svelte = rule(
implementation = _svelte, implementation = _svelte,
attrs = { attrs = {
"entry_point": attr.label(allow_single_file = True), "entry_point": attr.label(allow_single_file = True),
"deps": attr.label_list(),
"_svelte_bin": attr.label( "_svelte_bin": attr.label(
default = Label("//ts/svelte:svelte_bin"), default = Label("//ts/svelte:svelte_bin"),
executable = True, executable = True,
@ -50,13 +64,14 @@ svelte = rule(
}, },
) )
def compile_svelte(name = "svelte", srcs = None, visibility = ["//visibility:private"]): def compile_svelte(name = "svelte", srcs = None, deps = [], visibility = ["//visibility:private"]):
if not srcs: if not srcs:
srcs = native.glob(["*.svelte"]) srcs = native.glob(["*.svelte"])
for src in srcs: for src in srcs:
svelte( svelte(
name = src.replace(".svelte", ""), name = src.replace(".svelte", ""),
entry_point = src, entry_point = src,
deps = deps,
visibility = visibility, visibility = visibility,
) )