blob: 1d2d53eaf15338f99e36ec36e4d264911672a8dc [file] [log] [blame]
// Copyright (c) 2025, 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.
//
// API docs from [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web).
// Attributions and copyright licensing by Mozilla Contributors is licensed
// under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/.
// Generated from Web IDL definitions.
// ignore_for_file: unintended_html_in_doc_comment
@JS()
library;
import 'dart:js_interop';
import 'streams.dart';
import 'webidl.dart';
extension type TextDecoderOptions._(JSObject _) implements JSObject {
external factory TextDecoderOptions({
bool fatal,
bool ignoreBOM,
});
external bool get fatal;
external set fatal(bool value);
external bool get ignoreBOM;
external set ignoreBOM(bool value);
}
extension type TextDecodeOptions._(JSObject _) implements JSObject {
external factory TextDecodeOptions({bool stream});
external bool get stream;
external set stream(bool value);
}
/// The **`TextDecoder`** interface represents a decoder for a specific text
/// encoding, such as `UTF-8`, `ISO-8859-2`, `KOI8-R`, `GBK`, etc. A decoder
/// takes a stream of bytes as input and emits a stream of code points.
///
/// ---
///
/// API documentation sourced from
/// [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/API/TextDecoder).
extension type TextDecoder._(JSObject _) implements JSObject {
external factory TextDecoder([
String label,
TextDecoderOptions options,
]);
/// The **`TextDecoder.decode()`** method returns a string containing text
/// decoded from the buffer passed as a parameter.
///
/// The decoding method is defined in the current [TextDecoder] object.
/// This includes the expected encoding of the data, and how decoding errors
/// are handled.
external String decode([
AllowSharedBufferSource input,
TextDecodeOptions options,
]);
/// The **`TextDecoder.encoding`** read-only property returns a string
/// containing the name of the decoding algorithm used by the specific decoder
/// object.
///
/// The encoding is set by the
/// [constructor](https://developer.mozilla.org/en-US/docs/Web/API/TextDecoder/TextDecoder)
/// `label` parameter, and defaults to `utf-8`.
external String get encoding;
/// The **`fatal`** read-only property of the [TextDecoder] interface is a
/// `Boolean` indicating whether the error mode is fatal.
///
/// If the property is `true`, then a decoder will throw a `TypeError` if it
/// encounters malformed data while decoding.
/// If `false`, the decoder will substitute the invalid data with the
/// replacement character `U+FFFD` (�).
/// The value of the property is set in the [`TextDecoder()`
/// constructor](https://developer.mozilla.org/en-US/docs/Web/API/TextDecoder/TextDecoder).
external bool get fatal;
/// The **`ignoreBOM`** read-only property of the [TextDecoder] interface is a
/// `Boolean` indicating whether the
/// [byte order mark](https://www.w3.org/International/questions/qa-byte-order-mark)
/// will be included in the output or skipped over.
external bool get ignoreBOM;
}
extension type TextEncoderEncodeIntoResult._(JSObject _) implements JSObject {
external factory TextEncoderEncodeIntoResult({
int read,
int written,
});
external int get read;
external set read(int value);
external int get written;
external set written(int value);
}
/// The **`TextEncoder`** interface takes a stream of code points as input and
/// emits a stream of UTF-8 bytes.
///
/// ---
///
/// API documentation sourced from
/// [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/API/TextEncoder).
extension type TextEncoder._(JSObject _) implements JSObject {
external factory TextEncoder();
/// The **`TextEncoder.encode()`** method takes a string as input, and returns
/// a `Uint8Array` containing the text given in parameters encoded with the
/// specific method for that [TextEncoder] object.
external JSUint8Array encode([String input]);
/// The **`TextEncoder.encodeInto()`** method takes a
/// string to encode and a destination `Uint8Array` to put resulting UTF-8
/// encoded text into, and returns a dictionary object indicating the
/// progress of the encoding.
/// This is potentially more performant than the older `encode()` method —
/// especially when the target buffer is a view into a Wasm heap.
external TextEncoderEncodeIntoResult encodeInto(
String source,
JSUint8Array destination,
);
/// The **`TextEncoder.encoding`** read-only property returns a string
/// containing the name of the encoding algorithm used by the specific
/// encoder.
///
/// It can only have the following value `utf-8`.
external String get encoding;
}
/// The **`TextDecoderStream`** interface of the [Encoding API] converts a
/// stream of text in a binary encoding, such as UTF-8 etc., to a stream of
/// strings.
/// It is the streaming equivalent of [TextDecoder].
///
/// ---
///
/// API documentation sourced from
/// [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/API/TextDecoderStream).
extension type TextDecoderStream._(JSObject _) implements JSObject {
external factory TextDecoderStream([
String label,
TextDecoderOptions options,
]);
/// The **`encoding`** read-only property of the [TextDecoderStream] interface
/// returns a string containing the name of the encoding algorithm used by the
/// specific decoder.
///
/// The encoding is set by the
/// [constructor](https://developer.mozilla.org/en-US/docs/Web/API/TextDecoderStream/TextDecoderStream)
/// `label` parameter, and defaults to `utf-8`.
external String get encoding;
/// The **`fatal`** read-only property of the [TextDecoderStream] interface is
/// a `boolean` indicating if the error mode of the `TextDecoderStream` object
/// is set to `fatal`.
///
/// If the property is `true` then a decoder will throw a `TypeError` if it
/// encounters malformed data while decoding.
/// If `false` the decoder will substitute the invalid data with the
/// replacement character `U+FFFD` (�).
/// The value of the property is set in the [`TextDecoderStream()`
/// constructor](https://developer.mozilla.org/en-US/docs/Web/API/TextDecoderStream/TextDecoderStream).
external bool get fatal;
/// The **`ignoreBOM`** read-only property of the [TextDecoderStream]
/// interface is a `Boolean` indicating whether the
/// [byte order mark](https://www.w3.org/International/questions/qa-byte-order-mark)
/// will be included in the output or skipped over.
external bool get ignoreBOM;
/// The **`readable`** read-only property of the [TextDecoderStream] interface
/// returns a [ReadableStream].
external ReadableStream get readable;
/// The **`writable`** read-only property of the [TextDecoderStream] interface
/// returns a [WritableStream].
external WritableStream get writable;
}
/// The **`TextEncoderStream`** interface of the [Encoding API] converts a
/// stream of strings into bytes in the UTF-8 encoding. It is the streaming
/// equivalent of [TextEncoder].
///
/// ---
///
/// API documentation sourced from
/// [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/API/TextEncoderStream).
extension type TextEncoderStream._(JSObject _) implements JSObject {
external factory TextEncoderStream();
/// The **`encoding`** read-only property of the [TextEncoderStream] interface
/// returns a
/// string containing the name of the encoding algorithm used by the current
/// `TextEncoderStream` object.
external String get encoding;
/// The **`readable`** read-only property of the [TextEncoderStream] interface
/// returns a [ReadableStream].
external ReadableStream get readable;
/// The **`writable`** read-only property of the [TextEncoderStream] interface
/// returns a [WritableStream].
external WritableStream get writable;
}