debug: pool, db/events
This commit is contained in:
parent
52d39c7a56
commit
e121a8805e
|
@ -1,5 +1,5 @@
|
||||||
import { db, type DittoDB } from '@/db.ts';
|
import { db, type DittoDB } from '@/db.ts';
|
||||||
import { type Event, type SelectQueryBuilder } from '@/deps.ts';
|
import { Debug, type Event, type SelectQueryBuilder } from '@/deps.ts';
|
||||||
import { isParameterizedReplaceableKind } from '@/kinds.ts';
|
import { isParameterizedReplaceableKind } from '@/kinds.ts';
|
||||||
import { jsonMetaContentSchema } from '@/schemas/nostr.ts';
|
import { jsonMetaContentSchema } from '@/schemas/nostr.ts';
|
||||||
import { EventData } from '@/types.ts';
|
import { EventData } from '@/types.ts';
|
||||||
|
@ -7,6 +7,8 @@ import { isNostrId, isURL } from '@/utils.ts';
|
||||||
|
|
||||||
import type { DittoFilter, GetFiltersOpts } from '@/filter.ts';
|
import type { DittoFilter, GetFiltersOpts } from '@/filter.ts';
|
||||||
|
|
||||||
|
const debug = Debug('ditto:db:events');
|
||||||
|
|
||||||
/** Function to decide whether or not to index a tag. */
|
/** Function to decide whether or not to index a tag. */
|
||||||
type TagCondition = ({ event, count, value }: {
|
type TagCondition = ({ event, count, value }: {
|
||||||
event: Event;
|
event: Event;
|
||||||
|
@ -28,6 +30,8 @@ const tagConditions: Record<string, TagCondition> = {
|
||||||
|
|
||||||
/** Insert an event (and its tags) into the database. */
|
/** Insert an event (and its tags) into the database. */
|
||||||
function insertEvent(event: Event, data: EventData): Promise<void> {
|
function insertEvent(event: Event, data: EventData): Promise<void> {
|
||||||
|
debug('insertEvent', event);
|
||||||
|
|
||||||
return db.transaction().execute(async (trx) => {
|
return db.transaction().execute(async (trx) => {
|
||||||
/** Insert the event into the database. */
|
/** Insert the event into the database. */
|
||||||
async function addEvent() {
|
async function addEvent() {
|
||||||
|
@ -224,6 +228,7 @@ async function getFilters<K extends number>(
|
||||||
opts: GetFiltersOpts = {},
|
opts: GetFiltersOpts = {},
|
||||||
): Promise<DittoEvent<K>[]> {
|
): Promise<DittoEvent<K>[]> {
|
||||||
if (!filters.length) return Promise.resolve([]);
|
if (!filters.length) return Promise.resolve([]);
|
||||||
|
debug('getFilters', JSON.stringify(filters));
|
||||||
let query = getFiltersQuery(filters);
|
let query = getFiltersQuery(filters);
|
||||||
|
|
||||||
if (typeof opts.limit === 'number') {
|
if (typeof opts.limit === 'number') {
|
||||||
|
@ -276,6 +281,7 @@ async function getFilters<K extends number>(
|
||||||
/** Delete events based on filters from the database. */
|
/** Delete events based on filters from the database. */
|
||||||
function deleteFilters<K extends number>(filters: DittoFilter<K>[]) {
|
function deleteFilters<K extends number>(filters: DittoFilter<K>[]) {
|
||||||
if (!filters.length) return Promise.resolve([]);
|
if (!filters.length) return Promise.resolve([]);
|
||||||
|
debug('deleteFilters', JSON.stringify(filters));
|
||||||
|
|
||||||
return db.transaction().execute(async (trx) => {
|
return db.transaction().execute(async (trx) => {
|
||||||
const query = getFiltersQuery(filters).clearSelect().select('id');
|
const query = getFiltersQuery(filters).clearSelect().select('id');
|
||||||
|
@ -293,6 +299,7 @@ function deleteFilters<K extends number>(filters: DittoFilter<K>[]) {
|
||||||
/** Get number of events that would be returned by filters. */
|
/** Get number of events that would be returned by filters. */
|
||||||
async function countFilters<K extends number>(filters: DittoFilter<K>[]): Promise<number> {
|
async function countFilters<K extends number>(filters: DittoFilter<K>[]): Promise<number> {
|
||||||
if (!filters.length) return Promise.resolve(0);
|
if (!filters.length) return Promise.resolve(0);
|
||||||
|
debug('countFilters', JSON.stringify(filters));
|
||||||
const query = getFiltersQuery(filters);
|
const query = getFiltersQuery(filters);
|
||||||
|
|
||||||
const [{ count }] = await query
|
const [{ count }] = await query
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
import { getActiveRelays } from '@/db/relays.ts';
|
import { getActiveRelays } from '@/db/relays.ts';
|
||||||
import { type Event, RelayPool } from '@/deps.ts';
|
import { Debug, type Event, RelayPool } from '@/deps.ts';
|
||||||
|
|
||||||
|
const debug = Debug('ditto:pool');
|
||||||
|
|
||||||
const activeRelays = await getActiveRelays();
|
const activeRelays = await getActiveRelays();
|
||||||
|
|
||||||
|
@ -14,6 +16,7 @@ const pool = new RelayPool(activeRelays, {
|
||||||
|
|
||||||
/** Publish an event to the given relays, or the entire pool. */
|
/** Publish an event to the given relays, or the entire pool. */
|
||||||
function publish(event: Event, relays: string[] = activeRelays) {
|
function publish(event: Event, relays: string[] = activeRelays) {
|
||||||
|
debug('publish', event);
|
||||||
return pool.publish(event, relays);
|
return pool.publish(event, relays);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue