| // 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. |
| |
| // @dart = 2.9 |
| |
| 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'); |
| } |
| var 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'); |
| } |
| var 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'); |
| } |
| var val = args[name]; |
| if (val != null && val is! int) throw ArgumentError('$name is not an int'); |
| return val as int; |
| } |