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),
});