UNPKG

@tanstack/ai

Version:

Core TanStack AI library - Open source AI SDK

55 lines (54 loc) 1.12 kB
class ImmediateStrategy { shouldEmit(_chunk, _accumulated) { return true; } } class PunctuationStrategy { constructor() { this.punctuation = /[.,!?;:\n]/; } shouldEmit(chunk, _accumulated) { return this.punctuation.test(chunk); } } class BatchStrategy { constructor(batchSize = 5) { this.batchSize = batchSize; this.chunkCount = 0; } shouldEmit(_chunk, _accumulated) { this.chunkCount++; if (this.chunkCount >= this.batchSize) { this.chunkCount = 0; return true; } return false; } reset() { this.chunkCount = 0; } } class WordBoundaryStrategy { shouldEmit(chunk, _accumulated) { return /\s$/.test(chunk); } } class CompositeStrategy { constructor(strategies) { this.strategies = strategies; } shouldEmit(chunk, accumulated) { return this.strategies.some((s) => s.shouldEmit(chunk, accumulated)); } reset() { this.strategies.forEach((s) => s.reset?.()); } } export { BatchStrategy, CompositeStrategy, ImmediateStrategy, PunctuationStrategy, WordBoundaryStrategy }; //# sourceMappingURL=strategies.js.map