Skip to content

Commit 839330b

Browse files
authored
[pub_formats] pubspec schema (#2445)
1 parent c23a9df commit 839330b

File tree

20 files changed

+2155
-136
lines changed

20 files changed

+2155
-136
lines changed

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

Lines changed: 62 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1150,6 +1150,24 @@ class JsonReader {
11501150
return result;
11511151
}
11521152

1153+
List<String> validateMapStringElements<T extends Object?>(
1154+
Map<String, String?> map_,
1155+
String parentKey, {
1156+
RegExp? valuePattern,
1157+
}) {
1158+
final result = <String>[];
1159+
for (final MapEntry(:key, :value) in map_.entries) {
1160+
if (value != null &&
1161+
valuePattern != null &&
1162+
!valuePattern.hasMatch(value)) {
1163+
result.add(
1164+
errorString(value, T, [parentKey, key], pattern: valuePattern),
1165+
);
1166+
}
1167+
}
1168+
return result;
1169+
}
1170+
11531171
String string(String key, RegExp? pattern) {
11541172
final value = get<String>(key);
11551173
if (pattern != null && !pattern.hasMatch(value)) {
@@ -1158,6 +1176,15 @@ class JsonReader {
11581176
return value;
11591177
}
11601178

1179+
String? optionalString(String key, RegExp? pattern) {
1180+
final value = get<String?>(key);
1181+
if (value == null) return null;
1182+
if (pattern != null && !pattern.hasMatch(value)) {
1183+
throwFormatException(value, String, [key], pattern: pattern);
1184+
}
1185+
return value;
1186+
}
1187+
11611188
List<String> validateString(String key, RegExp? pattern) {
11621189
final errors = validate<String>(key);
11631190
if (errors.isNotEmpty) {
@@ -1172,6 +1199,21 @@ class JsonReader {
11721199
return [];
11731200
}
11741201

1202+
List<String> validateOptionalString(String key, RegExp? pattern) {
1203+
final errors = validate<String?>(key);
1204+
if (errors.isNotEmpty) {
1205+
return errors;
1206+
}
1207+
final value = get<String?>(key);
1208+
if (value == null) return [];
1209+
if (pattern != null && !pattern.hasMatch(value)) {
1210+
return [
1211+
errorString(value, String, [key], pattern: pattern),
1212+
];
1213+
}
1214+
return [];
1215+
}
1216+
11751217
List<String>? optionalStringList(String key) => optionalList<String>(key);
11761218

11771219
List<String> validateOptionalStringList(String key) =>
@@ -1292,8 +1334,9 @@ extension<K extends Comparable<K>, V extends Object?> on Map<K, V> {
12921334

12931335
void _checkArgumentMapKeys(Map<String, Object?>? map, {RegExp? keyPattern}) {
12941336
if (map == null) return;
1337+
if (keyPattern == null) return;
12951338
for (final key in map.keys) {
1296-
if (keyPattern != null && !keyPattern.hasMatch(key)) {
1339+
if (!keyPattern.hasMatch(key)) {
12971340
throw ArgumentError.value(
12981341
map,
12991342
"Unexpected key '$key'."
@@ -1302,3 +1345,21 @@ void _checkArgumentMapKeys(Map<String, Object?>? map, {RegExp? keyPattern}) {
13021345
}
13031346
}
13041347
}
1348+
1349+
void _checkArgumentMapStringElements(
1350+
Map<String, String?>? map, {
1351+
RegExp? valuePattern,
1352+
}) {
1353+
if (map == null) return;
1354+
if (valuePattern == null) return;
1355+
for (final entry in map.entries) {
1356+
final value = entry.value;
1357+
if (value != null && !valuePattern.hasMatch(value)) {
1358+
throw ArgumentError.value(
1359+
map,
1360+
"Unexpected value '$value' under key '${entry.key}'."
1361+
' Expected a value satisfying ${valuePattern.pattern}.',
1362+
);
1363+
}
1364+
}
1365+
}

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

Lines changed: 62 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -339,6 +339,24 @@ class JsonReader {
339339
return result;
340340
}
341341

342+
List<String> validateMapStringElements<T extends Object?>(
343+
Map<String, String?> map_,
344+
String parentKey, {
345+
RegExp? valuePattern,
346+
}) {
347+
final result = <String>[];
348+
for (final MapEntry(:key, :value) in map_.entries) {
349+
if (value != null &&
350+
valuePattern != null &&
351+
!valuePattern.hasMatch(value)) {
352+
result.add(
353+
errorString(value, T, [parentKey, key], pattern: valuePattern),
354+
);
355+
}
356+
}
357+
return result;
358+
}
359+
342360
String string(String key, RegExp? pattern) {
343361
final value = get<String>(key);
344362
if (pattern != null && !pattern.hasMatch(value)) {
@@ -347,6 +365,15 @@ class JsonReader {
347365
return value;
348366
}
349367

368+
String? optionalString(String key, RegExp? pattern) {
369+
final value = get<String?>(key);
370+
if (value == null) return null;
371+
if (pattern != null && !pattern.hasMatch(value)) {
372+
throwFormatException(value, String, [key], pattern: pattern);
373+
}
374+
return value;
375+
}
376+
350377
List<String> validateString(String key, RegExp? pattern) {
351378
final errors = validate<String>(key);
352379
if (errors.isNotEmpty) {
@@ -361,6 +388,21 @@ class JsonReader {
361388
return [];
362389
}
363390

391+
List<String> validateOptionalString(String key, RegExp? pattern) {
392+
final errors = validate<String?>(key);
393+
if (errors.isNotEmpty) {
394+
return errors;
395+
}
396+
final value = get<String?>(key);
397+
if (value == null) return [];
398+
if (pattern != null && !pattern.hasMatch(value)) {
399+
return [
400+
errorString(value, String, [key], pattern: pattern),
401+
];
402+
}
403+
return [];
404+
}
405+
364406
List<String>? optionalStringList(String key) => optionalList<String>(key);
365407

366408
List<String> validateOptionalStringList(String key) =>
@@ -481,8 +523,9 @@ extension<K extends Comparable<K>, V extends Object?> on Map<K, V> {
481523

482524
void _checkArgumentMapKeys(Map<String, Object?>? map, {RegExp? keyPattern}) {
483525
if (map == null) return;
526+
if (keyPattern == null) return;
484527
for (final key in map.keys) {
485-
if (keyPattern != null && !keyPattern.hasMatch(key)) {
528+
if (!keyPattern.hasMatch(key)) {
486529
throw ArgumentError.value(
487530
map,
488531
"Unexpected key '$key'."
@@ -491,3 +534,21 @@ void _checkArgumentMapKeys(Map<String, Object?>? map, {RegExp? keyPattern}) {
491534
}
492535
}
493536
}
537+
538+
void _checkArgumentMapStringElements(
539+
Map<String, String?>? map, {
540+
RegExp? valuePattern,
541+
}) {
542+
if (map == null) return;
543+
if (valuePattern == null) return;
544+
for (final entry in map.entries) {
545+
final value = entry.value;
546+
if (value != null && !valuePattern.hasMatch(value)) {
547+
throw ArgumentError.value(
548+
map,
549+
"Unexpected value '$value' under key '${entry.key}'."
550+
' Expected a value satisfying ${valuePattern.pattern}.',
551+
);
552+
}
553+
}
554+
}

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

Lines changed: 62 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1202,6 +1202,24 @@ class JsonReader {
12021202
return result;
12031203
}
12041204

1205+
List<String> validateMapStringElements<T extends Object?>(
1206+
Map<String, String?> map_,
1207+
String parentKey, {
1208+
RegExp? valuePattern,
1209+
}) {
1210+
final result = <String>[];
1211+
for (final MapEntry(:key, :value) in map_.entries) {
1212+
if (value != null &&
1213+
valuePattern != null &&
1214+
!valuePattern.hasMatch(value)) {
1215+
result.add(
1216+
errorString(value, T, [parentKey, key], pattern: valuePattern),
1217+
);
1218+
}
1219+
}
1220+
return result;
1221+
}
1222+
12051223
String string(String key, RegExp? pattern) {
12061224
final value = get<String>(key);
12071225
if (pattern != null && !pattern.hasMatch(value)) {
@@ -1210,6 +1228,15 @@ class JsonReader {
12101228
return value;
12111229
}
12121230

1231+
String? optionalString(String key, RegExp? pattern) {
1232+
final value = get<String?>(key);
1233+
if (value == null) return null;
1234+
if (pattern != null && !pattern.hasMatch(value)) {
1235+
throwFormatException(value, String, [key], pattern: pattern);
1236+
}
1237+
return value;
1238+
}
1239+
12131240
List<String> validateString(String key, RegExp? pattern) {
12141241
final errors = validate<String>(key);
12151242
if (errors.isNotEmpty) {
@@ -1224,6 +1251,21 @@ class JsonReader {
12241251
return [];
12251252
}
12261253

1254+
List<String> validateOptionalString(String key, RegExp? pattern) {
1255+
final errors = validate<String?>(key);
1256+
if (errors.isNotEmpty) {
1257+
return errors;
1258+
}
1259+
final value = get<String?>(key);
1260+
if (value == null) return [];
1261+
if (pattern != null && !pattern.hasMatch(value)) {
1262+
return [
1263+
errorString(value, String, [key], pattern: pattern),
1264+
];
1265+
}
1266+
return [];
1267+
}
1268+
12271269
List<String>? optionalStringList(String key) => optionalList<String>(key);
12281270

12291271
List<String> validateOptionalStringList(String key) =>
@@ -1344,8 +1386,9 @@ extension<K extends Comparable<K>, V extends Object?> on Map<K, V> {
13441386

13451387
void _checkArgumentMapKeys(Map<String, Object?>? map, {RegExp? keyPattern}) {
13461388
if (map == null) return;
1389+
if (keyPattern == null) return;
13471390
for (final key in map.keys) {
1348-
if (keyPattern != null && !keyPattern.hasMatch(key)) {
1391+
if (!keyPattern.hasMatch(key)) {
13491392
throw ArgumentError.value(
13501393
map,
13511394
"Unexpected key '$key'."
@@ -1354,3 +1397,21 @@ void _checkArgumentMapKeys(Map<String, Object?>? map, {RegExp? keyPattern}) {
13541397
}
13551398
}
13561399
}
1400+
1401+
void _checkArgumentMapStringElements(
1402+
Map<String, String?>? map, {
1403+
RegExp? valuePattern,
1404+
}) {
1405+
if (map == null) return;
1406+
if (valuePattern == null) return;
1407+
for (final entry in map.entries) {
1408+
final value = entry.value;
1409+
if (value != null && !valuePattern.hasMatch(value)) {
1410+
throw ArgumentError.value(
1411+
map,
1412+
"Unexpected value '$value' under key '${entry.key}'."
1413+
' Expected a value satisfying ${valuePattern.pattern}.',
1414+
);
1415+
}
1416+
}
1417+
}

pkgs/json_syntax_generator/lib/src/generator/helper_library.dart

Lines changed: 63 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,24 @@ class JsonReader {
197197
return result;
198198
}
199199
200+
List<String> validateMapStringElements<T extends Object?>(
201+
Map<String, String?> map_,
202+
String parentKey, {
203+
RegExp? valuePattern,
204+
}) {
205+
final result = <String>[];
206+
for (final MapEntry(:key, :value) in map_.entries) {
207+
if (value != null &&
208+
valuePattern != null &&
209+
!valuePattern.hasMatch(value)) {
210+
result.add(
211+
errorString(value, T, [parentKey, key], pattern: valuePattern),
212+
);
213+
}
214+
}
215+
return result;
216+
}
217+
200218
String string(String key, RegExp? pattern) {
201219
final value = get<String>(key);
202220
if (pattern != null && !pattern.hasMatch(value)) {
@@ -205,6 +223,15 @@ class JsonReader {
205223
return value;
206224
}
207225
226+
String? optionalString(String key, RegExp? pattern) {
227+
final value = get<String?>(key);
228+
if (value == null) return null;
229+
if (pattern != null && !pattern.hasMatch(value)) {
230+
throwFormatException(value, String, [key], pattern: pattern);
231+
}
232+
return value;
233+
}
234+
208235
List<String> validateString(String key, RegExp? pattern) {
209236
final errors = validate<String>(key);
210237
if (errors.isNotEmpty) {
@@ -219,6 +246,21 @@ class JsonReader {
219246
return [];
220247
}
221248
249+
List<String> validateOptionalString(String key, RegExp? pattern) {
250+
final errors = validate<String?>(key);
251+
if (errors.isNotEmpty) {
252+
return errors;
253+
}
254+
final value = get<String?>(key);
255+
if (value == null) return [];
256+
if (pattern != null && !pattern.hasMatch(value)) {
257+
return [
258+
errorString(value, String, [key], pattern: pattern),
259+
];
260+
}
261+
return [];
262+
}
263+
222264
List<String>? optionalStringList(String key) => optionalList<String>(key);
223265
224266
List<String> validateOptionalStringList(String key) =>
@@ -337,13 +379,11 @@ extension<K extends Comparable<K>, V extends Object?> on Map<K, V> {
337379
}
338380
}
339381
340-
void _checkArgumentMapKeys(
341-
Map<String, Object?>? map, {
342-
RegExp? keyPattern,
343-
}) {
382+
void _checkArgumentMapKeys(Map<String, Object?>? map, {RegExp? keyPattern}) {
344383
if (map == null) return;
384+
if (keyPattern == null) return;
345385
for (final key in map.keys) {
346-
if (keyPattern != null && !keyPattern.hasMatch(key)) {
386+
if (!keyPattern.hasMatch(key)) {
347387
throw ArgumentError.value(
348388
map,
349389
"Unexpected key '$key'."
@@ -352,4 +392,22 @@ void _checkArgumentMapKeys(
352392
}
353393
}
354394
}
395+
396+
void _checkArgumentMapStringElements(
397+
Map<String, String?>? map, {
398+
RegExp? valuePattern,
399+
}) {
400+
if (map == null) return;
401+
if (valuePattern == null) return;
402+
for (final entry in map.entries) {
403+
final value = entry.value;
404+
if (value != null && !valuePattern.hasMatch(value)) {
405+
throw ArgumentError.value(
406+
map,
407+
"Unexpected value '$value' under key '${entry.key}'."
408+
' Expected a value satisfying ${valuePattern.pattern}.',
409+
);
410+
}
411+
}
412+
}
355413
''';

0 commit comments

Comments
 (0)