fromAsset static method

Future<ImmutableBuffer> fromAsset(
  1. String assetKey
)

Create a buffer from the asset with key assetKey.

Throws an Exception if the asset does not exist.

Implementation

static Future<ImmutableBuffer> fromAsset(String assetKey) {
  // The flutter tool converts all asset keys with spaces into URI
  // encoded paths (replacing ' ' with '%20', for example). We perform
  // the same encoding here so that users can load assets with the same
  // key they have written in the pubspec.
  final String encodedKey = Uri(path: Uri.encodeFull(assetKey)).path;
  final ImmutableBuffer instance = ImmutableBuffer._(0);
  return _futurize((_Callback<int> callback) {
    return instance._initFromAsset(encodedKey, callback);
  }).then((int length) {
    if (length == -1) {
      throw Exception('Asset not found');
    }
    return instance.._length = length;
  });
}