blob: 758d1af60ca71de5ca9a42072d44ffb96558cc15 [file] [log] [blame]
// Copyright (c) 2024, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// Generated from Web IDL definitions.
import 'dart:js_interop';
import 'dom.dart';
import 'html.dart';
import 'streams.dart';
import 'webidl.dart';
typedef BlobPart = JSAny;
typedef EndingType = String;
@JS('Blob')
@staticInterop
class Blob {
external factory Blob([
JSArray blobParts,
BlobPropertyBag options,
]);
}
extension BlobExtension on Blob {
external Blob slice([
int start,
int end,
String contentType,
]);
external ReadableStream stream();
external JSPromise text();
external JSPromise arrayBuffer();
external int get size;
external String get type;
}
@JS()
@staticInterop
@anonymous
class BlobPropertyBag {
external factory BlobPropertyBag({
String type,
EndingType endings,
});
}
extension BlobPropertyBagExtension on BlobPropertyBag {
external set type(String value);
external String get type;
external set endings(EndingType value);
external EndingType get endings;
}
@JS('File')
@staticInterop
class File implements Blob {
external factory File(
JSArray fileBits,
String fileName, [
FilePropertyBag options,
]);
}
extension FileExtension on File {
external String get name;
external int get lastModified;
external String get webkitRelativePath;
}
@JS()
@staticInterop
@anonymous
class FilePropertyBag implements BlobPropertyBag {
external factory FilePropertyBag({int lastModified});
}
extension FilePropertyBagExtension on FilePropertyBag {
external set lastModified(int value);
external int get lastModified;
}
@JS('FileList')
@staticInterop
class FileList {}
extension FileListExtension on FileList {
external File? item(int index);
external int get length;
}
@JS('FileReader')
@staticInterop
class FileReader implements EventTarget {
external factory FileReader();
external static int get EMPTY;
external static int get LOADING;
external static int get DONE;
}
extension FileReaderExtension on FileReader {
external void readAsArrayBuffer(Blob blob);
external void readAsBinaryString(Blob blob);
external void readAsText(
Blob blob, [
String encoding,
]);
external void readAsDataURL(Blob blob);
external void abort();
external int get readyState;
external JSAny? get result;
external DOMException? get error;
external set onloadstart(EventHandler value);
external EventHandler get onloadstart;
external set onprogress(EventHandler value);
external EventHandler get onprogress;
external set onload(EventHandler value);
external EventHandler get onload;
external set onabort(EventHandler value);
external EventHandler get onabort;
external set onerror(EventHandler value);
external EventHandler get onerror;
external set onloadend(EventHandler value);
external EventHandler get onloadend;
}
@JS('FileReaderSync')
@staticInterop
class FileReaderSync {
external factory FileReaderSync();
}
extension FileReaderSyncExtension on FileReaderSync {
external JSArrayBuffer readAsArrayBuffer(Blob blob);
external String readAsBinaryString(Blob blob);
external String readAsText(
Blob blob, [
String encoding,
]);
external String readAsDataURL(Blob blob);
}