parseSkinContractJson function
Parses contract JSON text into a SkinContract.
Implementation
SkinContract parseSkinContractJson(String source) {
final dynamic decoded;
try {
decoded = jsonDecode(source);
} on FormatException catch (error) {
throw SkinContractParseException(
'skin contract: invalid JSON: ${error.message}',
);
}
if (decoded is! Map<String, dynamic>) {
throw SkinContractParseException(
'skin contract: top level must be a JSON object',
);
}
return parseSkinContract(decoded);
}