UNPKG

auron

Version:

Interact with your ATProto labeler from your terminal

40 lines (39 loc) 1.89 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.saveEvents = exports.fetchEvents = void 0; const events_1 = __importDefault(require("events")); const loader_1 = require("../utils/loader"); const atproto_1 = require("../api/atproto"); const db_1 = require("../services/db"); const common_1 = require("@atproto/common"); const transformers_1 = require("../services/event/transformers"); const fetchEvents = async (options) => { const emitter = new events_1.default(); const allEvents = await (0, loader_1.withLoader)(`Fetching events...`, async (updateMessage) => { emitter.on("update", ({ nextCursor, eventCount, maxCount }) => { updateMessage(`Fetched page with cursor: ${nextCursor}, total events: ${eventCount} out of ${maxCount}`); }); const { cursor, events } = await (0, atproto_1.getEvents)(options, emitter); updateMessage(`Fetched ${events.length} queue items. Cursor: ${cursor}`); return events; }); return allEvents; }; exports.fetchEvents = fetchEvents; const saveEvents = async (events) => { await (0, loader_1.withLoader)(`Storing ${events.length} events...`, async (updateMessage) => { if (events.length === 0) { updateMessage("No events to store"); throw new Error("No events to store"); } for (const chunk of (0, common_1.chunkArray)(events, 500)) { await db_1.database.insertEvents(chunk.map(transformers_1.transformModEventToRow)); updateMessage(`Stored ${chunk.length} out of ${events.length} events in local database`); } updateMessage(`Stored ${events.length} events in local database`); }); }; exports.saveEvents = saveEvents;