tmp
This commit is contained in:
56
packages/system/src/cache/db.ts
vendored
56
packages/system/src/cache/db.ts
vendored
@ -6,37 +6,37 @@ const NAME = "snort-system";
|
||||
const VERSION = 2;
|
||||
|
||||
const STORES = {
|
||||
users: "++pubkey, name, display_name, picture, nip05, npub",
|
||||
relayMetrics: "++addr",
|
||||
userRelays: "++pubkey",
|
||||
events: "++id, pubkey, created_at"
|
||||
users: "++pubkey, name, display_name, picture, nip05, npub",
|
||||
relayMetrics: "++addr",
|
||||
userRelays: "++pubkey",
|
||||
events: "++id, pubkey, created_at",
|
||||
};
|
||||
|
||||
export class SnortSystemDb extends Dexie {
|
||||
ready = false;
|
||||
users!: Table<MetadataCache>;
|
||||
relayMetrics!: Table<RelayMetrics>;
|
||||
userRelays!: Table<UsersRelays>;
|
||||
events!: Table<NostrEvent>;
|
||||
dms!: Table<NostrEvent>;
|
||||
ready = false;
|
||||
users!: Table<MetadataCache>;
|
||||
relayMetrics!: Table<RelayMetrics>;
|
||||
userRelays!: Table<UsersRelays>;
|
||||
events!: Table<NostrEvent>;
|
||||
dms!: Table<NostrEvent>;
|
||||
|
||||
constructor() {
|
||||
super(NAME);
|
||||
this.version(VERSION).stores(STORES);
|
||||
}
|
||||
constructor() {
|
||||
super(NAME);
|
||||
this.version(VERSION).stores(STORES);
|
||||
}
|
||||
|
||||
isAvailable() {
|
||||
if ("indexedDB" in window) {
|
||||
return new Promise<boolean>(resolve => {
|
||||
const req = window.indexedDB.open("dummy", 1);
|
||||
req.onsuccess = () => {
|
||||
resolve(true);
|
||||
};
|
||||
req.onerror = () => {
|
||||
resolve(false);
|
||||
};
|
||||
});
|
||||
}
|
||||
return Promise.resolve(false);
|
||||
isAvailable() {
|
||||
if ("indexedDB" in window) {
|
||||
return new Promise<boolean>(resolve => {
|
||||
const req = window.indexedDB.open("dummy", 1);
|
||||
req.onsuccess = () => {
|
||||
resolve(true);
|
||||
};
|
||||
req.onerror = () => {
|
||||
resolve(false);
|
||||
};
|
||||
});
|
||||
}
|
||||
}
|
||||
return Promise.resolve(false);
|
||||
}
|
||||
}
|
||||
|
2
packages/system/src/cache/index.ts
vendored
2
packages/system/src/cache/index.ts
vendored
@ -70,4 +70,4 @@ export function mapEventToProfile(ev: NostrEvent) {
|
||||
} catch (e) {
|
||||
console.error("Failed to parse JSON", ev, e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
30
packages/system/src/cache/relay-metric.ts
vendored
30
packages/system/src/cache/relay-metric.ts
vendored
@ -2,21 +2,21 @@ import { db, RelayMetrics } from ".";
|
||||
import { FeedCache } from "@snort/shared";
|
||||
|
||||
export class RelayMetricCache extends FeedCache<RelayMetrics> {
|
||||
constructor() {
|
||||
super("RelayMetrics", db.relayMetrics);
|
||||
}
|
||||
constructor() {
|
||||
super("RelayMetrics", db.relayMetrics);
|
||||
}
|
||||
|
||||
key(of: RelayMetrics): string {
|
||||
return of.addr;
|
||||
}
|
||||
key(of: RelayMetrics): string {
|
||||
return of.addr;
|
||||
}
|
||||
|
||||
override async preload(): Promise<void> {
|
||||
await super.preload();
|
||||
// load everything
|
||||
await this.buffer([...this.onTable]);
|
||||
}
|
||||
override async preload(): Promise<void> {
|
||||
await super.preload();
|
||||
// load everything
|
||||
await this.buffer([...this.onTable]);
|
||||
}
|
||||
|
||||
takeSnapshot(): Array<RelayMetrics> {
|
||||
return [...this.cache.values()];
|
||||
}
|
||||
}
|
||||
takeSnapshot(): Array<RelayMetrics> {
|
||||
return [...this.cache.values()];
|
||||
}
|
||||
}
|
||||
|
2
packages/system/src/cache/user-metadata.ts
vendored
2
packages/system/src/cache/user-metadata.ts
vendored
@ -145,4 +145,4 @@ export class UserProfileCache extends FeedCache<MetadataCache> {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
2
packages/system/src/cache/user-relays.ts
vendored
2
packages/system/src/cache/user-relays.ts
vendored
@ -26,4 +26,4 @@ export class UserRelaysCache extends FeedCache<UsersRelays> {
|
||||
takeSnapshot(): Array<UsersRelays> {
|
||||
return [...this.cache.values()];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user