عن المشروع
lowdb هي قاعدة بيانات JSON محلية صغيرة وبسيطة لجافاسكريبت وتايبسكريبت. فكرتها الأساسية هي أنه إذا كنت تعرف جافاسكريبت، فأنت تعرف بالفعل كيفية استخدامها: تعيش البيانات في كائن عادي في db.data، وتستعلم عنها أو تعدلها باستخدام عمليات Array والكائنات الأصلية بدلاً من لغة استعلام مخصصة.
الاستخدام النموذجي يقرأ أو ينشئ ملف JSON ثم يحدّثه إما في خطوتين (عدّل db.data، ثم await db.write()) أو في استدعاء واحد عبر db.update(fn). ملف db.json الناتج هو JSON عادي. يمكن لمستخدمي تايبسكريبت تعريف نوع Data بحيث يتم فحص نوع db.data، مما يلتقط أخطاء مثل إضافة رقم إلى مصفوفة نصوص.
الحزمة هي ESM خالصة وتُثبَّت عبر npm install lowdb. توفر أربعة إعدادات مسبقة للحالات الشائعة: JSONFilePreset وJSONFileSyncPreset وLocalStoragePreset وSessionStoragePreset. لمزيد من التحكم، تكشف عن فئتي Low وLowSync بالإضافة إلى المحولات. تشمل المحولات المدمجة JSONFile وJSONFileSync لملفات JSON، وMemory وMemorySync للاستخدام السريع في الذاكرة أثناء الاختبارات، وLocalStorage وSessionStorage للمتصفحات. تساعد المحولات المساعدة TextFile وTextFileSync وDataFile وDataFileSync في بناء محولات مخصصة، على سبيل المثال لدعم YAML أو لإضافة تشفير أو ضغط عبر توفير دوال parse وstringify.
المحولات هي فئات بسيطة تكشف عن طريقتي read وwrite، لذا يمكن للمستخدمين استهداف التخزين البعيد أو تنسيقات أخرى. يوضح README أيضًا توسيع Low باستخدام Lodash للاستعلامات المتسلسلة. الحدود الموثقة: لا يدعم lowdb وحدة cluster في Node، وكتابة كائنات كبيرة (حوالي 10-100 ميغابايت) قد تكون بطيئة لأن كل db.write يقوم بتسلسل كامل db.data باستخدام JSON.stringify. يمكن تخفيف ذلك عبر عمليات الدفعات والكتابة فقط عند الحاجة، وللنطاق الأكبر يوصي README باستخدام PostgreSQL أو MongoDB.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.