Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 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 | 1x 3x 3x 3x 3x 3x | import type { Logger } from '@metamask/logger';
import {
ifDefined,
withAbort,
gatherStreamingResponse,
} from '@ocap/kernel-agents/utils';
import type { StatementMessage } from './messages.ts';
import { makeSampleCollector } from './sample-collector.ts';
export const makeReader =
({ logger }: { logger?: Logger }) =>
async ({
stream,
abort,
stop,
}: {
stream: AsyncIterable<{ response: string }>;
abort: () => Promise<void>;
stop: string;
}) => {
const sampleLogger = logger?.subLogger({ tags: ['sample'] });
const gatherLogger = logger?.subLogger({ tags: ['gather'] });
return await withAbort(
abort,
async (): Promise<StatementMessage> =>
await gatherStreamingResponse({
stream,
parse: makeSampleCollector({
stop,
...ifDefined({ logger: sampleLogger }),
}),
...ifDefined({ logger: gatherLogger }),
}),
);
};
|