Feed Reader
store.js 19 lines
Files · 10
12345678910111213141516171819import manifest from "./manifest.json";
import ddl from "./schema.js";
import { createRecordStore } from "../../shared/record-store.js";
export const store = createRecordStore({
manifest,
ddl,
table: "items",
added: "item-received",
updated: "item-updated",
readQuery: "SELECT items.*, feeds.title AS feed_title, feeds.url AS feed_url FROM items LEFT JOIN feeds ON feeds.id=items.feed_id ORDER BY items.id DESC",
eventData: async (row) => {
const [feed] = row.feed_id == null ? [] : await window.lattice.db.query(
"SELECT title,url FROM feeds WHERE id=?", [row.feed_id]);
return { ...row, feed_id: row.feed_id ?? null, feed_title: feed?.title ?? null, feed_url: feed?.url ?? null };
},
sameItem: (item, row) => (item.feed_id ?? null) === row.feed_id &&
(item.feed_id != null || (item.source_url ?? null) === row.source_url) &&
(item.guid ? item.guid === row.guid : !!item.link && item.link === row.link),
});