@@ -19,12 +19,6 @@ final rootSchemas = loadSchemas([
19
19
]);
20
20
final rootSchemas2 = rootSchemas.map ((key, value) => MapEntry (value, key));
21
21
22
- const packageImports = {
23
- 'code_assets' : ['hook' ],
24
- 'data_assets' : ['hook' ],
25
- 'hook' : < String > [],
26
- };
27
-
28
22
/// These classes are constructed peacemeal instead of in one go.
29
23
///
30
24
/// Generate public setters.
@@ -36,38 +30,6 @@ const _publicSetters = {
36
30
'LinkOutput' ,
37
31
};
38
32
39
- String dependency (List <String > packages) {
40
- if (packages.length != 2 ) {
41
- throw UnimplementedError (
42
- 'Extensions on extensions not supported. '
43
- 'So, only expect at most two packages.' ,
44
- );
45
- }
46
- if (packageImports[packages[0 ]]! .contains (packages[1 ])) {
47
- return packages[1 ];
48
- }
49
- if (packageImports[packages[1 ]]! .contains (packages[0 ])) {
50
- return packages[0 ];
51
- }
52
- throw StateError ('Unknown packages: $packages ' );
53
- }
54
-
55
- String importer (List <String > packages) {
56
- if (packages.length != 2 ) {
57
- throw UnimplementedError (
58
- 'Extensions on extensions not supported. '
59
- 'So, only expect at most two packages.' ,
60
- );
61
- }
62
- if (packageImports[packages[0 ]]! .contains (packages[1 ])) {
63
- return packages[0 ];
64
- }
65
- if (packageImports[packages[1 ]]! .contains (packages[0 ])) {
66
- return packages[1 ];
67
- }
68
- throw StateError ('Unknown packages: $packages ' );
69
- }
70
-
71
33
void main () {
72
34
if (rootSchemas.length != rootSchemas2.length) {
73
35
throw StateError (
@@ -114,8 +76,6 @@ void generate(
114
76
final definitionSchemas = schemas.getDefinition (definitionKey);
115
77
if (definitionSchemas.generateOpenEnum) {
116
78
classes.add (generateEnumClass (definitionSchemas, name: definitionKey));
117
- } else if (definitionSchemas.generateExtension (packageName)) {
118
- classes.add (generateExtension (definitionSchemas));
119
79
} else if (definitionSchemas.generateClass) {
120
80
classes.add (generateClass (definitionSchemas, name: definitionKey));
121
81
}
@@ -139,56 +99,6 @@ ${classes.join('\n\n')}
139
99
print ('Generated $outputUri ' );
140
100
}
141
101
142
- String generateExtension (JsonSchemas schemas) {
143
- final typeName = schemas.className! ;
144
- final extensionSchemas = schemas.extensionSchemas;
145
- final baseSchemas = schemas.baseSchemas;
146
- final baseName = baseSchemas.className;
147
- if (baseName != typeName) {
148
- throw StateError (
149
- 'Expected the class name of the extension '
150
- 'to be identical to the base schema class name.' ,
151
- );
152
- }
153
- final basePropertyKeys = baseSchemas.propertyKeys;
154
- final extensionPropertyKeys =
155
- extensionSchemas.propertyKeys
156
- .where ((e) => ! basePropertyKeys.contains (e))
157
- .toList ();
158
-
159
- final accessors = < String > [];
160
- final classes = < String > [];
161
- for (final propertyKey in extensionPropertyKeys) {
162
- final propertySchemas = schemas.property (propertyKey);
163
- final required = schemas.propertyRequired (propertyKey);
164
- accessors.add (
165
- generateAccessor (
166
- propertyKey,
167
- propertySchemas,
168
- required ,
169
- setterPrivate: false ,
170
- ),
171
- );
172
- if (propertySchemas.generateClass && propertySchemas.refs.isEmpty) {
173
- classes.add (generateClass (propertySchemas, name: propertyKey));
174
- }
175
- }
176
-
177
- if (schemas.generateSubClasses) {
178
- classes.addAll (generateSubClasses (schemas));
179
- }
180
-
181
- return [
182
- if (extensionPropertyKeys.isNotEmpty)
183
- '''
184
- extension ${baseName }Extension on $baseName {
185
- ${accessors .join ('\n\n ' )}
186
- }
187
- ''' ,
188
- ...classes,
189
- ].join ('\n\n ' );
190
- }
191
-
192
102
List <String > generateSubClasses (JsonSchemas schemas) {
193
103
final classes = < String > [];
194
104
final typeName = schemas.className;
@@ -968,12 +878,6 @@ extension type JsonSchemas._(List<JsonSchema> _schemas) {
968
878
}
969
879
}
970
880
final result = JsonSchemas ._(flattened);
971
- if (result.dartPackages.length > 2 ) {
972
- throw UnimplementedError (
973
- 'Extensions on extensions not implemented. '
974
- 'So only two package names are expected here.' ,
975
- );
976
- }
977
881
return result;
978
882
}
979
883
@@ -1222,72 +1126,6 @@ extension CodeGenDecisions on JsonSchemas {
1222
1126
}
1223
1127
throw StateError ('No super class schema found for $parentClassName .' );
1224
1128
}
1225
-
1226
- JsonSchemas get baseSchemas {
1227
- final packages = dartPackages;
1228
- if (packages.length == 1 ) {
1229
- return this ;
1230
- }
1231
- if (packages.length != 2 ) {
1232
- throw UnimplementedError (
1233
- 'No extensions on extensions supported. '
1234
- 'So, only two package names expected.' ,
1235
- );
1236
- }
1237
- final package = dependency (packages);
1238
- final result = < JsonSchema > [];
1239
- for (final schema in _schemas) {
1240
- if (schema.dartPackage == package) {
1241
- result.add (schema);
1242
- }
1243
- }
1244
- return JsonSchemas ._(result);
1245
- }
1246
-
1247
- JsonSchemas get extensionSchemas {
1248
- final packages = dartPackages;
1249
- if (packages.length == 1 ) {
1250
- return JsonSchemas ._([]);
1251
- }
1252
- if (packages.length != 2 ) {
1253
- throw UnimplementedError (
1254
- 'No extensions on extensions supported. '
1255
- 'So, only two package names expected.' ,
1256
- );
1257
- }
1258
- final package = importer (packages);
1259
- final result = < JsonSchema > [];
1260
- for (final schema in _schemas) {
1261
- if (schema.dartPackage == package) {
1262
- result.add (schema);
1263
- }
1264
- }
1265
- return JsonSchemas ._(result);
1266
- }
1267
-
1268
- bool generateExtension (String currentPackage) =>
1269
- dartPackages.length > 1 ||
1270
- dartPackages[0 ] != currentPackage && className != null ;
1271
-
1272
- List <String > get dartPackages {
1273
- final result = < String > [];
1274
- for (final schema in _schemas) {
1275
- final pkg = schema.dartPackage;
1276
- if (! result.contains (pkg)) {
1277
- result.add (pkg);
1278
- }
1279
- }
1280
- return result;
1281
- }
1282
- }
1283
-
1284
- extension on JsonSchema {
1285
- String get dartPackage {
1286
- final schemaUri = rootSchemas2[root]! ;
1287
- final segments = schemaUri.pathSegments;
1288
- final pkgName = segments[segments.indexOf ('pkgs' ) + 1 ];
1289
- return pkgName;
1290
- }
1291
1129
}
1292
1130
1293
1131
extension on String {
0 commit comments