forked from mysticatea/eslint-plugin-node
-
-
Notifications
You must be signed in to change notification settings - Fork 33
/
stream.js
119 lines (103 loc) · 4.16 KB
/
stream.js
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
"use strict"
const { READ } = require("@eslint-community/eslint-utils")
// TODO: https://nodejs.org/docs/latest/api/webstreams.html
/** @type {import('../types.js').SupportVersionTraceMap} */
const Readable = {
[READ]: { supported: ["0.9.4"] },
from: { [READ]: { supported: ["12.3.0", "10.17.0"] } },
isDisturbed: { [READ]: { experimental: ["16.8.0"] } },
fromWeb: { [READ]: { experimental: ["17.0.0"] } },
toWeb: { [READ]: { experimental: ["17.0.0"] } },
}
/** @type {import('../types.js').SupportVersionTraceMap} */
const Writable = {
[READ]: { supported: ["0.9.4"] },
fromWeb: { [READ]: { experimental: ["17.0.0"] } },
toWeb: { [READ]: { experimental: ["17.0.0"] } },
}
/** @type {import('../types.js').SupportVersionTraceMap} */
const Duplex = {
[READ]: { supported: ["0.9.4"] },
from: { [READ]: { experimental: ["16.8.0"] } },
fromWeb: { [READ]: { experimental: ["17.0.0"] } },
toWeb: { [READ]: { experimental: ["17.0.0"] } },
}
const Transform = Duplex
/** @type {import('../types.js').SupportVersionTraceMap} */
const StreamPromise = {
pipeline: { [READ]: { supported: ["15.0.0"] } },
finished: { [READ]: { supported: ["15.0.0"] } },
}
/** @type {import('../types.js').SupportVersionTraceMap} */
const Stream = {
promises: {
[READ]: { supported: ["15.0.0"] },
...StreamPromise,
},
finished: { [READ]: { supported: ["10.0.0"] } },
pipeline: { [READ]: { supported: ["10.0.0"] } },
compose: { [READ]: { supported: ["16.9.0"] } },
Readable,
Writable,
Duplex,
Transform,
isErrored: { [READ]: { experimental: ["17.3.0", "16.14.0"] } },
isReadable: { [READ]: { experimental: ["17.4.0", "16.14.0"] } },
addAbortSignal: { [READ]: { supported: ["15.4.0"] } },
getDefaultHighWaterMark: { [READ]: { supported: ["19.9.0", "18.17.0"] } },
setDefaultHighWaterMark: { [READ]: { supported: ["19.9.0", "18.17.0"] } },
}
/** @type {import('../types.js').SupportVersionTraceMap} */
const StreamWeb = {
ReadableStream: {
[READ]: { supported: ["16.5.0"] },
from: { [READ]: { supported: ["20.6.0"] } },
},
ReadableStreamDefaultReader: { [READ]: { supported: ["16.5.0"] } },
ReadableStreamBYOBReader: { [READ]: { supported: ["16.5.0"] } },
ReadableStreamDefaultController: { [READ]: { supported: ["16.5.0"] } },
ReadableByteStreamController: { [READ]: { supported: ["16.5.0"] } },
ReadableStreamBYOBRequest: { [READ]: { supported: ["16.5.0"] } },
WritableStream: { [READ]: { supported: ["16.5.0"] } },
WritableStreamDefaultWriter: { [READ]: { supported: ["16.5.0"] } },
WritableStreamDefaultController: { [READ]: { supported: ["16.5.0"] } },
TransformStream: { [READ]: { supported: ["16.5.0"] } },
TransformStreamDefaultController: { [READ]: { supported: ["16.5.0"] } },
ByteLengthQueuingStrategy: { [READ]: { supported: ["16.5.0"] } },
CountQueuingStrategy: { [READ]: { supported: ["16.5.0"] } },
TextEncoderStream: { [READ]: { supported: ["16.6.0"] } },
TextDecoderStream: { [READ]: { supported: ["16.6.0"] } },
CompressionStream: { [READ]: { supported: ["17.0.0"] } },
DecompressionStream: { [READ]: { supported: ["17.0.0"] } },
}
const StreamConsumer = {
[READ]: { supported: ["16.7.0"] },
arrayBuffer: { [READ]: { supported: ["16.7.0"] } },
blob: { [READ]: { supported: ["16.7.0"] } },
buffer: { [READ]: { supported: ["16.7.0"] } },
json: { [READ]: { supported: ["16.7.0"] } },
text: { [READ]: { supported: ["16.7.0"] } },
}
/** @type {import('../types.js').SupportVersionTraceMap} */
module.exports = {
stream: {
[READ]: { supported: ["0.9.4"] },
...Stream,
},
"node:stream": {
[READ]: { supported: ["14.13.1", "12.20.0"] },
...Stream,
},
"stream/promises": StreamPromise,
"node:stream/promises": StreamPromise,
"stream/web": {
[READ]: { experimental: ["16.5.0"], supported: ["21.0.0"] },
...StreamWeb,
},
"node:stream/web": {
[READ]: { experimental: ["16.5.0"], supported: ["21.0.0"] },
...StreamWeb,
},
"stream/consumers": { ...StreamConsumer },
"node:stream/consumers": { ...StreamConsumer },
}