rivet-json-processor-plugin
Version:
A Rivet plugin to filter and count JSON items.
44 lines (38 loc) • 1.27 kB
text/typescript
interface Item {
NOME: string;
REFERENCIA: string;
}
const specificItems: Item[] = [
{ NOME: "Mini Kendo Light - Linear", REFERENCIA: "506" },
{ NOME: "Mini Kendo Lighting", REFERENCIA: "506" },
];
export default function (Rivet: any) {
return {
processJSON(jsonString: string): string {
try {
const data: Item[] = JSON.parse(jsonString);
const filteredData = data.filter((item) =>
specificItems.some(
(specific: Item) =>
specific.NOME === item.NOME &&
specific.REFERENCIA === item.REFERENCIA
)
);
const counts: Record<string, number> = {};
filteredData.forEach((item) => {
const key = `${item.NOME} (${item.REFERENCIA})`;
counts[key] = (counts[key] || 0) + 1;
});
const result = Object.entries(counts)
.map(([key, count]) => `${key}: ${count}`)
.join("\n");
return `Filtered Results:\n${result}`;
} catch (error) {
if (error instanceof Error) {
return `Error processing JSON: ${error.message}`;
}
return `An unknown error occurred.`;
}
},
};
}