Setup pw_web_ui with Bazel and Jasmine
Initialize the pw_web_ui package and add Bazel as a build system. Add a single example test in `src/transport/web_serial_transport_test.ts` to verify Bazel can build and run Jasmine tests.
HAS_TO_BE_LARGE=Initializing a new package. Most of this is due to yarn.lock.
Change-Id: Ie3adbdba5a91de9a5f16205be8077bafb3a1fee3
diff --git a/WORKSPACE b/WORKSPACE
index 3ac813e..4f0b22a 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -11,3 +11,37 @@
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.
+
+workspace(
+ name = "pigweed",
+ managed_directories = {"@npm": ["node_modules"]},
+)
+
+# Set up build_bazel_rules_nodejs
+load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
+http_archive(
+ name = "build_bazel_rules_nodejs",
+ sha256 = "f9e7b9f42ae202cc2d2ce6d698ccb49a9f7f7ea572a78fd451696d03ef2ee116",
+ urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/1.6.0/rules_nodejs-1.6.0.tar.gz"],
+)
+
+load("@build_bazel_rules_nodejs//:index.bzl", "node_repositories")
+
+node_repositories(package_json = ["//:package.json"])
+
+# Install packages with yarn
+load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install")
+yarn_install(
+ name = "npm",
+ package_json = "//:package.json",
+ yarn_lock = "//:yarn.lock",
+)
+
+# Install Bazel rules from npm packages
+load("@npm//:install_bazel_dependencies.bzl", "install_bazel_dependencies")
+install_bazel_dependencies()
+
+
+# Setup TypeScript
+load("@npm_bazel_typescript//:index.bzl", "ts_setup_workspace")
+ts_setup_workspace()