PR Close #26488
This commit is contained in:
@ -8,7 +8,9 @@ load("//packages/bazel/src:ng_rollup_bundle.bzl", _ng_rollup_bundle = "ng_rollup
|
||||
|
||||
DEFAULT_TSCONFIG_BUILD = "//packages:tsconfig-build.json"
|
||||
DEFAULT_TSCONFIG_TEST = "//packages:tsconfig-test.json"
|
||||
DEFAULT_NODE_MODULES = "@angular_deps//:node_modules"
|
||||
DEFAULT_COMPILER_BIN = "//:@bazel/typescript/tsc_wrapped"
|
||||
DEFAULT_TS_TYPINGS = "@ngdeps//typescript:typescript__typings"
|
||||
DEFAULT_KARMA_BIN = "//:@bazel/karma/karma"
|
||||
|
||||
# Packages which are versioned together on npm
|
||||
ANGULAR_SCOPED_PACKAGES = ["@angular/%s" % p for p in [
|
||||
@ -41,15 +43,34 @@ PKG_GROUP_REPLACEMENTS = {
|
||||
]""" % ",\n ".join(["\"%s\"" % s for s in ANGULAR_SCOPED_PACKAGES]),
|
||||
}
|
||||
|
||||
def ts_library(tsconfig = None, node_modules = DEFAULT_NODE_MODULES, testonly = False, **kwargs):
|
||||
def ts_library(tsconfig = None, testonly = False, deps = [], **kwargs):
|
||||
"""Default values for ts_library"""
|
||||
deps = deps + ["@ngdeps//tslib"]
|
||||
if testonly:
|
||||
# Match the types[] in //packages:tsconfig-test.json
|
||||
deps.append("@ngdeps//@types/jasmine")
|
||||
deps.append("@ngdeps//@types/node")
|
||||
if not tsconfig:
|
||||
if testonly:
|
||||
tsconfig = DEFAULT_TSCONFIG_TEST
|
||||
else:
|
||||
tsconfig = DEFAULT_TSCONFIG_BUILD
|
||||
_ts_library(tsconfig = tsconfig, node_modules = node_modules, testonly = testonly, **kwargs)
|
||||
_ts_library(
|
||||
tsconfig = tsconfig,
|
||||
testonly = testonly,
|
||||
deps = deps,
|
||||
compiler = DEFAULT_COMPILER_BIN,
|
||||
node_modules = DEFAULT_TS_TYPINGS,
|
||||
**kwargs
|
||||
)
|
||||
|
||||
def ng_module(name, tsconfig = None, entry_point = None, node_modules = DEFAULT_NODE_MODULES, testonly = False, **kwargs):
|
||||
def ng_module(name, tsconfig = None, entry_point = None, testonly = False, deps = [], **kwargs):
|
||||
"""Default values for ng_module"""
|
||||
deps = deps + ["@ngdeps//tslib"]
|
||||
if testonly:
|
||||
# Match the types[] in //packages:tsconfig-test.json
|
||||
deps.append("@ngdeps//@types/jasmine")
|
||||
deps.append("@ngdeps//@types/node")
|
||||
if not tsconfig:
|
||||
if testonly:
|
||||
tsconfig = DEFAULT_TSCONFIG_TEST
|
||||
@ -57,12 +78,27 @@ def ng_module(name, tsconfig = None, entry_point = None, node_modules = DEFAULT_
|
||||
tsconfig = DEFAULT_TSCONFIG_BUILD
|
||||
if not entry_point:
|
||||
entry_point = "public_api.ts"
|
||||
_ng_module(name = name, flat_module_out_file = name, tsconfig = tsconfig, entry_point = entry_point, node_modules = node_modules, testonly = testonly, **kwargs)
|
||||
_ng_module(
|
||||
name = name,
|
||||
flat_module_out_file = name,
|
||||
tsconfig = tsconfig,
|
||||
entry_point = entry_point,
|
||||
testonly = testonly,
|
||||
deps = deps,
|
||||
node_modules = DEFAULT_TS_TYPINGS,
|
||||
**kwargs
|
||||
)
|
||||
|
||||
# ivy_ng_module behaves like ng_module, and under --define=compile=legacy it runs ngc with global
|
||||
# analysis but produces Ivy outputs. Under other compile modes, it behaves as ng_module.
|
||||
# TODO(alxhub): remove when ngtsc supports the same use cases.
|
||||
def ivy_ng_module(name, tsconfig = None, entry_point = None, testonly = False, **kwargs):
|
||||
def ivy_ng_module(name, tsconfig = None, entry_point = None, testonly = False, deps = [], **kwargs):
|
||||
"""Default values for ivy_ng_module"""
|
||||
deps = deps + ["@ngdeps//tslib"]
|
||||
if testonly:
|
||||
# Match the types[] in //packages:tsconfig-test.json
|
||||
deps.append("@ngdeps//@types/jasmine")
|
||||
deps.append("@ngdeps//@types/node")
|
||||
if not tsconfig:
|
||||
if testonly:
|
||||
tsconfig = DEFAULT_TSCONFIG_TEST
|
||||
@ -70,24 +106,38 @@ def ivy_ng_module(name, tsconfig = None, entry_point = None, testonly = False, *
|
||||
tsconfig = DEFAULT_TSCONFIG_BUILD
|
||||
if not entry_point:
|
||||
entry_point = "public_api.ts"
|
||||
_internal_global_ng_module(name = name, flat_module_out_file = name, tsconfig = tsconfig, entry_point = entry_point, testonly = testonly, **kwargs)
|
||||
_internal_global_ng_module(
|
||||
name = name,
|
||||
flat_module_out_file = name,
|
||||
tsconfig = tsconfig,
|
||||
entry_point = entry_point,
|
||||
testonly = testonly,
|
||||
deps = deps,
|
||||
node_modules = DEFAULT_TS_TYPINGS,
|
||||
**kwargs
|
||||
)
|
||||
|
||||
def ng_package(name, node_modules = DEFAULT_NODE_MODULES, readme_md = None, license_banner = None, **kwargs):
|
||||
def ng_package(name, readme_md = None, license_banner = None, deps = [], **kwargs):
|
||||
"""Default values for ng_package"""
|
||||
if not readme_md:
|
||||
readme_md = "//packages:README.md"
|
||||
if not license_banner:
|
||||
license_banner = "//packages:license-banner.txt"
|
||||
deps = deps + [
|
||||
"@ngdeps//tslib",
|
||||
]
|
||||
|
||||
_ng_package(
|
||||
name = name,
|
||||
deps = deps,
|
||||
readme_md = readme_md,
|
||||
license_banner = license_banner,
|
||||
replacements = PKG_GROUP_REPLACEMENTS,
|
||||
node_modules = node_modules,
|
||||
**kwargs
|
||||
)
|
||||
|
||||
def npm_package(name, replacements = {}, **kwargs):
|
||||
"""Default values for npm_package"""
|
||||
_npm_package(
|
||||
name = name,
|
||||
replacements = dict(replacements, **PKG_GROUP_REPLACEMENTS),
|
||||
@ -95,10 +145,11 @@ def npm_package(name, replacements = {}, **kwargs):
|
||||
)
|
||||
|
||||
def ts_web_test_suite(bootstrap = [], deps = [], **kwargs):
|
||||
"""Default values for ts_web_test_suite"""
|
||||
if not bootstrap:
|
||||
bootstrap = ["//:web_test_bootstrap_scripts"]
|
||||
local_deps = [
|
||||
"@angular_deps//:node_modules/tslib/tslib.js",
|
||||
"@ngdeps//node_modules/tslib:tslib.js",
|
||||
"//tools/testing:browser",
|
||||
] + deps
|
||||
|
||||
@ -116,14 +167,44 @@ def ts_web_test_suite(bootstrap = [], deps = [], **kwargs):
|
||||
# "@io_bazel_rules_webtesting//browsers:firefox-local",
|
||||
# TODO(alexeagle): add remote browsers on SauceLabs
|
||||
],
|
||||
karma = DEFAULT_KARMA_BIN,
|
||||
**kwargs
|
||||
)
|
||||
|
||||
def nodejs_binary(node_modules = DEFAULT_NODE_MODULES, **kwargs):
|
||||
_nodejs_binary(node_modules = node_modules, **kwargs)
|
||||
def nodejs_binary(**kwargs):
|
||||
"""Default values for nodejs_binary"""
|
||||
_nodejs_binary(
|
||||
# Pass-thru --define=compile=foo as an environment variable
|
||||
configuration_env_vars = ["compile"],
|
||||
**kwargs
|
||||
)
|
||||
|
||||
def jasmine_node_test(node_modules = DEFAULT_NODE_MODULES, **kwargs):
|
||||
_jasmine_node_test(node_modules = node_modules, **kwargs)
|
||||
def jasmine_node_test(deps = [], **kwargs):
|
||||
"""Default values for jasmine_node_test"""
|
||||
deps = deps + [
|
||||
# Very common dependencies for tests
|
||||
"@ngdeps//chokidar",
|
||||
"@ngdeps//domino",
|
||||
"@ngdeps//jasmine",
|
||||
"@ngdeps//jasmine-core",
|
||||
"@ngdeps//mock-fs",
|
||||
"@ngdeps//reflect-metadata",
|
||||
"@ngdeps//tslib",
|
||||
"@ngdeps//xhr2",
|
||||
]
|
||||
_jasmine_node_test(
|
||||
deps = deps,
|
||||
# Pass-thru --define=compile=foo as an environment variable
|
||||
configuration_env_vars = ["compile"],
|
||||
**kwargs
|
||||
)
|
||||
|
||||
def ng_rollup_bundle(node_modules = DEFAULT_NODE_MODULES, **kwargs):
|
||||
_ng_rollup_bundle(node_modules = node_modules, **kwargs)
|
||||
def ng_rollup_bundle(deps = [], **kwargs):
|
||||
"""Default values for ng_rollup_bundle"""
|
||||
deps = deps + [
|
||||
"@ngdeps//tslib",
|
||||
]
|
||||
_ng_rollup_bundle(
|
||||
deps = deps,
|
||||
**kwargs
|
||||
)
|
||||
|
Reference in New Issue
Block a user