Skip to content

Commit bc143c6

Browse files
committed
fix typescript
1 parent 9652db0 commit bc143c6

3 files changed

Lines changed: 32 additions & 9 deletions

File tree

src/social/triage.ts

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,13 @@
11
import { DataBrowserContext } from 'pane-registry'
2-
import { LiveStore, NamedNode } from 'rdflib'
2+
import { IndexedFormula, NamedNode } from 'rdflib'
33
import { ns } from 'solid-ui'
44

5+
type FriendshipStore = IndexedFormula & {
6+
fetcher?: {
7+
load?: (target: NamedNode | string) => Promise<unknown>
8+
}
9+
}
10+
511
export 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)

test/unit/social/triage.test.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,10 +58,13 @@ describe('loadFriendshipTriage', () => {
5858
store.add(alice, ns.foaf('knows'), bob, alice.doc())
5959

6060
;(store as typeof store & {
61-
fetcher?: { load: jest.Mock<Promise<void>, [$rdf.NamedNode | string]> }
61+
fetcher?: {
62+
load: (...args: any[]) => Promise<void>
63+
}
6264
}).fetcher = {
63-
load: jest.fn(async (target: $rdf.NamedNode | string) => {
64-
const value = typeof target === 'string' ? target : target.value
65+
load: jest.fn(async (target: $rdf.NamedNode | string | Array<$rdf.NamedNode | string>) => {
66+
const resolvedTarget = Array.isArray(target) ? target[0] : target
67+
const value = typeof resolvedTarget === 'string' ? resolvedTarget : resolvedTarget.value
6568
loadedTargets.push(value)
6669
if (value === bob.doc().value) {
6770
store.add(bob, ns.foaf('knows'), alice, bob.doc())

typings/declarations.d.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,22 @@ declare module '*.svg' {
44
export default content
55
}
66

7+
declare module 'solid-ui/components/actions/button'
8+
9+
interface SolidUIButtonElement extends HTMLElement {
10+
type: string
11+
variant: string
12+
size: string
13+
label: string
14+
disabled: boolean
15+
}
16+
17+
declare global {
18+
interface HTMLElementTagNameMap {
19+
'solid-ui-button': SolidUIButtonElement
20+
}
21+
}
22+
723
declare module '*.svg?raw' {
824
const content: string
925
export default content

0 commit comments

Comments
 (0)