Skip to content

Commit

Permalink
Migrates all example ts_library() targets to ts_project().
Browse files Browse the repository at this point in the history
Mostly just works, but two major issues to overcome:

1. `ts_library()` generated ES6 sources which used ESM modules, but `ts_project()` just does what the `tsconfig.json` says, which is CommonJS by default. Need to use a separate `tsconfig` attribute for client-side scripts so they generate ESM JS which can be properly bundled by Rollup.
2. The `ts_project()` macro uses `link_workspace_root = True` by default which maps `rules_prerender` to `""` (the root package path). This is incompatible with `//packages/rules_prerender` which maps `rules_prerender` to `"packages/rules_prerender"` and cannot be used together. Test code which depends on `:%{component}_prerender_for_test` encounters this issue for reasons I don't remember. The easiest solution for now is to set `link_workspace_root = False` for such `ts_project()` targets and use relative imports. Long term we should move to a fully relative / package name import model. Filed #49 to follow up on that work.
  • Loading branch information
dgp1130 committed Jul 4, 2022
1 parent 117ff3d commit 0cd2a67
Show file tree
Hide file tree
Showing 37 changed files with 101 additions and 81 deletions.
6 changes: 3 additions & 3 deletions examples/components/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
load("@npm//@bazel/concatjs:index.bzl", "ts_library")
load("//tools:typescript.bzl", "ts_project")
load(
"//:index.bzl",
"prerender_component",
Expand Down Expand Up @@ -26,7 +26,7 @@ prerender_component(
deps = [":dep"],
)

ts_library(
ts_project(
name = "ts_dep",
srcs = ["ts_dep.ts"],
)
Expand All @@ -51,7 +51,7 @@ web_resources_devserver(
resources = ":page",
)

ts_library(
ts_project(
name = "test_lib",
srcs = ["test.ts"],
testonly = True,
Expand Down
2 changes: 1 addition & 1 deletion examples/components/component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ export function render(): string {
<div class="component">
<span class="content">I'm a component!</span>
<!-- Can use basic \`ts_library()\` dependencies. -->
<!-- Can use basic \`ts_project()\` dependencies. -->
<span class="ts-dep">${tsDep()}</span>
<!-- Can compose other \`prerender_component()\` dependencies. -->
Expand Down
7 changes: 4 additions & 3 deletions examples/custom_bundling/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
load("@npm//@bazel/rollup:index.bzl", "rollup_bundle")
load("@npm//@bazel/concatjs:index.bzl", "ts_library")
load("//tools:typescript.bzl", "ts_project")
load(
"//:index.bzl",
"extract_single_resource",
Expand Down Expand Up @@ -27,9 +27,10 @@ extract_single_resource(
out = "page.html",
)

ts_library(
ts_project(
name = "script",
srcs = ["script.ts"],
tsconfig = "//:tsconfig_client",
)

# Manually bundle all scripts.
Expand Down Expand Up @@ -69,7 +70,7 @@ web_resources_devserver(
resources = ":site",
)

ts_library(
ts_project(
name = "test_lib",
srcs = ["test.ts"],
testonly = True,
Expand Down
5 changes: 3 additions & 2 deletions examples/custom_bundling/component/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
load("@npm//@bazel/concatjs:index.bzl", "ts_library")
load("//tools:typescript.bzl", "ts_project")
load("//:index.bzl", "prerender_component")

prerender_component(
Expand All @@ -12,7 +12,8 @@ prerender_component(
deps = ["//examples/custom_bundling/transitive"],
)

ts_library(
ts_project(
name = "component_script",
srcs = ["component_script.ts"],
tsconfig = "//:tsconfig_client",
)
5 changes: 3 additions & 2 deletions examples/custom_bundling/transitive/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
load("@npm//@bazel/concatjs:index.bzl", "ts_library")
load("//tools:typescript.bzl", "ts_project")
load("//:index.bzl", "prerender_component")

prerender_component(
Expand All @@ -11,7 +11,8 @@ prerender_component(
visibility = ["//examples/custom_bundling:__subpackages__"],
)

ts_library(
ts_project(
name = "transitive_script",
srcs = ["transitive_script.ts"],
tsconfig = "//:tsconfig_client",
)
4 changes: 2 additions & 2 deletions examples/data/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
load("@npm//@bazel/concatjs:index.bzl", "ts_library")
load("//tools:typescript.bzl", "ts_project")
load("//:index.bzl", "prerender_pages", "web_resources_devserver")
load("//tools:jasmine.bzl", "jasmine_web_test_suite")

Expand All @@ -21,7 +21,7 @@ web_resources_devserver(
resources = ":pages",
)

ts_library(
ts_project(
name = "test_lib",
srcs = ["test.ts"],
testonly = True,
Expand Down
4 changes: 2 additions & 2 deletions examples/declarative_shadow_dom/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
load("@npm//@bazel/concatjs:index.bzl", "ts_library")
load("//tools:typescript.bzl", "ts_project")
load(
"//:index.bzl",
"css_library",
Expand Down Expand Up @@ -37,7 +37,7 @@ web_resources_devserver(
resources = ":site",
)

ts_library(
ts_project(
name = "test_lib",
srcs = ["test.ts"],
data = [":devserver"],
Expand Down
4 changes: 2 additions & 2 deletions examples/javascript/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
load("@npm//@bazel/concatjs:index.bzl", "ts_library")
load("//tools:typescript.bzl", "ts_project")
load("//:index.bzl", "prerender_pages", "web_resources_devserver")
load("//tools:jasmine.bzl", "jasmine_web_test_suite")

Expand All @@ -14,7 +14,7 @@ web_resources_devserver(
resources = ":page",
)

ts_library(
ts_project(
name = "test_lib",
srcs = ["test.ts"],
testonly = True,
Expand Down
8 changes: 4 additions & 4 deletions examples/minimal/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
load("@npm//@bazel/concatjs:index.bzl", "ts_library")
load("//tools:typescript.bzl", "ts_project")
load("//:index.bzl", "prerender_pages", "web_resources_devserver")
load("//tools:jasmine.bzl", "jasmine_web_test_suite")

Expand All @@ -14,13 +14,13 @@ prerender_pages(
],
)

ts_library(
ts_project(
name = "dep",
srcs = ["dep.ts"],
deps = [":transitive"],
)

ts_library(
ts_project(
name = "transitive",
srcs = ["transitive.ts"],
)
Expand All @@ -30,7 +30,7 @@ web_resources_devserver(
resources = ":page",
)

ts_library(
ts_project(
name = "test_lib",
srcs = ["test.ts"],
testonly = True,
Expand Down
7 changes: 4 additions & 3 deletions examples/multi_page/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
load("@npm//@bazel/concatjs:index.bzl", "ts_library")
load("//tools:typescript.bzl", "ts_project")
load(
"//:index.bzl",
"css_library",
Expand All @@ -24,9 +24,10 @@ css_library(
srcs = ["styles.css"],
)

ts_library(
ts_project(
name = "script",
srcs = ["script.ts"],
tsconfig = "//:tsconfig_client",
)

web_resources(
Expand All @@ -41,7 +42,7 @@ web_resources_devserver(
resources = ":pages",
)

ts_library(
ts_project(
name = "test_lib",
srcs = ["test.ts"],
testonly = True,
Expand Down
7 changes: 4 additions & 3 deletions examples/prerender_resources/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
load("@npm//@bazel/concatjs:index.bzl", "ts_library")
load("//tools:typescript.bzl", "ts_project")
load("//:index.bzl", "prerender_resources")
load("//tools:jasmine.bzl", "jasmine_node_test")

ts_library(
ts_project(
name = "generator",
srcs = ["generator.ts"],
link_workspace_root = False,
deps = ["//packages/rules_prerender"],
)

Expand All @@ -14,7 +15,7 @@ prerender_resources(
data = [":generator"],
)

ts_library(
ts_project(
name = "generator_test",
srcs = ["generator_test.ts"],
testonly = True,
Expand Down
4 changes: 2 additions & 2 deletions examples/resources/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
load("@npm//@bazel/concatjs:index.bzl", "ts_library")
load("//tools:typescript.bzl", "ts_project")
load(
"//:index.bzl",
"prerender_pages",
Expand Down Expand Up @@ -34,7 +34,7 @@ web_resources_devserver(
resources = ":page",
)

ts_library(
ts_project(
name = "test_lib",
srcs = ["test.ts"],
testonly = True,
Expand Down
7 changes: 4 additions & 3 deletions examples/scripts/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
load("@npm//@bazel/concatjs:index.bzl", "ts_library")
load("//tools:typescript.bzl", "ts_project")
load("//:index.bzl", "prerender_pages", "web_resources_devserver")
load("//tools:jasmine.bzl", "jasmine_web_test_suite")

Expand All @@ -12,17 +12,18 @@ prerender_pages(
deps = ["//examples/scripts/component"],
)

ts_library(
ts_project(
name = "script",
srcs = ["script.ts"],
tsconfig = "//:tsconfig_client",
)

web_resources_devserver(
name = "devserver",
resources = ":page",
)

ts_library(
ts_project(
name = "test_lib",
srcs = ["test.ts"],
testonly = True,
Expand Down
5 changes: 3 additions & 2 deletions examples/scripts/component/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
load("@npm//@bazel/concatjs:index.bzl", "ts_library")
load("//tools:typescript.bzl", "ts_project")
load("//:index.bzl", "prerender_component")

prerender_component(
Expand All @@ -12,7 +12,8 @@ prerender_component(
deps = ["//examples/scripts/transitive"],
)

ts_library(
ts_project(
name = "component_script",
srcs = ["component_script.ts"],
tsconfig = "//:tsconfig_client",
)
5 changes: 3 additions & 2 deletions examples/scripts/transitive/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
load("@npm//@bazel/concatjs:index.bzl", "ts_library")
load("//tools:typescript.bzl", "ts_project")
load("//:index.bzl", "prerender_component")

prerender_component(
Expand All @@ -11,7 +11,8 @@ prerender_component(
visibility = ["//examples/scripts:__subpackages__"],
)

ts_library(
ts_project(
name = "transitive_script",
srcs = ["transitive_script.ts"],
tsconfig = "//:tsconfig_client",
)
5 changes: 3 additions & 2 deletions examples/site/blog/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
load("@npm//@bazel/concatjs:index.bzl", "ts_library")
load("//tools:typescript.bzl", "ts_project")
load("//:index.bzl", "prerender_pages")
load("//tools:jasmine.bzl", "jasmine_node_test")

Expand All @@ -22,9 +22,10 @@ prerender_pages(
],
)

ts_library(
ts_project(
name = "blog_test_lib",
srcs = ["blog_test.ts"],
link_workspace_root = False,
testonly = True,
deps = [
":blog_prerender_for_test",
Expand Down
2 changes: 1 addition & 1 deletion examples/site/blog/blog_test.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import 'jasmine';

import parse from 'node-html-parser';
import renderBlog from 'rules_prerender/examples/site/blog/blog';
import renderBlog from './blog';

describe('Blog', () => {
it('generates a list of posts', async () => {
Expand Down
4 changes: 2 additions & 2 deletions examples/site/common/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
load("@npm//@bazel/concatjs:index.bzl", "ts_library")
load("//tools:typescript.bzl", "ts_project")
load("//:index.bzl", "css_library")

ts_library(
ts_project(
name = "links",
srcs = ["links.ts"],
visibility = ["//examples/site:__subpackages__"],
Expand Down
5 changes: 3 additions & 2 deletions examples/site/components/base/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
load("@npm//@bazel/concatjs:index.bzl", "ts_library")
load("//tools:typescript.bzl", "ts_project")
load("//:index.bzl", "css_library", "prerender_component")
load("//tools:jasmine.bzl", "jasmine_node_test")

Expand All @@ -22,9 +22,10 @@ css_library(
deps = ["//examples/site/common:theme"],
)

ts_library(
ts_project(
name = "base_test_lib",
srcs = ["base_test.ts"],
link_workspace_root = False,
testonly = True,
deps = [
":base_prerender_for_test",
Expand Down
2 changes: 1 addition & 1 deletion examples/site/components/base/base_test.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import 'jasmine';

import { HTMLElement, parse, NodeType } from 'node-html-parser';
import { baseLayout } from 'rules_prerender/examples/site/components/base/base';
import { baseLayout } from './base';

describe('base', () => {
describe('baseLayout()', () => {
Expand Down
10 changes: 6 additions & 4 deletions examples/site/components/counter/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
load("@npm//@bazel/concatjs:index.bzl", "ts_library")
load("//tools:typescript.bzl", "ts_project")
load(
"//:index.bzl",
"prerender_component",
Expand All @@ -17,15 +17,17 @@ prerender_component(
visibility = ["//examples/site:__subpackages__"],
)

ts_library(
ts_project(
name = "scripts",
srcs = ["counter_script.ts"],
tsconfig = "//:tsconfig_client",
)

ts_library(
ts_project(
name = "counter_prerender_test_lib",
srcs = ["counter_prerender_test.ts"],
testonly = True,
link_workspace_root = False,
deps = [
":counter_prerender_for_test",
"@npm//@types/jasmine",
Expand Down Expand Up @@ -54,7 +56,7 @@ web_resources_devserver(
testonly = True,
)

ts_library(
ts_project(
name = "counter_test_lib",
srcs = ["counter_test.ts"],
testonly = True,
Expand Down
Loading

0 comments on commit 0cd2a67

Please sign in to comment.