diff options
author | Steven Guerrero <stephenguerrero43@gmail.com> | 2020-11-26 07:50:08 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-11-26 13:50:08 +0100 |
commit | 9042fcc12e7774cdd0ca3a5d08918a07dae8102b (patch) | |
tree | 8b5ff11412aae9bb714e0bb0b9b0358db64a8657 /std/node/_stream/promises.ts | |
parent | 60e980c78180ee3b0a14d692307be275dc181c8d (diff) |
feat(std/node/stream): Add Duplex, Transform, Passthrough, pipeline, finished and promises (#7940)
Diffstat (limited to 'std/node/_stream/promises.ts')
-rw-r--r-- | std/node/_stream/promises.ts | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/std/node/_stream/promises.ts b/std/node/_stream/promises.ts new file mode 100644 index 000000000..1adf4ea3f --- /dev/null +++ b/std/node/_stream/promises.ts @@ -0,0 +1,42 @@ +// Copyright Node.js contributors. All rights reserved. MIT License. +import pl from "./pipeline.ts"; +import type { PipelineArguments } from "./pipeline.ts"; +import eos from "./end_of_stream.ts"; +import type { + FinishedOptions, + StreamImplementations as FinishedStreams, +} from "./end_of_stream.ts"; + +export function pipeline(...streams: PipelineArguments) { + return new Promise((resolve, reject) => { + pl( + ...streams, + (err, value) => { + if (err) { + reject(err); + } else { + resolve(value); + } + }, + ); + }); +} + +export function finished( + stream: FinishedStreams, + opts?: FinishedOptions, +) { + return new Promise<void>((resolve, reject) => { + eos( + stream, + opts || null, + (err) => { + if (err) { + reject(err); + } else { + resolve(); + } + }, + ); + }); +} |