summaryrefslogtreecommitdiff
path: root/includes/external/addressbook/node_modules/htmlparser2/lib/esm/WritableStream.js
diff options
context:
space:
mode:
Diffstat (limited to 'includes/external/addressbook/node_modules/htmlparser2/lib/esm/WritableStream.js')
-rw-r--r--includes/external/addressbook/node_modules/htmlparser2/lib/esm/WritableStream.js32
1 files changed, 32 insertions, 0 deletions
diff --git a/includes/external/addressbook/node_modules/htmlparser2/lib/esm/WritableStream.js b/includes/external/addressbook/node_modules/htmlparser2/lib/esm/WritableStream.js
new file mode 100644
index 0000000..bf6093e
--- /dev/null
+++ b/includes/external/addressbook/node_modules/htmlparser2/lib/esm/WritableStream.js
@@ -0,0 +1,32 @@
+import { Parser } from "./Parser.js";
+/*
+ * NOTE: If either of these two imports produces a type error,
+ * please update your @types/node dependency!
+ */
+import { Writable } from "node:stream";
+import { StringDecoder } from "node:string_decoder";
+// Following the example in https://nodejs.org/api/stream.html#stream_decoding_buffers_in_a_writable_stream
+function isBuffer(_chunk, encoding) {
+ return encoding === "buffer";
+}
+/**
+ * WritableStream makes the `Parser` interface available as a NodeJS stream.
+ *
+ * @see Parser
+ */
+export class WritableStream extends Writable {
+ constructor(cbs, options) {
+ super({ decodeStrings: false });
+ this._decoder = new StringDecoder();
+ this._parser = new Parser(cbs, options);
+ }
+ _write(chunk, encoding, callback) {
+ this._parser.write(isBuffer(chunk, encoding) ? this._decoder.write(chunk) : chunk);
+ callback();
+ }
+ _final(callback) {
+ this._parser.end(this._decoder.end());
+ callback();
+ }
+}
+//# sourceMappingURL=WritableStream.js.map \ No newline at end of file