XrayJsonConfig constructor
XrayJsonConfig({
- required String url,
Implementation
XrayJsonConfig({required super.url}) {
final decoded = _decodeJsonConfig(url);
late final Map<String, dynamic> decodedConfig;
if (decoded is Map<String, dynamic>) {
decodedConfig = decoded;
} else if (decoded is List<dynamic> &&
decoded.isNotEmpty &&
decoded.first is Map<String, dynamic>) {
decodedConfig = decoded.first as Map<String, dynamic>;
} else {
throw ArgumentError('JSON config is invalid');
}
const XrayConfigValidator().validate(decodedConfig);
rawConfig = sanitizeXrayJson(decodedConfig) as Map<String, dynamic>;
}