blob: 31f414a1b4c24663f0a1c75784b622804495c1e2 [file]
// Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
dynamic toJsonable(dynamic obj) {
if (obj is String ||
obj is int ||
obj is bool ||
obj is Map<dynamic, dynamic> ||
obj is List<dynamic> ||
obj == null) {
return obj;
}
return '$obj';
}
String? getStringArg(
Map<String, dynamic> args,
String name, {
bool required = false,
}) {
if (required && !args.containsKey(name)) {
throw ArgumentError('$name is required');
}
final val = args[name];
if (val != null && val is! String) {
throw ArgumentError('$name is not a String');
}
return val as String?;
}
bool? getBoolArg(
Map<String, dynamic> args,
String name, {
bool required = false,
}) {
if (required && !args.containsKey(name)) {
throw ArgumentError('$name is required');
}
final val = args[name];
if (val != null && val is! bool) throw ArgumentError('$name is not a bool');
return val as bool?;
}
int? getIntArg(
Map<String, dynamic> args,
String name, {
bool required = false,
}) {
if (required && !args.containsKey(name)) {
throw ArgumentError('$name is required');
}
final val = args[name];
if (val != null && val is! int) throw ArgumentError('$name is not an int');
return val as int?;
}