عن المشروع

Happy DOM هي مكتبة JavaScript منشورة عبر npm تقوم بتنفيذ نموذج كائن المستند (DOM) الخاص بالمتصفح دون أي واجهة مستخدم رسومية. تهدف المكتبة إلى توفير بيئة DOM شبيهة بالمتصفح لأكواد JavaScript، بحيث يمكن للسكربتات والمكونات التي تتطلب document و window وواجهات برمجة تطبيقات الويب ذات الصلة أن تعمل خارج المتصفح الحقيقي. ما تغطيه المكتبة يسلط ملف README الخاص بالمشروع الضوء على القدرات التي تركز على DOM والتي تقوم بتنفيذها: - العناصر المخصصة (Custom Elements)، أي مكونات الويب (Web Components) - Shadow DOM التصريحي - Mutation Observer - Tree Walker - Fetch API - وبالإضافة إلى ذلك، وفقاً للمطورين، الكثير غير ذلك بما أن هذه الميزات تتعلق بطبقة DOM وليست ميزات رندرة (rendering)، فإن المكتبة تستهدف الاستخدام البرمجي لصفحة الويب بدلاً من العرض المرئي. وهذا يجعلها خياراً مناسباً للبيئات التي يكون فيها المتصفح الكامل أو المتصفح بدون واجهة (headless browser) أثقل من اللازم. ما الذي تتوافق معه تدرج الوثائق مجموعة واسعة من الأدوات وأطر العمل التي يذكر المشروع أنها متوافقة معه: - أدوات تشغيل الاختبارات ومرافق الاختبار: Vitest، Jest، Bun، Testing Library - أطر العمل ومكتبات المكونات: Google LitElement، Vue، React، Svelte، Angular يشير هذا النطاق إلى أن المكتبة لا يتم تقديمها كتطبيق مستقل، بل كركيزة DOM مشتركة تحت أدوات أخرى، خاصة في إعدادات اختبار الواجهات الأمامية. ويربط ملف README مباشرة بصفحة ويكي حول كيفية إعدادها كبيئة اختبار. التوثيق والمجتمع يحافظ المشروع على ويكي في GitHub يحتوي على نقطة دخول للتوثيق، وصفحة لبدء الاستخدام، ودليل مخصص للإعداد كبيئة اختبار. كما يتوفر دليل للمساهمة في المستودع للأشخاص الذين يرغبون في إرسال تغييرات. ويقر ملف README أيضاً بالرعاة الذين تظهر شعاراتهم على صفحة المشروع. تفاصيل المشروع - اللغة والنظام البيئي: JavaScript، موزعة عبر npm باسم happy-dom - الترخيص: رخصة MIT، حقوق الطبع والنشر من 2019 حتى الآن، مملوكة لـ David Ortner - المستودع: capricorn86/happy-dom من قد يستفيد منها الجمهور الطبيعي هم المطورون الذين يرغبون في تشغيل الاختبارات أو تنفيذ أكواد تعتمد على DOM في سير عمل يعتمد على Node.js أو Bun، دون تشغيل متصفح رسومي. قد تجد الفرق التي تستخدم أحد أدوات تشغيل الاختبارات أو أطر العمل المذكورة أن تقييمها كبيئة DOM أمر يستحق العناء. وكما هو الحال مع أي تبعية من هذا النوع، فإن الاختبار العملي هو ما إذا كانت ميزات DOM المحددة التي يعتمد عليها الكود الخاص بك مغطاة وتعمل كما هو متوقع في هذا التنفيذ. لا يقدم ملف README ادعاءات بشأن الأداء أو المعايير المرجعية أو الاكتمال بما يتجاوز الميزات المدرجة، لذا يجب التحقق من ذلك مباشرة من خلال توثيق المشروع الحالي ومجموعة الاختبارات.