blob: 30ab5090039e85fd5dacd7cb670334b0987c1177 [file] [log] [blame]
"npm_package_internal rule"
load(":npm_package_info.bzl", "NpmPackageInfo")
_ATTRS = {
"src": attr.label(
doc = "A source directory or output directory to use for this package.",
allow_single_file = True,
mandatory = True,
),
"package": attr.string(
doc = """The package name.""",
mandatory = True,
),
"version": attr.string(
doc = """The package version.""",
mandatory = True,
),
}
def _npm_package_internal_impl(ctx):
if ctx.file.src.is_source or ctx.file.src.is_directory:
# pass the source archive, source directory or TreeArtifact through
dst = ctx.file.src
else:
fail("Expected src to be a source directory or an output directory")
return [
DefaultInfo(
files = depset([dst]),
),
NpmPackageInfo(
package = ctx.attr.package,
version = ctx.attr.version,
src = dst,
npm_package_store_infos = depset(),
),
]
npm_package_internal = rule(
implementation = _npm_package_internal_impl,
attrs = _ATTRS,
provides = [DefaultInfo, NpmPackageInfo],
)