graphile / graphile/graphile.github.io

Documentation Improvement by adding an example and description for initialEvent for custom subscriptions

オープン
#401 コメント 1 件 リアクション 1 件 担当者 0 名 GitHub で見る
help wanted quick
主要言語
SCSS
スター
27
フォーク
126
PR マージ指標
30日以内にマージされた PR はありません

説明

Over the last few days I've been trying to create a custom subscription that sends the data directly after connecting. However, there is no example in the documentation of an initial event or any evidence that there is an interface for it. The default behavior of an custom subscription is that it only fetches the previous data and the new data (on insert) after an event was been triggered on the database side.

I only got the information about the `initialEvent` from the discord server:
- By providing the `initialEvent` argument to `@pgSubscription(...)` in `typeDefs` you can pass to it the function which you want to be executed on connection establishment the same way as `currentUserTopicFromContext` from the docs to topic:
```js
currentUserUpdated: UserSubscriptionPayload @pgSubscription(topic: ${embed(
currentUserTopicFromContext,
)})
```
with `initialEvent`:
```js
currentUserUpdated: UserSubscriptionPayload @pgSubscription(topic: ${embed(
currentUserTopicFromContext,
)}, initialEvent: ${embed(
onInitialEvent, //the function that you want to be executed
)})
```

The function that you want to be executed in `initialEvent` has the same structure as `currentUserTopicFromContext`:
```js
const onInitialEvent = async (_args, context, _resolveInfo) => {
// do something
return {}; // return an object
}
```

Now because returning an empty object was the solution for my problem (get already existing data on connection establishment), I didn't dig any deeper on what arguments I can give to the object to control the behavior and what operations can be done in the `initialEvent` function. This can be added additionally to the documentation.

Adding description for `initialEvent` and examples for it to the documentation to make it clear that something like that exists would help allot.

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

調査の方向性

まず、カスタムサブスクリプションのドキュメントと、既存の `@pgSubscription` および `currentUserTopicFromContext` の例を見つけます。`initialEvent` について、その関数シグネチャと、示されている接続確立の例を含めてドキュメント化します。読者がそれをどのように提供するか、また返されるオブジェクトが何を制御するかを理解できれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
graphql, javascript
領域
api, documentation
issue の種類
ドキュメント
難易度
2/5
見積もり時間
1〜3時間
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
38/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。