XrayJsonConfig constructor

XrayJsonConfig({
  1. required String url,
})

Implementation

XrayJsonConfig({required super.url}) {
  final decoded = _decodeJsonConfig(url);
  if (decoded is Map<String, dynamic>) {
    rawConfig = decoded;
  } else if (decoded is List<dynamic> &&
      decoded.isNotEmpty &&
      decoded.first is Map<String, dynamic>) {
    rawConfig = decoded.first as Map<String, dynamic>;
  } else {
    throw ArgumentError('JSON config is invalid');
  }

  const XrayConfigValidator().validate(rawConfig);
}