Fix a bunch of type errors and add a type-check to the github workflows (#837)

* Add yarn type-check

* Rename to yarn typecheck

* Fix a collection of type errors

* Add typecheck to automated tests

* add `dist` to exluded folders tsconfig

---------

Co-authored-by: Ansh Nanda <anshnanda10@gmail.com>
This commit is contained in:
Paul Frazee 2023-06-02 15:01:04 -05:00 committed by GitHub
parent 46c9de7c18
commit e8843ded5b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
23 changed files with 168 additions and 82 deletions

View file

@ -9,6 +9,16 @@ interface Membership {
value: AppBskyGraphListitem.Record
}
interface ListitemRecord {
uri: string
value: AppBskyGraphListitem.Record
}
interface ListitemListResponse {
cursor?: string
records: ListitemRecord[]
}
export class ListMembershipModel {
// data
memberships: Membership[] = []
@ -32,13 +42,14 @@ export class ListMembershipModel {
// it needs to be replaced with server side list membership queries
// -prf
let cursor
let records = []
let records: ListitemRecord[] = []
for (let i = 0; i < 100; i++) {
const res = await this.rootStore.agent.app.bsky.graph.listitem.list({
repo: this.rootStore.me.did,
cursor,
limit: PAGE_SIZE,
})
const res: ListitemListResponse =
await this.rootStore.agent.app.bsky.graph.listitem.list({
repo: this.rootStore.me.did,
cursor,
limit: PAGE_SIZE,
})
records = records.concat(
res.records.filter(record => record.value.subject === this.subject),
)
@ -99,7 +110,7 @@ export class ListMembershipModel {
})
}
async updateTo(uris: string) {
async updateTo(uris: string[]) {
for (const uri of uris) {
await this.add(uri)
}

View file

@ -4,6 +4,7 @@ import {
AppBskyGraphGetList as GetList,
AppBskyGraphDefs as GraphDefs,
AppBskyGraphList,
AppBskyGraphListitem,
} from '@atproto/api'
import {Image as RNImage} from 'react-native-image-crop-picker'
import {RootStoreModel} from '../root-store'
@ -13,6 +14,16 @@ import {bundleAsync} from 'lib/async/bundle'
const PAGE_SIZE = 30
interface ListitemRecord {
uri: string
value: AppBskyGraphListitem.Record
}
interface ListitemListResponse {
cursor?: string
records: ListitemRecord[]
}
export class ListModel {
// state
isLoading = false
@ -33,7 +44,7 @@ export class ListModel {
name,
description,
avatar,
}: {name: string; description: string; avatar: RNImage | undefined},
}: {name: string; description: string; avatar: RNImage | null | undefined},
) {
const record: AppBskyGraphList.Record = {
purpose: 'app.bsky.graph.defs#modlist',
@ -124,6 +135,9 @@ export class ListModel {
description: string
avatar: RNImage | null | undefined
}) {
if (!this.list) {
return
}
if (!this.isOwner) {
throw new Error('Cannot edit this list')
}
@ -157,15 +171,20 @@ export class ListModel {
}
async delete() {
if (!this.list) {
return
}
// fetch all the listitem records that belong to this list
let cursor
let records = []
let records: ListitemRecord[] = []
for (let i = 0; i < 100; i++) {
const res = await this.rootStore.agent.app.bsky.graph.listitem.list({
repo: this.rootStore.me.did,
cursor,
limit: PAGE_SIZE,
})
const res: ListitemListResponse =
await this.rootStore.agent.app.bsky.graph.listitem.list({
repo: this.rootStore.me.did,
cursor,
limit: PAGE_SIZE,
})
records = records.concat(
res.records.filter(record => record.value.list === this.uri),
)
@ -193,6 +212,9 @@ export class ListModel {
}
async subscribe() {
if (!this.list) {
return
}
await this.rootStore.agent.app.bsky.graph.muteActorList({
list: this.list.uri,
})
@ -200,6 +222,9 @@ export class ListModel {
}
async unsubscribe() {
if (!this.list) {
return
}
await this.rootStore.agent.app.bsky.graph.unmuteActorList({
list: this.list.uri,
})