Skip to content

Commit 687e018

Browse files
josephperrottatscott
authored andcommitted
build: migrate platform-server to rules_js (angular#61589)
Migrate platform-server to use ts_project and ng_project. PR Close angular#61589
1 parent a28cadc commit 687e018

16 files changed

Lines changed: 102 additions & 75 deletions

packages/core/src/core_private_export.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
* Use of this source code is governed by an MIT-style license that can be
66
* found in the LICENSE file at https://angular.dev/license
77
*/
8-
98
export {
109
type NavigateEvent as ɵNavigateEvent,
1110
type Navigation as ɵNavigation,
@@ -60,6 +59,7 @@ export {
6059
DeferBlockConfig as ɵDeferBlockConfig,
6160
DeferBlockState as ɵDeferBlockState,
6261
} from './defer/interfaces';
62+
export {getDocument as ɵgetDocument} from './render3/interfaces/document';
6363
export {
6464
convertToBitFlags as ɵconvertToBitFlags,
6565
setCurrentInjector as ɵsetCurrentInjector,
@@ -85,14 +85,17 @@ export {
8585
withDomHydration as ɵwithDomHydration,
8686
withI18nSupport as ɵwithI18nSupport,
8787
withIncrementalHydration as ɵwithIncrementalHydration,
88+
CLIENT_RENDER_MODE_FLAG as ɵCLIENT_RENDER_MODE_FLAG,
8889
} from './hydration/api';
8990
export {withEventReplay as ɵwithEventReplay} from './hydration/event_replay';
9091
export {JSACTION_EVENT_CONTRACT as ɵJSACTION_EVENT_CONTRACT} from './event_delegation_utils';
9192
export {
9293
IS_HYDRATION_DOM_REUSE_ENABLED as ɵIS_HYDRATION_DOM_REUSE_ENABLED,
9394
IS_INCREMENTAL_HYDRATION_ENABLED as ɵIS_INCREMENTAL_HYDRATION_ENABLED,
95+
JSACTION_BLOCK_ELEMENT_MAP as ɵJSACTION_BLOCK_ELEMENT_MAP,
9496
} from './hydration/tokens';
9597
export {
98+
HydrationStatus as ɵHydrationStatus,
9699
HydratedNode as ɵHydratedNode,
97100
HydrationInfo as ɵHydrationInfo,
98101
readHydrationInfo as ɵreadHydrationInfo,
@@ -152,7 +155,6 @@ export {isPromise as ɵisPromise, isSubscribable as ɵisSubscribable} from './ut
152155
export {performanceMarkFeature as ɵperformanceMarkFeature} from './util/performance';
153156
export {stringify as ɵstringify, truncateMiddle as ɵtruncateMiddle} from './util/stringify';
154157
export {NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR as ɵNOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR} from './view/provider_flags';
155-
156158
export {type InputSignalNode as ɵInputSignalNode} from './authoring/input/input_signal_node';
157159
export {
158160
startMeasuring as ɵstartMeasuring,
@@ -161,10 +163,11 @@ export {
161163
enableProfiling as ɵenableProfiling,
162164
disableProfiling as ɵdisableProfiling,
163165
} from './profiler';
164-
165166
export {
166167
ResourceImpl as ɵResourceImpl,
167168
encapsulateResourceError as ɵencapsulateResourceError,
168169
} from './resource/resource';
169-
170170
export {getClosestComponentName as ɵgetClosestComponentName} from './internal/get_closest_component_name';
171+
export {getComponentDef as ɵgetComponentDef} from './render3/def_getters';
172+
export {DEHYDRATED_BLOCK_REGISTRY as ɵDEHYDRATED_BLOCK_REGISTRY} from './defer/registry';
173+
export {TimerScheduler as ɵTimerScheduler} from './defer/timer_scheduler';

packages/core/src/defer/registry.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import {
1515
} from '../event_delegation_utils';
1616
import {JSACTION_BLOCK_ELEMENT_MAP} from '../hydration/tokens';
1717
import {DehydratedDeferBlock} from './interfaces';
18+
import type {PromiseWithResolvers} from '../util/promise_with_resolvers';
1819

1920
/**
2021
* An internal injection token to reference `DehydratedBlockRegistry` implementation

packages/core/src/defer/triggering.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ import {
7070
getTDeferBlockDetails,
7171
} from './utils';
7272
import {ApplicationRef} from '../application/application_ref';
73-
import {DEHYDRATED_VIEWS} from '../render3/interfaces/container';
73+
import type {PromiseConstructor} from '../util/promise_with_resolvers';
7474

7575
/**
7676
* Schedules triggering of a defer block for `on idle` and `on timer` conditions.
@@ -549,7 +549,7 @@ function cleanupRemainingHydrationQueue(
549549
*/
550550
function populateHydratingStateForQueue(registry: DehydratedBlockRegistry, queue: string[]) {
551551
for (let blockId of queue) {
552-
registry.hydrating.set(blockId, Promise.withResolvers());
552+
registry.hydrating.set(blockId, (Promise as unknown as PromiseConstructor).withResolvers());
553553
}
554554
}
555555

packages/core/src/util/promise_with_resolvers.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,13 @@
1010
* TODO(incremental-hydration): Remove this file entirely once PromiseWithResolvers lands in stable
1111
* node / TS.
1212
*/
13-
interface PromiseWithResolvers<T> {
13+
export interface PromiseWithResolvers<T> {
1414
promise: Promise<T>;
1515
resolve: (value: T | PromiseLike<T>) => void;
1616
reject: (reason?: any) => void;
1717
}
1818

19-
interface PromiseConstructor {
19+
export interface PromiseConstructor {
2020
/**
2121
* Creates a new Promise and returns it in an object, along with its resolve and reject functions.
2222
* @returns An object with the properties `promise`, `resolve`, and `reject`.

packages/core/test/resource/resource_spec.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,7 @@ import {
1919
} from '../../src/core';
2020
import {TestBed} from '../../testing';
2121

22-
// Needed for the `Promise.withResolvers()` usage below.
23-
import '../../src/util/promise_with_resolvers';
22+
import type {PromiseConstructor} from '../../src/util/promise_with_resolvers';
2423

2524
abstract class MockBackend<T, R> {
2625
protected pending = new Map<
@@ -300,7 +299,7 @@ describe('resource', () => {
300299
const res = resource({
301300
params: request,
302301
loader: async ({params}) => {
303-
const p = Promise.withResolvers<number>();
302+
const p = (Promise as unknown as PromiseConstructor).withResolvers<number>();
304303
resolve.push(() => p.resolve(params));
305304
return p.promise;
306305
},

packages/platform-server/BUILD.bazel

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,31 @@
11
load("@build_bazel_rules_nodejs//:index.bzl", "js_library")
2-
load("//tools:defaults.bzl", "api_golden_test_npm_package", "esbuild", "generate_api_docs", "ng_module", "ng_package", "tsec_test")
2+
load("//tools:defaults.bzl", "api_golden_test_npm_package", "esbuild", "generate_api_docs", "ng_package", "tsec_test")
3+
load("//tools:defaults2.bzl", "ng_project")
34

45
package(default_visibility = ["//visibility:public"])
56

6-
ng_module(
7+
ng_project(
78
name = "platform-server",
8-
package_name = "@angular/platform-server",
99
srcs = glob(
1010
[
1111
"*.ts",
1212
"src/**/*.ts",
1313
],
1414
exclude = ["src/bundled-domino.d.ts"],
1515
),
16-
deps = [
17-
":bundled_domino_lib",
16+
interop_deps = [
1817
"//packages/common",
1918
"//packages/common/http",
2019
"//packages/compiler",
21-
"//packages/core",
2220
"//packages/platform-browser",
2321
"//packages/zone.js/lib:zone_d_ts",
24-
"@npm//@types/node",
25-
"@npm//rxjs",
26-
"@npm//xhr2",
22+
":bundled_domino_lib",
23+
],
24+
deps = [
25+
"//:node_modules/@types/node",
26+
"//:node_modules/rxjs",
27+
"//:node_modules/xhr2",
28+
"//packages/core:core_rjs",
2729
],
2830
)
2931

packages/platform-server/init/BUILD.bazel

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
load("@build_bazel_rules_nodejs//:index.bzl", "js_library")
2-
load("//tools:defaults.bzl", "esbuild", "ng_module", "tsec_test")
2+
load("//tools:defaults.bzl", "esbuild", "tsec_test")
3+
load("//tools:defaults2.bzl", "ng_project")
34

45
package(default_visibility = ["//visibility:public"])
56

6-
ng_module(
7+
ng_project(
78
name = "init",
89
srcs = glob(
910
[
@@ -12,7 +13,7 @@ ng_module(
1213
],
1314
exclude = ["src/bundled-domino.d.ts"],
1415
),
15-
deps = [
16+
interop_deps = [
1617
":bundled_domino_lib",
1718
],
1819
)

packages/platform-server/init/test/BUILD.bazel

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
1-
load("//tools:defaults.bzl", "jasmine_node_test", "ts_library")
1+
load("//tools:defaults.bzl", "jasmine_node_test")
2+
load("//tools:defaults2.bzl", "ts_project")
23

3-
ts_library(
4+
ts_project(
45
name = "test_lib",
56
testonly = True,
67
srcs = glob(["**/*.ts"]),
7-
deps = [
8-
"//packages/platform-server/init",
8+
interop_deps = [
99
"//packages/platform-server/init:bundled_domino_lib",
1010
],
11+
deps = [
12+
"//packages/platform-server/init:init_rjs",
13+
],
1114
)
1215

1316
jasmine_node_test(

packages/platform-server/test/BUILD.bazel

Lines changed: 29 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,25 @@
1-
load("//tools:defaults.bzl", "jasmine_node_test", "ts_library")
1+
load("//tools:defaults.bzl", "jasmine_node_test")
2+
load("//tools:defaults2.bzl", "ts_project")
23

3-
ts_library(
4+
ts_project(
45
name = "dom_utils",
6+
testonly = True,
57
srcs = [
68
"dom_utils.ts",
79
"hydration_utils.ts",
810
],
9-
deps = [
11+
interop_deps = [
1012
"//packages/common",
11-
"//packages/core",
12-
"//packages/core/testing",
1313
"//packages/platform-browser",
14-
"//packages/platform-server",
14+
],
15+
deps = [
16+
"//packages/core:core_rjs",
17+
"//packages/core/testing:testing_rjs",
18+
"//packages/platform-server:platform-server_rjs",
1519
],
1620
)
1721

18-
ts_library(
22+
ts_project(
1923
name = "test_lib",
2024
testonly = True,
2125
srcs = glob(
@@ -26,42 +30,46 @@ ts_library(
2630
"dom_utils.ts",
2731
],
2832
),
29-
deps = [
30-
":dom_utils",
33+
interop_deps = [
3134
"//packages:types",
32-
"//packages/animations",
3335
"//packages/common",
3436
"//packages/common/http",
3537
"//packages/common/http/testing",
3638
"//packages/common/testing",
3739
"//packages/compiler",
38-
"//packages/core",
39-
"//packages/core/testing",
4040
"//packages/localize",
4141
"//packages/localize/init",
4242
"//packages/platform-browser",
4343
"//packages/platform-browser/animations",
44-
"//packages/platform-server",
4544
"//packages/private/testing",
4645
"//packages/router",
47-
"@npm//rxjs",
46+
],
47+
deps = [
48+
":dom_utils_rjs",
49+
"//:node_modules/rxjs",
50+
"//packages/animations:animations_rjs",
51+
"//packages/core:core_rjs",
52+
"//packages/core/testing:testing_rjs",
53+
"//packages/platform-server:platform-server_rjs",
4854
],
4955
)
5056

51-
ts_library(
57+
ts_project(
5258
name = "event_replay_test_lib",
5359
testonly = True,
5460
srcs = ["event_replay_spec.ts"],
55-
deps = [
56-
":dom_utils",
61+
interop_deps = [
5762
"//packages/common",
58-
"//packages/core",
59-
"//packages/core/primitives/event-dispatch",
60-
"//packages/core/testing",
6163
"//packages/platform-browser",
62-
"//packages/platform-server",
6364
"//packages/private/testing",
6465
],
66+
deps = [
67+
":dom_utils_rjs",
68+
"//packages/core:core_rjs",
69+
"//packages/core/primitives/event-dispatch:event-dispatch_rjs",
70+
"//packages/core/testing:testing_rjs",
71+
"//packages/platform-server:platform-server_rjs",
72+
],
6573
)
6674

6775
jasmine_node_test(

packages/platform-server/test/dom_utils.ts

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,15 @@
77
*/
88

99
import {DOCUMENT} from '@angular/common';
10-
import {ApplicationRef, PLATFORM_ID, Provider, Type, ɵsetDocument} from '@angular/core';
11-
import {CLIENT_RENDER_MODE_FLAG} from '@angular/core/src/hydration/api';
12-
import {getComponentDef} from '@angular/core/src/render3/def_getters';
10+
import {
11+
ApplicationRef,
12+
PLATFORM_ID,
13+
Provider,
14+
Type,
15+
ɵsetDocument,
16+
ɵCLIENT_RENDER_MODE_FLAG as CLIENT_RENDER_MODE_FLAG,
17+
ɵgetComponentDef as getComponentDef,
18+
} from '@angular/core';
1319
import {
1420
bootstrapApplication,
1521
HydrationFeature,

0 commit comments

Comments
 (0)