-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathinterfaces.js
208 lines (206 loc) · 6.75 KB
/
interfaces.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
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
export const interfaces = [
"AnalyserNode",
"AudioBuffer",
"AudioBufferSourceNode",
"AudioContext",
"AudioData",
"AudioDecoder",
"AudioDestinationNode",
"AudioEncoder",
"AudioFrame",
"AudioListener",
"AudioNode",
"AudioParam",
"AudioProcessingEvent",
"AudioScheduledSourceNode",
"AudioSinkInfo",
"AudioWorklet",
"AudioWorkletNode",
"BaseAudioContext",
"BiquadFilterNode",
"BrowserCaptureMediaStreamTrack",
"CanvasCaptureMediaStreamTrack",
"CaptureController",
"ChannelMergerNode",
"ChannelSplitterNode",
"CompressionStream",
"ConstantSourceNode",
"ConvolverNode",
"DecompressionStream",
"DelayNode",
"EncodedVideoChunk",
"EncodedAudioChunk",
"GainNode",
"HTMLAudioElement",
"HTMLMediaElement",
"HTMLModelElement",
"HTMLVideoElement",
"HTMLTrackElement",
"HTMLCanvasElement",
"ImageBitmap",
"ImageCapture",
"ImageData",
"ImageDecoder",
"ImageTrack",
"InputDeviceCapabilities",
"InputDeviceInfo",
"MediaCapabilities",
"MediaDevices",
"MediaDeviceInfo",
"MediaElementAudioSourceNode",
"MediaEncryptedEvent",
"MediaError",
"MediaMetadata",
"MediaRecorder",
"MediaSession",
"MediaSource",
"MediaStream",
"MediaStreamAudioDestinationNode",
"MediaStreamAudioSourceNode",
"MediaStreamTrack",
"MediaStreamTrackGenerator",
"MediaStreamTrackProcessor",
"MediaStreamTrackVideoStats",
"MediaStreamTrackAudioStats",
"MimeType",
"OscillatorNode",
"OffscreenCanvas",
"PannerNode",
"Permissions",
"PermissionStatus",
"ReadableStream",
"ReadableStreamDefaultController",
"ReadableStreamDefaultReader",
"RTCCertificate",
"RTCDataChannel",
"RTCDataChannelEvent",
"RTCDTMFSender",
"RTCDtlsTransport",
"RTCError",
"RTCEncodedAudioFrame",
"RTCEncodedVideoFrame",
"RTCIceCandidate",
"RTCIceTransport",
"RTCPeerConnection",
"RTCPeerConnectionIceEvent",
"RTCPeerConnectionIceErrorEvent",
"RTCRtpReceiver",
"RTCRtpSender",
"RTCRtpTransceiver",
"RTCSctpTransport",
"RTCSessionDescription",
"RTCStatsReport",
"RTCTrackEvent",
"StereoPannerNode",
"SourceBuffer",
"TextTrack",
"TextDecoder",
"TextDecoderStream",
"TextEncoder",
"TextEncoderStream",
"TransformStream",
"TransformStreamDefaultController",
"VideoDecoder",
"VideoEncoder",
"VideoFrame",
"WebTransport",
"WebTransportBidirectionalStream",
"WebTransportDatagramDuplexStream",
"WebTransportError",
"WritableStream",
"WritableStreamDefaultController",
"WritableStreamDefaultWriter",
]
export const prepareMermaidAPIDiagram = () => {
let model = "classDiagram\n"
model += "AudioContext <-- AudioNode\n"
model += "AudioContext <-- BaseAudioContext\n"
model += "AudioBuffer <-- BaseAudioContext\n"
model += "AudioBuffer <-- AudioBufferSourceNode\n"
model += "MediaDeviceInfo <-- MediaDevices\n"
model += "RTCRtpTransceiver <-- RTCPeerConnection\n"
model += "RTCRtpReceiver <-- RTCRtpTransceiver\n"
model += "RTCRtpSender <-- RTCRtpTransceiver\n"
model += "RTCDtlsTransport <-- RTCRtpSender\n"
model += "RTCDTMFSender <-- RTCRtpSender\n"
model += "RTCDtlsTransport <-- RTCRtpReceiver\n"
model += "RTCIceTransport <-- RTCDtlsTransport\n"
model += "RTCIceCandidate <-- RTCIceTransport\n"
model += "RTCStatsReport <-- RTCRtpReceiver\n"
model += "RTCStatsReport <-- RTCRtpSender\n"
model += "RTCStatsReport <-- RTCPeerConnection\n"
model += "RTCDataChannel <-- RTCPeerConnection\n"
model += "RTCSessionDescription <-- RTCPeerConnection\n"
model += "RTCCertificate <-- RTCPeerConnection\n"
model += "RTCSctpTransport <-- RTCPeerConnection\n"
model += "RTCDtlsTransport <-- RTCSctpTransport\n"
model += "OffscreenCanvas <-- HTMLCanvasElement\n"
model += "MediaStreamTrackProcessor <-- MediaStreamTrack\n"
model += "MediaStreamTrackGenerator <-- WritableStream\n"
model += "ReadableStream <-- MediaStreamTrackProcessor\n"
model += "ReadableStream <-- TransformStream\n"
model += "WritableStream <-- TransformStream\n"
model += "WritableStreamDefaultWriter <-- WritableStream\n"
model += "ReadableStreamDefaultReader <-- ReadableStream\n"
model += "VideoFrame <-- ReadableStreamDefaultReader\n"
model += "VideoFrame <-- WritableStreamDefaultWriter\n"
model += "ImageBitmap <-- VideoFrame\n"
model += "ImageData <-- ImageBitmap\n"
model += "OffscreenCanvas <-- ImageData\n"
model += "MediaElementAudioSourceNode <-- AudioContext\n"
model += "AudioBuffer <-- AudioContext\n"
model += "HTMLMediaElement <-- MediaElementAudioSourceNode\n"
model += "HTMLMediaElement <-- HTMLAudioElement\n"
model += "HTMLMediaElement <-- HTMLVideoElement\n"
model += "HTMLMediaElement <-- HTMLModelElement\n"
model += "HTMLMediaElement <-- HTMLCanvasElement\n"
model += "MediaStreamAudioDestinationNode <-- AudioContext\n"
model += "AudioDestinationNode <-- AudioContext\n"
model += "MediaStream <-- RTCPeerConnection\n"
model += "MediaStream <-- MediaDevices\n"
model += "MediaStream <-- MediaRecorder\n"
model += "MediaStream <-- HTMLCanvasElement\n"
model += "MediaStream <-- MediaStreamAudioSourceNode\n"
model += "MediaStream <-- MediaStreamAudioDestinationNode\n"
model += "MediaStream <-- RTCRtpSender\n"
model += "MediaStreamTrack <-- RTCPeerConnection\n"
model += "MediaStreamTrack <-- MediaStream\n"
model += "MediaStreamTrack <-- RTCRtpSender\n"
model += "MediaStreamTrack <-- RTCRtpReceiver\n"
model += "MediaStreamTrack <-- HTMLMediaElement\n"
model += "MediaStreamTrack <-- WritableStream\n"
model += "MediaStreamTrack <-- MediaStreamTrackGenerator\n"
model += "AudioNode <-- GainNode\n"
model += "AudioNode <-- AnalyserNode\n"
model += "AudioNode <-- PannerNode\n"
model += "AudioNode <-- StereoPannerNode\n"
model += "AudioNode <-- DelayNode\n"
model += "AudioNode <-- ConstantSourceNode\n"
model += "AudioNode <-- ConvolverNode\n"
model += "AudioNode <-- OscillatorNode\n"
model += "AudioNode <-- AudioSchedulerSourceNode\n"
model += "AudioNode <-- AudioBufferSourceNode\n"
model += "AudioNode <-- AudioScheduledSourceNode\n"
model += "AudioNode <-- ChannelSplitterNode\n"
model += "AudioNode <-- ChannelMergerNode\n"
model += "AudioNode <-- BiquadFilterNode\n"
model += "PannerNode <-- AudioListener\n"
model += "SourceBuffer <-- MediaSource\n"
model += "TextTrack <-- HTMLTrackElement\n"
model += "PermissionStatus <-- Permissions\n"
model += "AudioSchedulerSourceNode <-- AudioBufferSourceNode\n"
return model;
}
export const buildMermaidDiagram = (existingModel, nodes) => {
Object.keys(nodes).forEach(report => {
existingModel += `class ${report} {\n`;
const nbElt = nodes[report].length;
existingModel += `<<${nbElt}>>\n`
existingModel += `<<report>>\n`
nodes[report].forEach(elt => {
existingModel += `${elt}\n`;
})
existingModel += "}\n";
});
return existingModel;
}