import { fillArray } from "https://esm.town/v/kajgod/fillArray";
interface IDetails {
title: string;
price: number;
url: string;
}
interface INjuskaloData {
keywords: string[];
registeredTitles: string[];
sentData: IDetails[];
}
export const njuskaloCreateDataWithInterfaces = (njuskaloData: INjuskaloData) => {
let data: INjuskaloData;
const emptyDetails: IDetails = {
title: "",
price: 0,
url: "",
};
const fillEmpty = (len: number) => ({
keywords: fillArray("", len),
registeredTitles: fillArray("", len),
sentData: fillArray(emptyDetails, len),
});
const newKeywords = (keywords: string[]) => {
const data = njuskaloData as INjuskaloData;
const len = keywords?.length || 0;
const newKeywords: string[] = keywords;
const newRegisteredTitles: string[] = fillArray("", len);
const newSentData: IDetails[] = fillArray(
emptyDetails,
len,
);
keywords?.forEach((w) => {
const index = data?.keywords?.indexOf(w) || -1;
if (index >= 0) {
newRegisteredTitles[index] = data.registeredTitles[index];
newSentData[index] = data.sentData[index];
}
});
data.keywords = newKeywords;
data.registeredTitles = newRegisteredTitles;
data.sentData = newSentData;
return {
data,
len,
};
};
return {
data,
emptyDetails,
fillEmpty,
newKeywords,
defaultData: njuskaloData as INjuskaloData,
};
};