AppView開発 気になったところ
あとで時間ができたらissue作るかもしれない
AtpAgentを独自定義のlexiconでも使わせてほしい
BskyAgent(AtpAgent)とAtpBaseClient2つを使う必要がある
そもそもAtpAgentってそういうものではないのかも
lex-cli@0.3.2で生成したrecord関連のコードで、rkeyがliteralの場合にcreateにしか指定がない
型定義的にもOmitされていないので結局指定が必要
code:api.ts
async get(
params: Omit<ComAtprotoRepoGetRecord.QueryParams, 'collection'>,
): Promise<{
uri: string
cid: string
value: DevMkizkaTestProfileBoard.Record
}> {
const res = await this._service.xrpc.call('com.atproto.repo.getRecord', {
collection: 'dev.mkizka.test.profile.board',
...params,
})
return res.data
}
async create(
params: Omit<
ComAtprotoRepoCreateRecord.InputSchema,
'collection' | 'record'
,
record: DevMkizkaTestProfileBoard.Record,
headers?: Record<string, string>,
): Promise<{ uri: string; cid: string }> {
record.$type = 'dev.mkizka.test.profile.board'
const res = await this._service.xrpc.call(
'com.atproto.repo.createRecord',
undefined,
{
collection: 'dev.mkizka.test.profile.board',
rkey: 'self',
...params,
record,
},
{ encoding: 'application/json', headers },
)
return res.data
}
async delete(
params: Omit<ComAtprotoRepoDeleteRecord.InputSchema, 'collection'>,
headers?: Record<string, string>,
): Promise<void> {
await this._service.xrpc.call(
'com.atproto.repo.deleteRecord',
undefined,
{ collection: 'dev.mkizka.test.profile.board', ...params },
{ headers },
)
}
独自lexiconのrecordにcreate, get ,delete, listはあるがputがない(意図的?)
putRecordのみcom.atproto.repoから使うことで対処
recordの型がすべてオプショナルだけど検証後の型もほしい
validateRecord通したらunknownが返ってきて泣いた