load("@build_bazel_rules_nodejs//:index.bzl", "js_library") load("@npm//webpack-cli:index.bzl", "webpack_cli") SRCS = glob( [ "index.js", "src/**/*", ], exclude = [ "**/test_helpers.ts", "**/*.config.js", "**/*.mock.*", "**/*.test.*", "**/*.stories.*", "**/__snapshots__/**", "**/integration_tests/**", "**/mocks/**", "**/scripts/**", "**/storybook/**", "**/test_fixtures/**", "**/test_helpers/**", ], ) # deps needed when importing this module from another location RUNTIME_DEPS = [ "@npm//babel-loader", "@npm//@babel/plugin-proposal-optional-chaining", "@npm//loader-utils", "@npm//val-loader", "//packages/kbn-repo-info", # deps in the dll need to be included in the sandbox for consumers # of this DLL (ui-shared-deps-src) because webpack won't actually # use the DLL version of a package until it has resolved to the same # relative path as the module which is already included in the DLL manifest "@npm//core-js", "@npm//whatwg-fetch", "@npm//symbol-observable", "@npm//@babel/runtime", "@npm//@elastic/charts", "@npm//@elastic/eui", "@npm//@elastic/numeral", "@npm//@emotion/cache", "@npm//@emotion/react", "@npm//@hello-pangea/dnd", "@npm//@tanstack/react-query", "@npm//@tanstack/react-query-devtools", "@npm//classnames", "@npm//fflate", "@npm//history", "@npm//jquery", "@npm//lodash", "@npm//moment-timezone", "@npm//react-ace", "@npm//react-dom", "@npm//react-router-dom", "@npm//react-router-dom-v5-compat", "@npm//react-router", "@npm//react", "@npm//rxjs", "@npm//styled-components", "@npm//tslib", "@npm//uuid", "@npm//io-ts", ] webpack_cli( name = "shared_built_assets", data = RUNTIME_DEPS + SRCS + [ "//:.browserslistrc", ":webpack.config.js", "@npm//webpack", "@npm//clean-webpack-plugin", "@npm//mini-css-extract-plugin", "@npm//moment", "@npm//css-loader", ], output_dir = True, args = [ "--config", "$(location webpack.config.js)", "--output-path", "$(@D)", "--stats=errors-only" ], visibility = ["//visibility:public"], env = select({ "//:dist": { "NODE_ENV": "production", "NODE_OPTIONS": "--openssl-legacy-provider", }, "//conditions:default": { "NODE_ENV": "development", "NODE_OPTIONS": "--openssl-legacy-provider", }, }) ) # js_library( name = "kbn-ui-shared-deps-npm", package_name = "@kbn/ui-shared-deps-npm", srcs = SRCS + ["package.json"], deps = RUNTIME_DEPS + [":shared_built_assets"], visibility = ["//visibility:public"], )