summaryrefslogtreecommitdiffstats
path: root/test/utils/stream.js
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-21 20:56:19 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-21 20:56:19 +0000
commit0b6210cd37b68b94252cb798598b12974a20e1c1 (patch)
treee371686554a877842d95aa94f100bee552ff2a8e /test/utils/stream.js
parentInitial commit. (diff)
downloadnode-undici-0b6210cd37b68b94252cb798598b12974a20e1c1.tar.xz
node-undici-0b6210cd37b68b94252cb798598b12974a20e1c1.zip
Adding upstream version 5.28.2+dfsg1+~cs23.11.12.3.upstream/5.28.2+dfsg1+_cs23.11.12.3upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'test/utils/stream.js')
-rw-r--r--test/utils/stream.js48
1 files changed, 48 insertions, 0 deletions
diff --git a/test/utils/stream.js b/test/utils/stream.js
new file mode 100644
index 0000000..b78ff5c
--- /dev/null
+++ b/test/utils/stream.js
@@ -0,0 +1,48 @@
+'use strict'
+
+const { Readable, Writable } = require('stream')
+
+let ReadableStream
+
+function createReadable (data) {
+ return new Readable({
+ read () {
+ this.push(Buffer.from(data))
+ this.push(null)
+ }
+ })
+}
+
+function createWritable (target) {
+ return new Writable({
+ write (chunk, _, callback) {
+ target.push(chunk.toString())
+ callback()
+ },
+ final (callback) {
+ callback()
+ }
+ })
+}
+
+class Source {
+ constructor (data) {
+ this.data = data
+ }
+
+ async start (controller) {
+ this.controller = controller
+ }
+
+ async pull (controller) {
+ controller.enqueue(this.data)
+ controller.close()
+ }
+}
+
+function createReadableStream (data) {
+ ReadableStream = require('stream/web').ReadableStream
+ return new ReadableStream(new Source(data))
+}
+
+module.exports = { createReadableStream, createReadable, createWritable }