画面がほしいデータを、ほしい形で、一度に聞けます。新しい画面を作るたびにサーバへ新しい窓口を頼まなくていい——次の館(web-next)がどんな姿になっても、この照会室が応えます。
いちばんの見どころは、同じpostTableがNote、Article、Questionという三つの顔に化けること。台帳は一冊なのに、照会の窓からは三種類の資料に見える。
見どころ
- 権限はscope-based: signed(セッションあり)と、台帳を引いて確かめるasyncなmoderator
- 問いの重さに関税がある——匿名は深さ11・複雑度20000まで、署名済みは20・25000まで
- drizzle-orm rc.2の癖(getTableConfigの主キー列が別インスタンスを返す)を、名前で貼り直す率直なパッチがbuilder.tsにある
- 領域ごとに一件一ファイル(account.ts、post.ts、poll.ts、moderation.ts……)+併設テスト
経文の一節
export const builder = new SchemaBuilder<PothosTypes>({
plugins: [
ComplexityPlugin,
RelayPlugin,
ScopeAuthPlugin,
DrizzlePlugin,
DataloaderPlugin,
SimpleObjectsPlugin,
TracingPlugin,
WithInputPlugin,
ErrorsPlugin,
],