Skip to content

Commit c6a21ba

Browse files
authored
Refactor OverridableEnvironment and IOEnvironment into BuildEnvironment. (#3919)
1 parent 501bfa8 commit c6a21ba

File tree

22 files changed

+222
-277
lines changed

22 files changed

+222
-277
lines changed

_test_common/lib/test_environment.dart

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
import 'dart:async';
66

7+
import 'package:build/build.dart';
78
import 'package:build_runner_core/build_runner_core.dart';
89
import 'package:logging/logging.dart';
910

@@ -16,7 +17,7 @@ import 'common.dart';
1617
/// To handle prompts you must first set `nextPromptResponse`. Alternatively
1718
/// you can set `throwOnPrompt` to `true` to emulate a
1819
/// [NonInteractiveBuildException].
19-
class TestBuildEnvironment extends BuildEnvironment {
20+
class TestBuildEnvironment implements BuildEnvironment {
2021
final TestReaderWriter _readerWriter;
2122

2223
TestReaderWriter get readerWriter => _readerWriter;
@@ -64,4 +65,21 @@ class TestBuildEnvironment extends BuildEnvironment {
6465
assert(_nextPromptResponse != null);
6566
return Future.value(_nextPromptResponse);
6667
}
68+
69+
@override
70+
BuildEnvironment copyWith({
71+
void Function(LogRecord)? onLogOverride,
72+
RunnerAssetWriter? writer,
73+
}) => TestBuildEnvironment(
74+
readerWriter: (writer as TestReaderWriter?) ?? _readerWriter,
75+
throwOnPrompt: throwOnPrompt,
76+
);
77+
78+
@override
79+
Future<BuildResult> finalizeBuild(
80+
BuildResult buildResult,
81+
FinalizedAssetsView finalizedAssetsView,
82+
AssetReader reader,
83+
Set<BuildDirectory> buildDirs,
84+
) => Future.value(buildResult);
6785
}

_test_common/lib/test_phases.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -131,11 +131,11 @@ Future<TestBuildersResult> testBuilders(
131131
});
132132

133133
builderConfigOverrides ??= const {};
134-
var environment = OverrideableEnvironment(
135-
IOEnvironment(packageGraph),
134+
var environment = BuildEnvironment(
135+
packageGraph,
136136
reader: readerWriter,
137137
writer: readerWriter,
138-
onLog: onLog,
138+
onLogOverride: onLog,
139139
);
140140
var logSubscription = LogSubscription(
141141
environment,

build/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
- `AssetNotFoundException` now also reports the missing `path`.
55
- Bump the min sdk to 3.7.0.
66
- Use `build_test` 3.0.0.
7+
- Use `build_runner_core` 9.0.0.
78
- Add `package:build/src/internal.dart` for use by `build_resolvers`,
89
`build_runner_core` and `build_test`.
910
- Refactor `PathProvidingAssetReader` to `AssetPathProvider`.

build/pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ environment:
1010
dependencies:
1111
analyzer: '>=6.9.0 <8.0.0'
1212
async: ^2.5.0
13-
build_runner_core: ^8.0.1-wip
13+
build_runner_core: ^9.0.0-wip
1414
convert: ^3.0.0
1515
crypto: ^3.0.0
1616
glob: ^2.0.0

build_resolvers/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
- Bump the min SDK to 3.7.0.
44
- Use `build_test` 3.0.0.
5+
- Use `build_runner_core` 9.0.0.
56
- Start using `package:build/src/internal.dart`.
67
- Switch `BuildAssetUriResolver` dependency crawl to an iterative
78
algorithm, preventing stack overflows.

build_resolvers/pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ dependencies:
1111
analyzer: '>=6.9.0 <8.0.0'
1212
async: ^2.5.0
1313
build: ^2.4.3-wip
14-
build_runner_core: ^8.0.1-wip
14+
build_runner_core: ^9.0.0-wip
1515
collection: ^1.17.0
1616
convert: ^3.1.1
1717
crypto: ^3.0.0

build_runner/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
- Bump the min SDK to 3.7.0.
44
- Use `build_test` 3.0.0.
5+
- Use `build_runner_core` 9.0.0.
56
- Start using `package:build/src/internal.dart'.
67
- Refactor `MultiPackageAssetReader` to internal `AssetFinder`.
78
- `FinalizedReader` no longer implements `AssetReader`.

build_runner/lib/src/daemon/daemon_builder.dart

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -243,18 +243,15 @@ class BuildRunnerDaemonBuilder implements DaemonBuilder {
243243
var expectedDeletes = <AssetId>{};
244244
var outputStreamController = StreamController<ServerLog>();
245245

246-
var environment = OverrideableEnvironment(
247-
IOEnvironment(
248-
packageGraph,
249-
outputSymlinksOnly: daemonOptions.outputSymlinksOnly,
250-
),
251-
onLog: (record) {
246+
var environment = BuildEnvironment(
247+
packageGraph,
248+
outputSymlinksOnly: daemonOptions.outputSymlinksOnly,
249+
onLogOverride: (record) {
252250
outputStreamController.add(ServerLog.fromLogRecord(record));
253251
},
254252
);
255253

256-
var daemonEnvironment = OverrideableEnvironment(
257-
environment,
254+
var daemonEnvironment = environment.copyWith(
258255
writer: (environment.writer as ReaderWriter).copyWith(
259256
onDelete: expectedDeletes.add,
260257
),

build_runner/lib/src/generate/build.dart

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -82,15 +82,14 @@ Future<BuildResult> build(
8282
skipBuildScriptCheck ??= false;
8383
trackPerformance ??= false;
8484
verbose ??= false;
85-
var environment = OverrideableEnvironment(
86-
IOEnvironment(
87-
packageGraph,
88-
assumeTty: assumeTty,
89-
outputSymlinksOnly: outputSymlinksOnly,
90-
),
85+
var environment = BuildEnvironment(
86+
packageGraph,
87+
assumeTty: assumeTty,
88+
outputSymlinksOnly: outputSymlinksOnly,
9189
reader: reader,
9290
writer: writer,
93-
onLog: onLog ?? stdIOLogListener(assumeTty: assumeTty, verbose: verbose),
91+
onLogOverride:
92+
onLog ?? stdIOLogListener(assumeTty: assumeTty, verbose: verbose),
9493
);
9594
var logSubscription = LogSubscription(
9695
environment,

build_runner/lib/src/generate/watch_impl.dart

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -67,15 +67,14 @@ Future<ServeHandler> watch(
6767
trackPerformance ??= false;
6868
verbose ??= false;
6969

70-
var environment = OverrideableEnvironment(
71-
IOEnvironment(
72-
packageGraph,
73-
assumeTty: assumeTty,
74-
outputSymlinksOnly: outputSymlinksOnly,
75-
),
70+
var environment = BuildEnvironment(
71+
packageGraph,
72+
assumeTty: assumeTty,
73+
outputSymlinksOnly: outputSymlinksOnly,
7674
reader: reader,
7775
writer: writer,
78-
onLog: onLog ?? stdIOLogListener(assumeTty: assumeTty, verbose: verbose),
76+
onLogOverride:
77+
onLog ?? stdIOLogListener(assumeTty: assumeTty, verbose: verbose),
7978
);
8079
var logSubscription = LogSubscription(
8180
environment,
@@ -241,8 +240,7 @@ class WatchImpl implements BuildState {
241240
Future until, {
242241
bool isReleaseMode = false,
243242
}) {
244-
var watcherEnvironment = OverrideableEnvironment(
245-
environment,
243+
var watcherEnvironment = environment.copyWith(
246244
writer: (environment.writer as ReaderWriter).copyWith(
247245
onDelete: _expectedDeletes.add,
248246
),

0 commit comments

Comments
 (0)