restate / v1.0.0
مرجع API
كل تصدير في @kkwaenggwari/restate 1.0، مع الوسائط والقيم المُعادة والسلوك.
في هذه الصفحة
التصديراتدوال المخزندوال المخزن المحفوظخيارات persistedRestateحقول الحالةrestateManager وscope.managerواجهة محوّل التخزينالتصديرات
يُستورد كل شيء من @kkwaenggwari/restate، على الويب وفي React Native.
| التصدير | يعيد | يُستخدم لـ |
|---|---|---|
restate(initial, updater | options?) | خطّاف المخزن | إنشاء مخزن مشترك في الذاكرة. |
persistedRestate(initial, options) | خطّاف المخزن المحفوظ | إنشاء مخزن يُستعاد ويُحفظ عبر التخزين. |
useRestateScope(factory?) | نتيجة دالة المصنع أو النطاق | امتلاك مخازن في مكوّن؛ تُتلف بعد الإزالة. |
createRestateScope() | RestateScope | امتلاك مخازن خارج React؛ استدعِ destroy() في النهاية. |
shallow(left, right) | boolean | مقارنة الاختيارات بعمق مستوى واحد. |
batch(callback) | نتيجة الاستدعاء الراجع | إشعار المشتركين مرة واحدة بعد عدة تغييرات. |
restateManager | RestateManager | انتظار بيانات البدء وتنفيذ عمليات جماعية على المخازن العامة. |
createIndexedDBStorage(options?) | RestateStorage | إنشاء محوّل IndexedDB باسم قاعدة بيانات أو مخزن مخصّص. |
createMMKVStorage(options?) | RestateStorage | إنشاء محوّل MMKV بمثيلك أو إعداداتك. |
دوال المخزن
المخزن دالة تستدعيها كخطّاف، ولها هذه الدوال.
| العضو | الوصف |
|---|---|
useStore() | يعيد القيمة كاملة ويُعاد عرضه عند كل تغيير. |
useStore(selector, isEqual?) | يعيد الاختيار؛ ويُعاد عرضه حين يُبلغ isEqual (افتراضيًا Object.is) عن تغيير. |
get() | القيمة الحالية، من دون اشتراك. |
set(value | updater) | يستبدل القيمة أو يحسبها من السابقة. يُتجاهل بعد destroy(). |
reset() | يستعيد القيمة الأولية المعرَّفة ويعيدها. |
subscribe(listener) | يستدعي listener(value, previous, event) بعد كل تغيير؛ ويعيد دالة لإلغاء الاشتراك. |
subscribeSelector(selector, listener, isEqual?) | يستدعي listener فقط حين يتغيّر الاختيار. |
on(type, listener) | يستمع إلى أحداث مثل change أو reset أو save أو error. |
start() / stop() / isRunning() | التحكم في updater يدويًا. |
destroy() / isDestroyed() | يحرّر المستمعين وupdater. وتطرح الاشتراكات اللاحقة STORE_DESTROYED. |
getInitial() / getServerSnapshot() / getError() | القيمة الأولية ولقطة الخادم وآخر خطأ لمستمع. |
id / kind | id فريد؛ memory أو persistent. |
دوال المخزن المحفوظ
يعيد persistedRestate مخزنًا بهذه الأعضاء الإضافية.
| العضو | الوصف |
|---|---|
ready | Promise يُستوفى حين ينتهي التحميل التلقائي، حتى لو فشل. تحقّق من status(). |
save() | يكتب القيمة الحالية؛ ويُستوفى بالقيمة التي كُتبت فعلًا. |
restore() | يقرأ القيمة المحفوظة إلى الذاكرة. |
hasSaved() | هل يوجد سجل محفوظ. |
clearStorage() | يحذف السجل المحفوظ؛ ولا تتغيّر الذاكرة. |
resetAndClearStorage() | يعيد الذاكرة إلى القيمة الأولية ويحذف السجل المحفوظ. |
initialize() | يحمّل مجددًا، مثلًا بعد إصلاح سجل فاشل. |
status() | لقطة مجمّدة للحالة؛ الكائن نفسه ما لم يتغيّر حقل. |
useStatus(selector?, isEqual?) | خطّاف يُعاد عرضه حين تتغيّر الحالة أو الجزء المختار منها. |
key / storageKey / storage | المفتاح المنطقي، والمفتاح مع مساحة الاسم، والمحوّل المستخدم. |
خيارات persistedRestate
key إلزامي. وكل الخيارات الأخرى اختيارية.
| الخيار | الافتراضي | المعنى |
|---|---|---|
key | إلزامي | المفتاح المنطقي للسجل. |
namespace | "@kkwaenggwari/restate" | بادئة المفتاح المحفوظ؛ والنص الفارغ يعطّلها. |
storage | IndexedDB / MMKV | محوّل يُستخدم بدل الافتراضي للمنصة. |
autoSave | false | يحفظ true بعد كل تغيير؛ وينتظر { delayMs } توقّفًا. |
version / migrate | 1 / لا شيء | إصدار السجل وكيفية ترقية السجلات الأقدم. |
validate | لا شيء | يتحقق من القيم قبل الحفظ وبعد الاستعادة أو الترحيل. |
serializer | JSON | دوال serialize وdeserialize مخصّصة. |
operationTimeoutMs | 30000 | أقصى مدة لعملية تخزين. |
maxPendingOperations | 256 | العمليات المعلّقة المسموح بها، بما فيها النشطة. |
maxStorageCharacters | 5242880 | أكبر قيمة مرمَّزة، بوحدات ترميز UTF-16. |
updater / managed / serverSnapshot / onError | — | مثل خيارات restate. |
حقول الحالة
تعيد status() وuseStatus() هذه الحقول.
| الحقل | المعنى |
|---|---|
ready | انتهى التحميل التلقائي. |
dirty | تختلف الذاكرة عن آخر قيمة حُمّلت أو حُفظت أو استُعيدت. |
operation | عملية التخزين الجارية، أو null. |
pending | عمليات التخزين غير المنتهية، بما فيها النشطة. |
blocked | استدعاء محوّل أُلغي أو انتهت مهلته ولم يُنهِ عمله بعد. |
available | هل يمكن استخدام التخزين. |
error / observerError | آخر خطأ تخزين؛ وآخر خطأ لمستمع الحالة. |
lastSavedAt / lastRestoredAt | ميلي ثانية epoch لآخر نجاح، أو null. |
restateManager وscope.manager
يتتبّع كل مدير المخازن المحفوظة المسجّلة لديه.
| العضو | الوصف |
|---|---|
ready | ينتظر المخازن المسجّلة لحظة الوصول؛ ويُرفض بـ BULK_OPERATION_FAILED. |
saveAll(options?) / restoreAll(options?) | ينفّذ save أو restore على كل مخزن؛ ويحدّ { concurrency } من العمل المتوازي. |
clearStorageAll() / resetAll() / resetAllAndClearStorage() | يمسح السجلات، أو يعيد ضبط الذاكرة، أو كليهما. |
list() / get(idOrKey) / size() | فحص المخازن المسجّلة. |
subscribe(listener) / status() | مراقبة أحداث المدير وأخطاء المستمعين. |
destroyAll() | يتلف كل مخزن مسجّل. |
واجهة محوّل التخزين
مرّر في storage كائنًا بهذه الدوال. يمكن لكل دالة أن تعيد قيمة أو Promise.
| الدالة | الوصف |
|---|---|
getItem(key, context?) | تعيد النص المحفوظ أو null. |
setItem(key, value, context?) | تحفظ النص. |
removeItem(key, context?) | تحذف السجل. |
isAvailable?() | تُبلغ بشكل متزامن عمّا إذا كان التخزين قابلًا للاستخدام. |
clear?() / close?() | تفريغ وتنظيف اختياريان. |
coordinationKey? | كائن مشترك بين المغلِّفات التي تعتمد التخزين الأساسي نفسه. |