ditto/scripts/db-export.ts
2024-08-23 16:25:34 +05:30

43 lines
981 B
TypeScript

import { Storages } from '@/storages.ts';
import { Command } from 'commander';
const store = await Storages.db();
interface ExportFilter {
authors: string[];
}
if (import.meta.main) {
const exporter = new Command()
.name('db:export')
.description('Export the specified set of events from the Ditto database.')
.version('0.1.0')
.showHelpAfterError();
exporter
// .option('')
.action(async (args: ExportFilter) => {
console.warn('Exporting events...');
let count = 0;
for await (const msg of store.req([{}])) {
if (msg[0] === 'EOSE') {
break;
}
if (msg[0] === 'EVENT') {
console.log(JSON.stringify(msg[2]));
count++;
}
if (msg[0] === 'CLOSED') {
console.error('Database closed unexpectedly');
break;
}
}
console.warn(`Exported ${count} events`);
});
exporter.parse(Deno.args, { from: 'user' });
}
Deno.exit();