deno.land / std@0.91.0 / node / _stream / destroy.ts

نووسراو ببینە
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// Copyright Node.js contributors. All rights reserved. MIT License.import type Duplex from "./duplex.ts";import type Readable from "./readable.ts";import type Stream from "./stream.ts";import type Writable from "./writable.ts";
//This whole module acts as a 'normalizer'//Idea behind it is you can pass any kind of streams and functions will execute anyways
//TODO(Soremwar)//Should be any implementation of stream//This is a guard to check executed methods exist inside the implementationtype StreamImplementations = Duplex | Readable | Writable;
// TODO(Soremwar)// Bring back once requests are implemented// function isRequest(stream: any) {// return stream && stream.setHeader && typeof stream.abort === "function";// }
export function destroyer(stream: Stream, err?: Error | null) { // TODO(Soremwar) // Bring back once requests are implemented // if (isRequest(stream)) return stream.abort(); // if (isRequest(stream.req)) return stream.req.abort(); if ( typeof (stream as StreamImplementations).destroy === "function" ) { return (stream as StreamImplementations).destroy(err); } // A test of async iterator mocks an upcoming implementation of stream // his is casted to any in the meanwhile // deno-lint-ignore no-explicit-any if (typeof (stream as any).close === "function") { // deno-lint-ignore no-explicit-any return (stream as any).close(); }}
std

Version Info

Tagged at
3 years ago

External Dependencies

No external dependencies 🎉