resolveWebBaseOptions function
Resolves model options and verifies checksum-pinned remote models in Dart.
Implementation
Future<Map<String, Object?>> resolveWebBaseOptions(BaseOptions options) async {
if (options.modelAsset case ModelAssetUri(
uri: final Uri uri,
sha256: final String? expected,
) when expected != null) {
final Uint8List bytes = await _downloadWebBytes(uri);
final String actual = sha256.convert(bytes).toString();
if (actual != expected) {
throw MpException(
MpStatus.dataLoss,
'Model checksum mismatch for $uri: expected $expected, received $actual.',
);
}
return webBaseOptions(
BaseOptions(
modelAsset: ModelAsset.bytes(bytes, name: uri.pathSegments.last),
delegate: options.delegate,
liteRtOptions: options.liteRtOptions,
),
);
}
return webBaseOptions(options);
}