UNPKG

@np-dev/youtubei-js

Version:

A wrapper around YouTube's private API. Supports YouTube, YouTube Music, YouTube Kids and YouTube Studio (WIP).

31 lines 1.08 kB
import { createEventBuffer } from "./async/event-buffer.js"; import { defer } from "./async/observer.js"; export function getMethodImpl(handler) { return (messages, metadata) => { const headerPromise = defer(); const trailerPromise = defer(); const drainEnd = defer(); const eventBuffer = createEventBuffer({ onDrainEnd: drainEnd.resolve, }); const header = headerPromise.resolve; const send = eventBuffer.push; const end = (value) => { eventBuffer.finish(); trailerPromise.resolve(value); }; handler({ metadata, messages, drainEnd }, { header, send, end }); return [eventBuffer.drain(), headerPromise, trailerPromise]; }; } export function createServerImplBuilder() { const buffer = createEventBuffer(); return { register(methodDescriptor, handler) { buffer.push([methodDescriptor, getMethodImpl(handler)]); }, finish: buffer.finish, drain: buffer.drain, }; } //# sourceMappingURL=rpc.js.map