Skip to content

Commit 9d8eefb

Browse files
authored
[native_assets_cli] Stablize config hashes (#2070)
1 parent 0a02d3b commit 9d8eefb

File tree

11 files changed

+234
-220
lines changed

11 files changed

+234
-220
lines changed

pkgs/native_assets_cli/lib/src/code_assets/c_compiler_config.dart

Lines changed: 20 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@
55
import 'package:collection/collection.dart';
66

77
import '../../code_assets.dart';
8-
import '../json_utils.dart';
9-
import '../utils/map.dart';
8+
import '../utils/json.dart';
109

1110
/// The configuration for a C toolchain.
1211
final class CCompilerConfig {
@@ -77,27 +76,26 @@ final class CCompilerConfig {
7776
///
7877
/// The returned json can be used in [CCompilerConfig.fromJson] to
7978
/// obtain a [CCompilerConfig] again.
80-
Map<String, Object> toJson() =>
81-
{
82-
_arConfigKey: archiver.toFilePath(),
83-
_ccConfigKey: compiler.toFilePath(),
84-
_ldConfigKey: linker.toFilePath(),
85-
if (_windows?.developerCommandPrompt?.script != null)
86-
_envScriptConfigKeyDeprecated:
87-
_windows!.developerCommandPrompt!.script.toFilePath(),
88-
if (_windows?.developerCommandPrompt?.arguments != null)
89-
_envScriptArgsConfigKeyDeprecated:
90-
_windows!.developerCommandPrompt!.arguments,
91-
if (_windows != null)
92-
_windowsConfigKey: {
93-
if (_windows.developerCommandPrompt != null)
94-
_developerCommandPromptConfigKey: {
95-
_argumentsConfigKey: _windows.developerCommandPrompt!.arguments,
96-
_scriptConfigKey:
97-
_windows.developerCommandPrompt!.script.toFilePath(),
98-
},
79+
Map<String, Object> toJson() => {
80+
_arConfigKey: archiver.toFilePath(),
81+
_ccConfigKey: compiler.toFilePath(),
82+
_ldConfigKey: linker.toFilePath(),
83+
if (_windows?.developerCommandPrompt?.script != null)
84+
_envScriptConfigKeyDeprecated:
85+
_windows!.developerCommandPrompt!.script.toFilePath(),
86+
if (_windows?.developerCommandPrompt?.arguments != null)
87+
_envScriptArgsConfigKeyDeprecated:
88+
_windows!.developerCommandPrompt!.arguments,
89+
if (_windows != null)
90+
_windowsConfigKey: {
91+
if (_windows.developerCommandPrompt != null)
92+
_developerCommandPromptConfigKey: {
93+
_argumentsConfigKey: _windows.developerCommandPrompt!.arguments,
94+
_scriptConfigKey:
95+
_windows.developerCommandPrompt!.script.toFilePath(),
9996
},
100-
}.sortOnKey();
97+
},
98+
}..sortOnKey();
10199

102100
@override
103101
bool operator ==(Object other) {

pkgs/native_assets_cli/lib/src/code_assets/code_asset.dart

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,7 @@
44

55
import '../config.dart';
66
import '../encoded_asset.dart';
7-
import '../json_utils.dart';
87
import '../utils/json.dart';
9-
import '../utils/map.dart';
108
import 'architecture.dart';
119
import 'link_mode.dart';
1210
import 'os.dart';

pkgs/native_assets_cli/lib/src/code_assets/config.dart

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
// BSD-style license that can be found in the LICENSE file.
44

55
import '../config.dart';
6-
import '../json_utils.dart';
6+
import '../utils/json.dart';
77
import 'architecture.dart';
88
import 'c_compiler_config.dart';
99
import 'code_asset.dart';
@@ -314,6 +314,8 @@ extension CodeAssetBuildInputBuilder on HookConfigBuilder {
314314
_targetVersionKey,
315315
], macOS?.targetVersion);
316316
}
317+
(json[_configKey] as Map<String, Object?>).sortOnKey();
318+
((json[_configKey] as Map)[_codeKey] as Map<String, Object?>).sortOnKey();
317319
}
318320
}
319321

pkgs/native_assets_cli/lib/src/config.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import 'package:pub_semver/pub_semver.dart';
1010

1111
import 'api/deprecation_messages.dart';
1212
import 'encoded_asset.dart';
13-
import 'json_utils.dart';
1413
import 'metadata.dart';
1514
import 'utils/datetime.dart';
1615
import 'utils/json.dart';
@@ -174,6 +173,7 @@ final class HookConfigBuilder {
174173

175174
void setupShared({required List<String> buildAssetTypes}) {
176175
json.setNested([_configKey, _buildAssetTypesKey], buildAssetTypes);
176+
(json[_configKey] as Map<String, Object?>).sortOnKey();
177177
}
178178
}
179179

@@ -184,6 +184,7 @@ final class BuildConfigBuilder extends HookConfigBuilder {
184184
extension BuildConfigBuilderSetup on BuildConfigBuilder {
185185
void setupBuild({required bool linkingEnabled}) {
186186
json.setNested([_configKey, _linkingEnabledKey], linkingEnabled);
187+
(json[_configKey] as Map<String, Object?>).sortOnKey();
187188
}
188189
}
189190

pkgs/native_assets_cli/lib/src/data_assets/data_asset.dart

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@
33
// BSD-style license that can be found in the LICENSE file.
44

55
import '../encoded_asset.dart';
6-
import '../json_utils.dart';
7-
import '../utils/map.dart';
6+
import '../utils/json.dart';
87

98
/// Data bundled with a Dart or Flutter application.
109
///

pkgs/native_assets_cli/lib/src/encoded_asset.dart

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@
44

55
import 'package:collection/collection.dart';
66

7-
import 'json_utils.dart';
8-
import 'utils/map.dart';
7+
import 'utils/json.dart';
98

109
/// An encoding of a particular asset type.
1110
final class EncodedAsset {

pkgs/native_assets_cli/lib/src/json_utils.dart

Lines changed: 0 additions & 112 deletions
This file was deleted.

pkgs/native_assets_cli/lib/src/metadata.dart

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import 'package:collection/collection.dart';
66

77
import 'utils/json.dart';
8-
import 'utils/map.dart';
98

109
class Metadata {
1110
final Map<String, Object> metadata;
@@ -15,7 +14,7 @@ class Metadata {
1514
factory Metadata.fromJson(Map<Object?, Object?>? jsonMap) =>
1615
Metadata(jsonMap?.formatCast<String, Object>() ?? {});
1716

18-
Map<String, Object> toJson() => metadata..sortOnKey();
17+
Map<String, Object> toJson() => {...metadata}..sortOnKey();
1918

2019
@override
2120
bool operator ==(Object other) {

0 commit comments

Comments
 (0)