Add copy_bootstrap_icons macro

This commit is contained in:
Henrik Giesel 2021-03-28 18:47:06 +02:00
parent 7dcb3ae678
commit 922ee56ce8
2 changed files with 20 additions and 16 deletions

View file

@ -2,7 +2,7 @@ load("@npm//@bazel/typescript:index.bzl", "ts_library")
load("//ts:prettier.bzl", "prettier_test") load("//ts:prettier.bzl", "prettier_test")
load("//ts:eslint.bzl", "eslint_test") load("//ts:eslint.bzl", "eslint_test")
load("//ts:esbuild.bzl", "esbuild") load("//ts:esbuild.bzl", "esbuild")
load("//ts:vendor.bzl", "vendor_js_lib", "pkg_from_name") load("//ts:vendor.bzl", "copy_bootstrap_icons")
load("@io_bazel_rules_sass//:defs.bzl", "sass_binary") load("@io_bazel_rules_sass//:defs.bzl", "sass_binary")
sass_binary( sass_binary(
@ -27,14 +27,9 @@ ts_library(
], ],
) )
vendor_js_lib( copy_bootstrap_icons(
name = "bootstrap-icons", name = "bootstrap-icons",
pkg = pkg_from_name("bootstrap-icons"), icons = ["pin-angle.svg"],
include = [
"icons/pin-angle.svg",
],
strip_prefix = "icons/",
visibility = ["//visibility:public"],
) )
esbuild( esbuild(

View file

@ -26,7 +26,7 @@ vendor_js_lib = rule(
}, },
) )
def pkg_from_name(name): def _pkg_from_name(name):
return "@npm//{0}:{0}__files".format(name) return "@npm//{0}:{0}__files".format(name)
# #
@ -37,7 +37,7 @@ def pkg_from_name(name):
def copy_jquery(name = "jquery", visibility = ["//visibility:public"]): def copy_jquery(name = "jquery", visibility = ["//visibility:public"]):
vendor_js_lib( vendor_js_lib(
name = name, name = name,
pkg = pkg_from_name(name), pkg = _pkg_from_name(name),
include = [ include = [
"dist/jquery.min.js", "dist/jquery.min.js",
], ],
@ -48,7 +48,7 @@ def copy_jquery(name = "jquery", visibility = ["//visibility:public"]):
def copy_jquery_ui(name = "jquery-ui", visibility = ["//visibility:public"]): def copy_jquery_ui(name = "jquery-ui", visibility = ["//visibility:public"]):
vendor_js_lib( vendor_js_lib(
name = name, name = name,
pkg = pkg_from_name("jquery-ui-dist"), pkg = _pkg_from_name("jquery-ui-dist"),
base = "external/npm/node_modules/jquery-ui-dist/", base = "external/npm/node_modules/jquery-ui-dist/",
include = [ include = [
"jquery-ui.min.js", "jquery-ui.min.js",
@ -59,7 +59,7 @@ def copy_jquery_ui(name = "jquery-ui", visibility = ["//visibility:public"]):
def copy_protobufjs(name = "protobufjs", visibility = ["//visibility:public"]): def copy_protobufjs(name = "protobufjs", visibility = ["//visibility:public"]):
vendor_js_lib( vendor_js_lib(
name = name, name = name,
pkg = pkg_from_name(name), pkg = _pkg_from_name(name),
include = [ include = [
"dist/protobuf.min.js", "dist/protobuf.min.js",
], ],
@ -70,7 +70,7 @@ def copy_protobufjs(name = "protobufjs", visibility = ["//visibility:public"]):
def copy_mathjax(name = "mathjax", visibility = ["//visibility:public"]): def copy_mathjax(name = "mathjax", visibility = ["//visibility:public"]):
vendor_js_lib( vendor_js_lib(
name = name, name = name,
pkg = pkg_from_name(name), pkg = _pkg_from_name(name),
include = [ include = [
"es5/tex-chtml.js", "es5/tex-chtml.js",
"es5/input/tex/extensions", "es5/input/tex/extensions",
@ -88,7 +88,7 @@ def copy_mathjax(name = "mathjax", visibility = ["//visibility:public"]):
def copy_css_browser_selector(name = "css-browser-selector", visibility = ["//visibility:public"]): def copy_css_browser_selector(name = "css-browser-selector", visibility = ["//visibility:public"]):
vendor_js_lib( vendor_js_lib(
name = name, name = name,
pkg = pkg_from_name(name), pkg = _pkg_from_name(name),
include = [ include = [
"css_browser_selector.min.js", "css_browser_selector.min.js",
], ],
@ -98,7 +98,7 @@ def copy_css_browser_selector(name = "css-browser-selector", visibility = ["//vi
def copy_bootstrap_js(name = "bootstrap-js", visibility = ["//visibility:public"]): def copy_bootstrap_js(name = "bootstrap-js", visibility = ["//visibility:public"]):
vendor_js_lib( vendor_js_lib(
name = name, name = name,
pkg = pkg_from_name(name), pkg = _pkg_from_name(name),
include = [ include = [
"dist/js/bootstrap.bundle.min.js", "dist/js/bootstrap.bundle.min.js",
], ],
@ -109,10 +109,19 @@ def copy_bootstrap_js(name = "bootstrap-js", visibility = ["//visibility:public"
def copy_bootstrap_css(name = "bootstrap-css", visibility = ["//visibility:public"]): def copy_bootstrap_css(name = "bootstrap-css", visibility = ["//visibility:public"]):
vendor_js_lib( vendor_js_lib(
name = name, name = name,
pkg = pkg_from_name(name), pkg = _pkg_from_name(name),
include = [ include = [
"dist/css/bootstrap.min.css", "dist/css/bootstrap.min.css",
], ],
strip_prefix = "dist/css/", strip_prefix = "dist/css/",
visibility = visibility, visibility = visibility,
) )
def copy_bootstrap_icons(name = "bootstrap-icons", icons = [], visibility = ["//visibility:public"]):
vendor_js_lib(
name = name,
pkg = _pkg_from_name(name),
include = ["icons/{}".format(icon) for icon in icons],
strip_prefix = "icons/",
visibility = visibility,
)