Skip to content

Commit a4dd723

Browse files
authored
[json_syntax_generator] Add path to default constructors (#2455)
1 parent de333a4 commit a4dd723

File tree

8 files changed

+119
-54
lines changed

8 files changed

+119
-54
lines changed

pkgs/code_assets/lib/src/code_assets/syntax.g.dart

Lines changed: 38 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@ class AndroidCodeConfigSyntax extends JsonObjectSyntax {
1414
AndroidCodeConfigSyntax.fromJson(super.json, {super.path = const []})
1515
: super.fromJson();
1616

17-
AndroidCodeConfigSyntax({required int targetNdkApi}) : super() {
17+
AndroidCodeConfigSyntax({required int targetNdkApi, super.path = const []})
18+
: super() {
1819
_targetNdkApi = targetNdkApi;
1920
json.sortOnKey();
2021
}
@@ -95,7 +96,7 @@ class AssetSyntax extends JsonObjectSyntax {
9596

9697
AssetSyntax._fromJson(super.json, {super.path = const []}) : super.fromJson();
9798

98-
AssetSyntax({required String? type}) : super() {
99+
AssetSyntax({required String? type, super.path = const []}) : super() {
99100
_type = type;
100101
json.sortOnKey();
101102
}
@@ -124,6 +125,7 @@ class CCompilerConfigSyntax extends JsonObjectSyntax {
124125
required Uri cc,
125126
required Uri ld,
126127
required WindowsSyntax? windows,
128+
super.path = const [],
127129
}) : super() {
128130
_ar = ar;
129131
_cc = cc;
@@ -199,6 +201,7 @@ class CodeConfigSyntax extends JsonObjectSyntax {
199201
required MacOSCodeConfigSyntax? macOS,
200202
required ArchitectureSyntax targetArchitecture,
201203
required OSSyntax targetOs,
204+
super.path = const [],
202205
}) : super() {
203206
_android = android;
204207
_cCompiler = cCompiler;
@@ -370,7 +373,10 @@ class CodeConfigSyntax extends JsonObjectSyntax {
370373
class ConfigSyntax extends JsonObjectSyntax {
371374
ConfigSyntax.fromJson(super.json, {super.path = const []}) : super.fromJson();
372375

373-
ConfigSyntax({required ConfigExtensionsSyntax? extensions}) : super() {
376+
ConfigSyntax({
377+
required ConfigExtensionsSyntax? extensions,
378+
super.path = const [],
379+
}) : super() {
374380
this.extensions = extensions;
375381
json.sortOnKey();
376382
}
@@ -408,7 +414,10 @@ class ConfigExtensionsSyntax extends JsonObjectSyntax {
408414
ConfigExtensionsSyntax.fromJson(super.json, {super.path = const []})
409415
: super.fromJson();
410416

411-
ConfigExtensionsSyntax({required CodeConfigSyntax? codeAssets}) : super() {
417+
ConfigExtensionsSyntax({
418+
required CodeConfigSyntax? codeAssets,
419+
super.path = const [],
420+
}) : super() {
412421
this.codeAssets = codeAssets;
413422
json.sortOnKey();
414423
}
@@ -446,6 +455,7 @@ class DeveloperCommandPromptSyntax extends JsonObjectSyntax {
446455
DeveloperCommandPromptSyntax({
447456
required List<String> arguments,
448457
required Uri script,
458+
super.path = const [],
449459
}) : super() {
450460
_arguments = arguments;
451461
_script = script;
@@ -483,7 +493,8 @@ class DynamicLoadingBundleLinkModeSyntax extends LinkModeSyntax {
483493
DynamicLoadingBundleLinkModeSyntax.fromJson(super.json, {super.path})
484494
: super._fromJson();
485495

486-
DynamicLoadingBundleLinkModeSyntax() : super(type: 'dynamic_loading_bundle');
496+
DynamicLoadingBundleLinkModeSyntax({super.path = const []})
497+
: super(type: 'dynamic_loading_bundle');
487498

488499
@override
489500
List<String> validate() => [...super.validate()];
@@ -503,7 +514,7 @@ class DynamicLoadingExecutableLinkModeSyntax extends LinkModeSyntax {
503514
DynamicLoadingExecutableLinkModeSyntax.fromJson(super.json, {super.path})
504515
: super._fromJson();
505516

506-
DynamicLoadingExecutableLinkModeSyntax()
517+
DynamicLoadingExecutableLinkModeSyntax({super.path = const []})
507518
: super(type: 'dynamic_loading_executable');
508519

509520
@override
@@ -526,7 +537,7 @@ class DynamicLoadingProcessLinkModeSyntax extends LinkModeSyntax {
526537
DynamicLoadingProcessLinkModeSyntax.fromJson(super.json, {super.path})
527538
: super._fromJson();
528539

529-
DynamicLoadingProcessLinkModeSyntax()
540+
DynamicLoadingProcessLinkModeSyntax({super.path = const []})
530541
: super(type: 'dynamic_loading_process');
531542

532543
@override
@@ -547,7 +558,7 @@ class DynamicLoadingSystemLinkModeSyntax extends LinkModeSyntax {
547558
DynamicLoadingSystemLinkModeSyntax.fromJson(super.json, {super.path})
548559
: super._fromJson();
549560

550-
DynamicLoadingSystemLinkModeSyntax({required Uri uri})
561+
DynamicLoadingSystemLinkModeSyntax({required Uri uri, super.path = const []})
551562
: super(type: 'dynamic_loading_system') {
552563
_uri = uri;
553564
json.sortOnKey();
@@ -586,8 +597,11 @@ class IOSCodeConfigSyntax extends JsonObjectSyntax {
586597
IOSCodeConfigSyntax.fromJson(super.json, {super.path = const []})
587598
: super.fromJson();
588599

589-
IOSCodeConfigSyntax({required String targetSdk, required int targetVersion})
590-
: super() {
600+
IOSCodeConfigSyntax({
601+
required String targetSdk,
602+
required int targetVersion,
603+
super.path = const [],
604+
}) : super() {
591605
_targetSdk = targetSdk;
592606
_targetVersion = targetVersion;
593607
json.sortOnKey();
@@ -648,7 +662,7 @@ class LinkModeSyntax extends JsonObjectSyntax {
648662
LinkModeSyntax._fromJson(super.json, {super.path = const []})
649663
: super.fromJson();
650664

651-
LinkModeSyntax({required String type}) : super() {
665+
LinkModeSyntax({required String type, super.path = const []}) : super() {
652666
_type = type;
653667
json.sortOnKey();
654668
}
@@ -713,7 +727,8 @@ class MacOSCodeConfigSyntax extends JsonObjectSyntax {
713727
MacOSCodeConfigSyntax.fromJson(super.json, {super.path = const []})
714728
: super.fromJson();
715729

716-
MacOSCodeConfigSyntax({required int targetVersion}) : super() {
730+
MacOSCodeConfigSyntax({required int targetVersion, super.path = const []})
731+
: super() {
717732
_targetVersion = targetVersion;
718733
json.sortOnKey();
719734
}
@@ -742,6 +757,7 @@ class NativeCodeAssetEncodingSyntax extends JsonObjectSyntax {
742757
required Uri? file,
743758
required String id,
744759
required LinkModeSyntax linkMode,
760+
super.path = const [],
745761
}) : super() {
746762
_file = file;
747763
_id = id;
@@ -812,8 +828,10 @@ class NativeCodeAssetNewSyntax extends AssetSyntax {
812828
NativeCodeAssetNewSyntax.fromJson(super.json, {super.path})
813829
: super._fromJson();
814830

815-
NativeCodeAssetNewSyntax({required NativeCodeAssetEncodingSyntax? encoding})
816-
: super(type: 'code_assets/code') {
831+
NativeCodeAssetNewSyntax({
832+
required NativeCodeAssetEncodingSyntax? encoding,
833+
super.path = const [],
834+
}) : super(type: 'code_assets/code') {
817835
_encoding = encoding;
818836
json.sortOnKey();
819837
}
@@ -900,7 +918,7 @@ class OSSyntax {
900918
class StaticLinkModeSyntax extends LinkModeSyntax {
901919
StaticLinkModeSyntax.fromJson(super.json, {super.path}) : super._fromJson();
902920

903-
StaticLinkModeSyntax() : super(type: 'static');
921+
StaticLinkModeSyntax({super.path = const []}) : super(type: 'static');
904922

905923
@override
906924
List<String> validate() => [...super.validate()];
@@ -920,8 +938,10 @@ class WindowsSyntax extends JsonObjectSyntax {
920938
WindowsSyntax.fromJson(super.json, {super.path = const []})
921939
: super.fromJson();
922940

923-
WindowsSyntax({required DeveloperCommandPromptSyntax? developerCommandPrompt})
924-
: super() {
941+
WindowsSyntax({
942+
required DeveloperCommandPromptSyntax? developerCommandPrompt,
943+
super.path = const [],
944+
}) : super() {
925945
_developerCommandPrompt = developerCommandPrompt;
926946
json.sortOnKey();
927947
}
@@ -966,7 +986,7 @@ class JsonObjectSyntax {
966986

967987
_JsonReader get _reader => _JsonReader(json, path);
968988

969-
JsonObjectSyntax() : json = {}, path = const [];
989+
JsonObjectSyntax({this.path = const []}) : json = {};
970990

971991
JsonObjectSyntax.fromJson(this.json, {this.path = const []});
972992

pkgs/data_assets/lib/src/data_assets/syntax.g.dart

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ class AssetSyntax extends JsonObjectSyntax {
2424

2525
AssetSyntax._fromJson(super.json, {super.path = const []}) : super.fromJson();
2626

27-
AssetSyntax({required String? type}) : super() {
27+
AssetSyntax({required String? type, super.path = const []}) : super() {
2828
_type = type;
2929
json.sortOnKey();
3030
}
@@ -52,6 +52,7 @@ class DataAssetEncodingSyntax extends JsonObjectSyntax {
5252
required Uri file,
5353
required String name,
5454
required String package,
55+
super.path = const [],
5556
}) : super() {
5657
_file = file;
5758
_name = name;
@@ -100,8 +101,10 @@ class DataAssetNewSyntax extends AssetSyntax {
100101

101102
DataAssetNewSyntax.fromJson(super.json, {super.path}) : super._fromJson();
102103

103-
DataAssetNewSyntax({required DataAssetEncodingSyntax? encoding})
104-
: super(type: 'data_assets/data') {
104+
DataAssetNewSyntax({
105+
required DataAssetEncodingSyntax? encoding,
106+
super.path = const [],
107+
}) : super(type: 'data_assets/data') {
105108
_encoding = encoding;
106109
json.sortOnKey();
107110
}
@@ -155,7 +158,7 @@ class JsonObjectSyntax {
155158

156159
_JsonReader get _reader => _JsonReader(json, path);
157160

158-
JsonObjectSyntax() : json = {}, path = const [];
161+
JsonObjectSyntax({this.path = const []}) : json = {};
159162

160163
JsonObjectSyntax.fromJson(this.json, {this.path = const []});
161164

pkgs/hooks/lib/src/encoded_asset.dart

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -69,16 +69,15 @@ extension EncodedAssetSyntaxExtension on EncodedAsset {
6969

7070
/// Converts this [EncodedAsset] to a [AssetSyntax] node.
7171
AssetSyntax toSyntax() {
72-
// TODO: Add optional json path argument to constructor that takes parts.
73-
final syntaxNodeWithoutPath = AssetSyntax(
74-
encoding: JsonObjectSyntax.fromJson(Map.of(encoding)),
75-
type: type,
76-
);
7772
final path = switch (encodingJsonPath) {
7873
// Remove the last element from the encoding path.
7974
final List<Object> l => l.sublist(0, l.length - 1),
8075
null => <Object>[],
8176
};
82-
return AssetSyntax.fromJson(syntaxNodeWithoutPath.json, path: path);
77+
return AssetSyntax(
78+
encoding: JsonObjectSyntax.fromJson(Map.of(encoding)),
79+
type: type,
80+
path: path,
81+
);
8382
}
8483
}

pkgs/hooks/lib/src/hooks/syntax.g.dart

Lines changed: 30 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,11 @@ class AssetSyntax extends JsonObjectSyntax {
2424

2525
AssetSyntax._fromJson(super.json, {super.path = const []}) : super.fromJson();
2626

27-
AssetSyntax({required JsonObjectSyntax? encoding, required String type})
28-
: super() {
27+
AssetSyntax({
28+
required JsonObjectSyntax? encoding,
29+
required String type,
30+
super.path = const [],
31+
}) : super() {
2932
_encoding = encoding;
3033
_type = type;
3134
json.sortOnKey();
@@ -92,6 +95,7 @@ class BuildConfigSyntax extends ConfigSyntax {
9295
required super.buildAssetTypes,
9396
required super.extensions,
9497
required bool linkingEnabled,
98+
super.path = const [],
9599
}) : super() {
96100
_linkingEnabled = linkingEnabled;
97101
json.sortOnKey();
@@ -134,6 +138,7 @@ class BuildInputSyntax extends HookInputSyntax {
134138
required super.packageName,
135139
required super.packageRoot,
136140
required super.userDefines,
141+
super.path = const [],
137142
}) : super(config: config) {
138143
_assets = assets;
139144
json.sortOnKey();
@@ -222,6 +227,7 @@ class BuildOutputSyntax extends HookOutputSyntax {
222227
required super.failureDetails,
223228
required super.status,
224229
required super.timestamp,
230+
super.path = const [],
225231
}) : super() {
226232
this.assetsForBuild = assetsForBuild;
227233
this.assetsForLinking = assetsForLinking;
@@ -349,6 +355,7 @@ class ConfigSyntax extends JsonObjectSyntax {
349355
ConfigSyntax({
350356
required List<String> buildAssetTypes,
351357
required JsonObjectSyntax? extensions,
358+
super.path = const [],
352359
}) : super() {
353360
this.buildAssetTypes = buildAssetTypes;
354361
this.extensions = extensions;
@@ -399,7 +406,8 @@ class FailureSyntax extends JsonObjectSyntax {
399406
FailureSyntax.fromJson(super.json, {super.path = const []})
400407
: super.fromJson();
401408

402-
FailureSyntax({required FailureTypeSyntax type}) : super() {
409+
FailureSyntax({required FailureTypeSyntax type, super.path = const []})
410+
: super() {
403411
_type = type;
404412
json.sortOnKey();
405413
}
@@ -466,6 +474,7 @@ class HookInputSyntax extends JsonObjectSyntax {
466474
required String packageName,
467475
required Uri packageRoot,
468476
required UserDefinesSyntax? userDefines,
477+
super.path = const [],
469478
}) : super() {
470479
this.config = config;
471480
this.outDirShared = outDirShared;
@@ -579,6 +588,7 @@ class HookOutputSyntax extends JsonObjectSyntax {
579588
required FailureSyntax? failureDetails,
580589
required OutputStatusSyntax? status,
581590
required String timestamp,
591+
super.path = const [],
582592
}) : super() {
583593
this.assets = assets;
584594
this.dependencies = dependencies;
@@ -708,8 +718,10 @@ class HooksMetadataAssetSyntax extends AssetSyntax {
708718
HooksMetadataAssetSyntax.fromJson(super.json, {super.path})
709719
: super._fromJson();
710720

711-
HooksMetadataAssetSyntax({required MetadataAssetEncodingSyntax encoding})
712-
: super(type: 'hooks/metadata', encoding: encoding);
721+
HooksMetadataAssetSyntax({
722+
required MetadataAssetEncodingSyntax encoding,
723+
super.path = const [],
724+
}) : super(type: 'hooks/metadata', encoding: encoding);
713725

714726
/// Setup all fields for [HooksMetadataAssetSyntax] that are not in
715727
/// [AssetSyntax].
@@ -750,6 +762,7 @@ class LinkInputSyntax extends HookInputSyntax {
750762
required super.packageRoot,
751763
required Uri? resourceIdentifiers,
752764
required super.userDefines,
765+
super.path = const [],
753766
}) : super() {
754767
_assets = assets;
755768
_resourceIdentifiers = resourceIdentifiers;
@@ -830,6 +843,7 @@ class LinkOutputSyntax extends HookOutputSyntax {
830843
required super.failureDetails,
831844
required super.status,
832845
required super.timestamp,
846+
super.path = const [],
833847
}) : super();
834848

835849
@override
@@ -854,8 +868,11 @@ class MetadataAssetEncodingSyntax extends JsonObjectSyntax {
854868
MetadataAssetEncodingSyntax.fromJson(super.json, {super.path = const []})
855869
: super.fromJson();
856870

857-
MetadataAssetEncodingSyntax({required String key, required Object? value})
858-
: super() {
871+
MetadataAssetEncodingSyntax({
872+
required String key,
873+
required Object? value,
874+
super.path = const [],
875+
}) : super() {
859876
_key = key;
860877
_value = value;
861878
json.sortOnKey();
@@ -923,8 +940,10 @@ class UserDefinesSyntax extends JsonObjectSyntax {
923940
UserDefinesSyntax.fromJson(super.json, {super.path = const []})
924941
: super.fromJson();
925942

926-
UserDefinesSyntax({required UserDefinesSourceSyntax? workspacePubspec})
927-
: super() {
943+
UserDefinesSyntax({
944+
required UserDefinesSourceSyntax? workspacePubspec,
945+
super.path = const [],
946+
}) : super() {
928947
_workspacePubspec = workspacePubspec;
929948
json.sortOnKey();
930949
}
@@ -969,6 +988,7 @@ class UserDefinesSourceSyntax extends JsonObjectSyntax {
969988
UserDefinesSourceSyntax({
970989
required Uri basePath,
971990
required JsonObjectSyntax defines,
991+
super.path = const [],
972992
}) : super() {
973993
_basePath = basePath;
974994
_defines = defines;
@@ -1018,7 +1038,7 @@ class JsonObjectSyntax {
10181038

10191039
_JsonReader get _reader => _JsonReader(json, path);
10201040

1021-
JsonObjectSyntax() : json = {}, path = const [];
1041+
JsonObjectSyntax({this.path = const []}) : json = {};
10221042

10231043
JsonObjectSyntax.fromJson(this.json, {this.path = const []});
10241044

0 commit comments

Comments
 (0)