UNPKG

adk-typescript

Version:

TypeScript port of Google's Agent Development Kit (ADK)

63 lines (62 loc) 1.47 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.LiveRequestQueue = void 0; /** * A queue for managing live requests in streaming sessions. */ class LiveRequestQueue { constructor() { this.queue = []; this.resolvers = []; } /** * Adds a request to close the connection to the queue. */ sendClose() { this.enqueue({ close: true }); } /** * Adds a blob request to the queue. * * @param blob The binary blob data */ sendBlob(blob) { this.enqueue({ blob }); } /** * Adds a content request to the queue. * * @param content The content data */ sendContent(content) { this.enqueue({ content }); } /** * Gets the next request from the queue. * * @returns A promise that resolves to the next request */ async get() { if (this.queue.length > 0) { return this.queue.shift(); } return new Promise((resolve) => { this.resolvers.push(resolve); }); } /** * Adds a request to the queue. * * @param request The request to add */ enqueue(request) { if (this.resolvers.length > 0) { const resolve = this.resolvers.shift(); resolve(request); } else { this.queue.push(request); } } } exports.LiveRequestQueue = LiveRequestQueue;