Kunjungi beranda DatoCMS atau lihat Apa itu DatoCMS?
Paket ringan yang siap untuk TypeScript yang menawarkan utilitas untuk bekerja dengan API Pembaruan Real-time DatoCMS di dalam browser.
npm install datocms-listen
Impor subscribeToQuery
dari datocms-listen
dan gunakan di dalam komponen Anda seperti ini:
import { subscribeToQuery } from "datocms-listen" ;
const unsubscribe = await subscribeToQuery ( {
query : `
query BlogPosts($first: IntType!) {
allBlogPosts(first: $first) {
title
nonExistingField
}
}
` ,
variables : { first : 10 } ,
token : "YOUR_TOKEN" ,
includeDrafts : true ,
onUpdate : ( update ) => {
// response is the GraphQL response
console . log ( update . response . data ) ;
} ,
onStatusChange : ( status ) => {
// status can be "connected", "connecting" or "closed"
console . log ( status ) ;
} ,
onChannelError : ( error ) => {
// error will be something like:
// {
// code: "INVALID_QUERY",
// message: "The query returned an erroneous response. Please consult the response details to understand the cause.",
// response: {
// errors: [
// {
// fields: ["query", "allBlogPosts", "nonExistingField"],
// locations: [{ column: 67, line: 1 }],
// message: "Field 'nonExistingField' doesn't exist on type 'BlogPostRecord'",
// },
// ],
// },
// }
console . error ( error ) ;
} ,
onError : ( error ) => {
// error will be
// {
// message: "ERROR MESSAGE"
// }
console . log ( error . message ) ;
} ,
onEvent : ( event ) => {
// event will be
// {
// status: "connected|connected|closed",
// channelUrl: "...",
// message: "MESSAGE",
// }
} ,
} ) ;
menopang | jenis | diperlukan | keterangan | bawaan |
---|---|---|---|---|
pertanyaan | tali | TypedDocumentNode | ✅ | Permintaan GraphQL untuk berlangganan | |
token | rangkaian | ✅ | Token API DatoCMS untuk digunakan | |
pada Pembaruan | fungsi | ✅ | Fungsi panggilan balik untuk menerima peristiwa pembaruan kueri | |
diChannelError | fungsi | Fungsi panggilan balik untuk menerima peristiwa channelError | ||
diStatusChange | fungsi | Fungsi panggilan balik untuk menerima peristiwa perubahan status | ||
diError | fungsi | Callback berfungsi untuk menerima kejadian error | ||
di Acara | fungsi | Fungsi panggilan balik untuk menerima acara lainnya | ||
variabel | Obyek | Variabel GraphQL untuk kueri | ||
termasuk Draf | boolean | Jika benar, draf catatan akan dikembalikan | ||
kecualikanTidak valid | boolean | Jika benar, catatan yang tidak valid akan disaring | ||
lingkungan | rangkaian | Nama lingkungan DatoCMS tempat melakukan kueri (default pada lingkungan utama) | ||
tautan konten | 'vercel-1' atau undefined | Jika benar, sematkan metadata yang mengaktifkan Tautan Konten | ||
baseEditingUrl | rangkaian | URL dasar proyek DatoCMS | ||
cacheTag | boolean | Jika benar, terima Tag Cache yang terkait dengan kueri | ||
Periode penyambungan kembali | nomor | Jika terjadi kesalahan jaringan, periode waktu tunggu (dalam ms) untuk menyambung kembali | 1000 | |
pengambil | fungsi seperti pengambilan | Fungsi pengambilan yang digunakan untuk melakukan kueri pendaftaran | jendela.ambil | |
acaraSourceClass | kelas seperti EventSource | Kelas EventSource yang digunakan untuk membuka koneksi SSE | jendela.EventSource | |
baseUrl | rangkaian | URL dasar yang digunakan untuk melakukan kueri | https://graphql-listen.datocms.com |
onUpdate(update: UpdateData<QueryResult>)
Fungsi ini akan dipanggil setiap kali saluran mengirimkan hasil kueri yang diperbarui. Argumen updateData
memiliki properti berikut:
menopang | jenis | keterangan |
---|---|---|
tanggapan | Obyek | Respons GraphQL yang diperbarui |
onStatusChange(status: ConnectionStatus)
Argumen status
mewakili keadaan koneksi peristiwa yang dikirim server. Ini bisa berupa salah satu dari berikut ini:
connecting
: saluran langganan mencoba terhubungconnected
: saluran terbuka, kami menerima pembaruan langsungclosed
: saluran telah ditutup secara permanen karena kesalahan fatal (yaitu permintaan yang tidak valid)onChannelError(errorData: ChannelErrorData)
Argumen errorData
memiliki properti berikut:
menopang | jenis | keterangan |
---|---|---|
kode | rangkaian | Kode kesalahan (mis. INVALID_QUERY ) |
pesan | rangkaian | Pesan ramah manusia yang menjelaskan kesalahan tersebut |
tanggapan | Obyek | Respons mentah dikembalikan oleh titik akhir, jika tersedia |
onError(error: ErrorData)
Fungsi ini dipanggil ketika terjadi kesalahan koneksi.
Argumen error
memiliki properti berikut:
menopang | jenis | keterangan |
---|---|---|
pesan | rangkaian | Pesan ramah manusia yang menjelaskan kesalahan tersebut |
onEvent(event: EventData)
Fungsi ini dipanggil kemudian peristiwa lain terjadi.
Argumen event
memiliki properti berikut:
menopang | jenis | keterangan |
---|---|---|
status | rangkaian | Status koneksi saat ini (lihat di atas) |
saluranUrl | rangkaian | URL saluran saat ini |
pesan | rangkaian | Pesan ramah manusia yang menjelaskan acara tersebut |
Fungsi ini mengembalikan Promise<() => void>
. Anda dapat memanggil fungsi untuk menutup saluran SSE dengan baik.
DatoCMS adalah CMS Tanpa Kepala REST & GraphQL untuk web modern.
Dipercaya oleh lebih dari 25.000 perusahaan, mitra agensi, dan individu di seluruh dunia, pengguna DatoCMS membuat konten online dalam skala besar dari hub pusat dan mendistribusikannya melalui API. Kami ❤️ pengembang, editor konten, dan pemasar kami!
Tautan cepat:
Repo unggulan kami:
Atau lihat semua repositori publik kami