resolveWebBaseOptions function

Future<Map<String, Object?>> resolveWebBaseOptions(
  1. BaseOptions options
)

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);
}