@tanstack/ai
Version:
Core TanStack AI library - Open source AI SDK
55 lines (54 loc) • 1.12 kB
JavaScript
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