Skip to content

Commit 2fce764

Browse files
authored
[native_assets_cli] Curate public classes (#2245)
This PR tries the curate the classes which are in the public API of `native_assets_cli.dart` and adds some documentation to them. * `(Build|Link)(Input|Output)` refer to the hooks the are the input or output of. * `Hook(Input|Output)` refer to the subclasses * `(Build|Link|Hook)Config` refer to the input they are the config of. * `XXXBuilder` refer to the class they build. * `Builder|Linker` refer to the hooks they should be used in. * `EncodedAsset` refers to protocol extensions for encoding/decoding * `PackageMetadata|PackageUserDefines|PackageUserDefinesSource` refer to the classes where they are used. * `ProtocolExtension` documents it's the specification for an extension of the base protocol. * `AssetRouting|ToAppBundle|ToBuildHooks|ToLinkHook` refer to each other in the hook output. Deprecated classes have been removed: * `Metadata|Dependencies` these were no longer used since the `XXXBuilder` pattern. Classes only used in `package:native_assets_builder` have been moved there: * `Target`. The Dart docs can be inspected by `pkgs/native_assets_cli$ dart doc .`. TODOs: * This PR does not yet curate extension types, extensions, and top level functions. * This PR does not yet curate the `code_assets.dart` and `data_assets.dart` libraries. Context: * Work before splitting up the package: #999
1 parent cb27933 commit 2fce764

22 files changed

+134
-234
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ gradlew.bat
7474

7575
# Directory created by dartdoc.
7676
doc/api/
77+
**/doc/api/
7778

7879
# Avoid committing generated Javascript files:
7980
*.dart.js

pkgs/native_assets_builder/lib/native_assets_builder.dart

+1
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,5 @@ export 'src/build_runner/build_runner.dart'
1111
export 'src/model/build_result.dart' show BuildResult;
1212
export 'src/model/kernel_assets.dart';
1313
export 'src/model/link_result.dart' show LinkResult;
14+
export 'src/model/target.dart';
1415
export 'src/package_layout/package_layout.dart' show PackageLayout;

pkgs/native_assets_builder/lib/src/build_runner/build_runner.dart

-2
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,6 @@ import '../package_layout/package_layout.dart';
2222
import '../utils/run_process.dart';
2323
import 'build_planner.dart';
2424

25-
typedef DependencyMetadata = Map<String, Metadata>;
26-
2725
typedef InputCreator = HookInputBuilder Function();
2826

2927
typedef BuildInputCreator = BuildInputBuilder Function();

pkgs/native_assets_builder/lib/src/model/kernel_assets.dart

+1-2
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,8 @@
1414
/// Dart SDK.
1515
library;
1616

17-
import 'package:native_assets_cli/native_assets_cli.dart';
18-
1917
import '../utils/yaml.dart';
18+
import 'target.dart';
2019

2120
class KernelAssets {
2221
final List<KernelAsset> _assets;

pkgs/native_assets_cli/lib/src/target.dart renamed to pkgs/native_assets_builder/lib/src/model/target.dart

+35-34
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@
55
import 'dart:ffi' show Abi;
66
import 'dart:io';
77

8-
import 'code_assets/architecture.dart';
9-
import 'code_assets/os.dart';
8+
import 'package:native_assets_cli/code_assets.dart';
109

1110
final class Target implements Comparable<Target> {
1211
final Abi abi;
@@ -114,29 +113,30 @@ final class Target implements Comparable<Target> {
114113

115114
Architecture get architecture => Architecture.fromAbi(abi);
116115

117-
OS get os => {
118-
Abi.androidArm: OS.android,
119-
Abi.androidArm64: OS.android,
120-
Abi.androidIA32: OS.android,
121-
Abi.androidX64: OS.android,
122-
Abi.androidRiscv64: OS.android,
123-
Abi.fuchsiaArm64: OS.fuchsia,
124-
Abi.fuchsiaX64: OS.fuchsia,
125-
Abi.iosArm: OS.iOS,
126-
Abi.iosArm64: OS.iOS,
127-
Abi.iosX64: OS.iOS,
128-
Abi.linuxArm: OS.linux,
129-
Abi.linuxArm64: OS.linux,
130-
Abi.linuxIA32: OS.linux,
131-
Abi.linuxRiscv32: OS.linux,
132-
Abi.linuxRiscv64: OS.linux,
133-
Abi.linuxX64: OS.linux,
134-
Abi.macosArm64: OS.macOS,
135-
Abi.macosX64: OS.macOS,
136-
Abi.windowsArm64: OS.windows,
137-
Abi.windowsIA32: OS.windows,
138-
Abi.windowsX64: OS.windows,
139-
}[abi]!;
116+
OS get os =>
117+
{
118+
Abi.androidArm: OS.android,
119+
Abi.androidArm64: OS.android,
120+
Abi.androidIA32: OS.android,
121+
Abi.androidX64: OS.android,
122+
Abi.androidRiscv64: OS.android,
123+
Abi.fuchsiaArm64: OS.fuchsia,
124+
Abi.fuchsiaX64: OS.fuchsia,
125+
Abi.iosArm: OS.iOS,
126+
Abi.iosArm64: OS.iOS,
127+
Abi.iosX64: OS.iOS,
128+
Abi.linuxArm: OS.linux,
129+
Abi.linuxArm64: OS.linux,
130+
Abi.linuxIA32: OS.linux,
131+
Abi.linuxRiscv32: OS.linux,
132+
Abi.linuxRiscv64: OS.linux,
133+
Abi.linuxX64: OS.linux,
134+
Abi.macosArm64: OS.macOS,
135+
Abi.macosX64: OS.macOS,
136+
Abi.windowsArm64: OS.windows,
137+
Abi.windowsIA32: OS.windows,
138+
Abi.windowsX64: OS.windows,
139+
}[abi]!;
140140

141141
@override
142142
String toString() => dartVMToString();
@@ -153,15 +153,16 @@ final class Target implements Comparable<Target> {
153153
/// A list of supported target [Target]s from this host [os].
154154
List<Target> supportedTargetTargets({
155155
Map<OS, List<OS>> osCrossCompilation = OS.osCrossCompilationDefault,
156-
}) => Target.values
157-
.where(
158-
(target) =>
159-
// Only valid cross compilation.
160-
osCrossCompilation[os]!.contains(target.os) &&
161-
// And no deprecated architectures.
162-
target != Target.iOSArm,
163-
)
164-
.sorted;
156+
}) =>
157+
Target.values
158+
.where(
159+
(target) =>
160+
// Only valid cross compilation.
161+
osCrossCompilation[os]!.contains(target.os) &&
162+
// And no deprecated architectures.
163+
target != Target.iOSArm,
164+
)
165+
.sorted;
165166
}
166167

167168
/// Common methods for manipulating iterables of [Target]s.

pkgs/native_assets_builder/test/build_runner/concurrency_shared_test.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44

55
import 'dart:async';
66

7+
import 'package:native_assets_builder/src/model/target.dart';
78
import 'package:native_assets_builder/src/utils/run_process.dart'
89
show RunProcessResult;
9-
import 'package:native_assets_cli/native_assets_cli.dart';
1010
import 'package:test/test.dart';
1111

1212
import '../helpers.dart';

pkgs/native_assets_builder/test/build_runner/concurrency_shared_test_helper.dart

-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import 'package:logging/logging.dart';
77
import 'package:native_assets_builder/native_assets_builder.dart';
88
import 'package:native_assets_cli/code_assets.dart';
99
import 'package:native_assets_cli/data_assets.dart';
10-
import 'package:native_assets_cli/native_assets_cli.dart';
1110

1211
import '../helpers.dart';
1312

pkgs/native_assets_builder/test/build_runner/fail_on_os_sdk_version_test.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
// BSD-style license that can be found in the LICENSE file.
44

55
import 'package:logging/logging.dart';
6+
import 'package:native_assets_builder/src/model/target.dart';
67
import 'package:native_assets_cli/code_assets.dart';
7-
import 'package:native_assets_cli/native_assets_cli.dart';
88
import 'package:test/test.dart';
99

1010
import '../helpers.dart';

pkgs/native_assets_builder/test/build_runner/helpers.dart

-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import 'package:logging/logging.dart';
1010
import 'package:native_assets_builder/native_assets_builder.dart';
1111
import 'package:native_assets_cli/code_assets.dart';
1212
import 'package:native_assets_cli/data_assets.dart';
13-
import 'package:native_assets_cli/native_assets_cli.dart';
1413
import 'package:test/test.dart';
1514

1615
import '../helpers.dart';

pkgs/native_assets_builder/test/model/kernel_assets_test.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
// ignore_for_file: undefined_hidden_name
66

77
import 'package:native_assets_builder/src/model/kernel_assets.dart';
8-
import 'package:native_assets_cli/native_assets_cli.dart';
8+
import 'package:native_assets_builder/src/model/target.dart';
99
import 'package:test/test.dart';
1010

1111
void main() {

pkgs/native_assets_cli/test/model/target_test.dart renamed to pkgs/native_assets_builder/test/model/target_test.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
import 'dart:ffi';
66
import 'dart:io';
77

8+
import 'package:native_assets_builder/src/model/target.dart';
89
import 'package:native_assets_cli/code_assets.dart';
9-
import 'package:native_assets_cli/native_assets_cli.dart';
1010
import 'package:test/test.dart';
1111

1212
void main() {

pkgs/native_assets_cli/lib/native_assets_cli.dart

+10-12
Original file line numberDiff line numberDiff line change
@@ -15,33 +15,31 @@ export 'src/config.dart'
1515
AssetRouting,
1616
BuildConfig,
1717
BuildConfigBuilder,
18+
BuildConfigBuilderSetup,
1819
BuildInput,
20+
BuildInputBuilder,
21+
BuildOutput,
1922
BuildOutputBuilder,
2023
EncodedAssetBuildOutputBuilder,
2124
EncodedAssetLinkOutputBuilder,
2225
HookConfig,
2326
HookConfigBuilder,
2427
HookInput,
28+
HookInputBuilder,
29+
HookOutput,
30+
HookOutputBuilder,
31+
LinkConfig,
32+
LinkConfigBuilder,
2533
LinkInput,
34+
LinkInputBuilder,
35+
LinkOutput,
2636
LinkOutputBuilder,
2737
PackageMetadata,
2838
ToAppBundle,
2939
ToBuildHooks,
3040
ToLinkHook;
31-
export 'src/config.dart'
32-
show
33-
BuildConfigBuilderSetup,
34-
BuildInputBuilder,
35-
BuildOutput,
36-
HookInputBuilder,
37-
HookOutput,
38-
LinkInputBuilder,
39-
LinkOutput;
4041
export 'src/encoded_asset.dart' show EncodedAsset;
4142
export 'src/extension.dart';
42-
export 'src/metadata.dart' show Metadata;
43-
export 'src/model/dependencies.dart';
44-
export 'src/target.dart' show Target;
4543
export 'src/test.dart';
4644
export 'src/user_defines.dart'
4745
show PackageUserDefines, PackageUserDefinesSource;

pkgs/native_assets_cli/lib/src/api/builder.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import 'package:logging/logging.dart';
77
import '../config.dart';
88
import 'linker.dart';
99

10-
/// A builder to be run during a build hook.
10+
/// A builder to be run inside `hook/build.dart`.
1111
///
1212
/// [Builder]s should be used to build native code, download assets, and
1313
/// transform assets. A build hook is only rerun when its declared

pkgs/native_assets_cli/lib/src/api/linker.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import 'package:logging/logging.dart';
77
import '../config.dart';
88
import 'builder.dart';
99

10-
/// A linker to be run during a link hook.
10+
/// A builder to be run inside `hook/link.dart`.
1111
///
1212
/// [Linker]s should be used to shrink or omit assets based on tree-shaking
1313
/// information. [Linker]s have access to tree-shaking information in some build

0 commit comments

Comments
 (0)