add StreamUtils
This commit is contained in:
parent
2b82fe2b70
commit
ed92e332ab
2 changed files with 40 additions and 0 deletions
|
@ -2,8 +2,11 @@ export { AudioFilters } from "./utils/AudioFilters";
|
||||||
export { ExtractorModel } from "./Structures/ExtractorModel";
|
export { ExtractorModel } from "./Structures/ExtractorModel";
|
||||||
export { Playlist } from "./Structures/Playlist";
|
export { Playlist } from "./Structures/Playlist";
|
||||||
export { Player } from "./Player";
|
export { Player } from "./Player";
|
||||||
|
export { QueryResolver } from "./utils/QueryResolver";
|
||||||
export { Queue } from "./Structures/Queue";
|
export { Queue } from "./Structures/Queue";
|
||||||
|
export { StreamUtils } from "./utils/StreamUtils";
|
||||||
export { Track } from "./Structures/Track";
|
export { Track } from "./Structures/Track";
|
||||||
|
export { Util } from "./utils/Util";
|
||||||
export { VoiceUtils } from "./VoiceInterface/VoiceUtils";
|
export { VoiceUtils } from "./VoiceInterface/VoiceUtils";
|
||||||
export { VoiceEvents, StreamDispatcher } from "./VoiceInterface/BasicStreamDispatcher";
|
export { VoiceEvents, StreamDispatcher } from "./VoiceInterface/BasicStreamDispatcher";
|
||||||
export { VoiceAdapterCreator } from "./VoiceInterface/AdapterCreator";
|
export { VoiceAdapterCreator } from "./VoiceInterface/AdapterCreator";
|
||||||
|
|
37
src/utils/StreamUtils.ts
Normal file
37
src/utils/StreamUtils.ts
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
import { Duplex, Readable, PassThrough } from "stream";
|
||||||
|
|
||||||
|
class StreamUtils {
|
||||||
|
/**
|
||||||
|
* Stream utils
|
||||||
|
*/
|
||||||
|
constructor() {
|
||||||
|
throw new Error("Cannot instantiate static class");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Can be used to re-create used streams
|
||||||
|
* @param {Readable|Duplex} stream The used stream
|
||||||
|
* @returns {Readable}
|
||||||
|
*/
|
||||||
|
static clone(stream: Readable | Duplex): Readable {
|
||||||
|
const passed = stream.pipe(new PassThrough());
|
||||||
|
return passed;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts stream to buffer
|
||||||
|
* @param {Readable|Duplex} stream The stream
|
||||||
|
* @returns {Promise<Buffer>}
|
||||||
|
*/
|
||||||
|
static toBuffer(stream: Readable | Duplex): Promise<Buffer> {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
const chunks: Buffer[] = [];
|
||||||
|
|
||||||
|
stream.on("data", (chunk) => chunks.push(chunk));
|
||||||
|
stream.on("end", () => resolve(Buffer.concat(chunks)));
|
||||||
|
stream.on("error", reject);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export { StreamUtils };
|
Loading…
Reference in a new issue