11import { DataBrowserContext } from 'pane-registry'
2- import { LiveStore , NamedNode } from 'rdflib'
2+ import { IndexedFormula , NamedNode } from 'rdflib'
33import { ns } from 'solid-ui'
44
5+ type FriendshipStore = IndexedFormula & {
6+ fetcher ?: {
7+ load ?: ( target : NamedNode | string ) => Promise < unknown >
8+ }
9+ }
10+
511export interface FriendshipTriage {
612 acquaintances : NamedNode [ ]
713 confirmed : NamedNode [ ]
@@ -23,7 +29,7 @@ function uniqueNamedNodes (nodes: NamedNode[]): NamedNode[] {
2329 return unique
2430}
2531
26- export function triageFriends ( store : LiveStore , subject : NamedNode ) : FriendshipTriage {
32+ export function triageFriends ( store : FriendshipStore , subject : NamedNode ) : FriendshipTriage {
2733 const outgoingFriends = uniqueNamedNodes ( store . each ( subject , ns . foaf ( 'knows' ) ) as NamedNode [ ] )
2834 const incomingFriends = uniqueNamedNodes (
2935 store . each ( undefined , ns . foaf ( 'knows' ) , subject ) as NamedNode [ ]
@@ -60,10 +66,8 @@ export async function loadFriendshipTriage (
6066 context : DataBrowserContext ,
6167 subject : NamedNode
6268) : Promise < FriendshipTriage > {
63- const store = context . session . store
64- const fetcher = ( store as LiveStore & {
65- fetcher ?: { load ?: ( target : NamedNode | string ) => Promise < unknown > }
66- } ) . fetcher
69+ const store = context . session . store as FriendshipStore
70+ const fetcher = store . fetcher
6771
6872 if ( ! fetcher || typeof fetcher . load !== 'function' ) {
6973 return triageFriends ( store , subject )
0 commit comments