Files
kiss-translator/src/apis/history.js

40 lines
743 B
JavaScript

import { DEFAULT_CONTEXT_SIZE } from "../config";
const historyMap = new Map();
const MsgHistory = (maxSize = DEFAULT_CONTEXT_SIZE) => {
const messages = [];
const add = (...msgs) => {
messages.push(...msgs.filter(Boolean));
const extra = messages.length - maxSize;
if (extra > 0) {
messages.splice(0, extra);
}
};
const getAll = () => {
return [...messages];
};
const clear = () => {
messages.length = 0;
};
return {
add,
getAll,
clear,
};
};
export const getMsgHistory = (apiSlug, maxSize) => {
if (historyMap.has(apiSlug)) {
return historyMap.get(apiSlug);
}
const msgHistory = MsgHistory(maxSize);
historyMap.set(apiSlug, msgHistory);
return msgHistory;
};