tosijs-schema: مكتبة نوعية سريعة وذكية لتوحيد أنواع البيانات باستخدام JSON Schema
تُعد مكتبة tosijs-schema حلًا مبتكرًا لمعالجة أنماط البيانات في تطبيقات JavaScript وTypeScript، من خلال نهج يعتمد على المخططات (Schema-first) بدلًا من التوجه القائم على نوع البيانات (Type-first). تُولّد المكتبة نوعًا موحدًا وموثوقًا يُستخدم كمصدر أصلي للبيانات، حيث يتم تعريف الهياكل باستخدام معيار JSON Schema القياسي، ثم يتم استخلاص أنواع TypeScript تلقائيًا عبر وظيفة Infer. تتميز المكتبة بأداء متفوق مقارنةً بمنافسها مثل Zod، خاصة عند التعامل مع كميات كبيرة من البيانات. في اختبارات الأداء، أظهرت tosijs-schema تسريعًا يصل إلى 1124 مرة عند استخدامها في بيئة "مُسخّنة" (JIT)، حتى مع تفعيل التحقق الكامل من البيانات، بينما كانت أسرع بنسبة 2.1 مرة في السرعة الأساسية. الفائدة تكمن في خوارزمية "القفز الأولي" (prime-jump)، التي تتحقق من عينة ثابتة من البيانات (حوالي 1%) بغض النظر عن حجم المصفوفة أو القاموس، مما يضمن أداءً ثابتًا من الدرجة O(1) مع احتمال عالٍ للكشف عن الأخطاء. تُقدّم المكتبة بنية بسيطة وواضحة، حيث تُستخدم خصائص مثل string, email, optional, وenum كـ مُحصلات (getters)، مما يقلل من التعقيد في التعريفات. كما تدعم إضافة بيانات وصفية (Metadata) مثل title, description, وdefault إلى أي عنصر في المخطط، وهي مفيدة جدًا في إنشاء وثائق API غنية (مثل Swagger أو OpenAPI). أحد الميزات المميزة هو التمييز بين التحقق من الصحة (Type Safety) والتصحيح (Debugging): يُرجع التحقق القيمة true أو false بشكل افتراضي لضمان الأداء، لكن يمكن تفعيل عرض رسائل خطأ تفصيلية عبر دالة onError، أو رفع استثناء فورًا عند الخطأ. كما يدعم التحقق السريع (Fail Fast)، حيث يتوقف عند أول خطأ يُكتشف، مما يقلل من استهلاك الموارد. تُعد المكتبة مثالية لبيئات الذكاء الاصطناعي، حيث تم تصميمها لتكون "متوافقة مع المحركات اللغوية الكبيرة" (LLM-Native). على عكس Zod، التي تتطلب مُحولًا خارجيًا (zod-to-json-schema) لتحويل المخططات إلى JSON Schema، فإن tosijs-schema تُنتج مخططًا مباشرًا من نوع schema يتوافق تمامًا مع متطلبات OpenAI مثل response_format: { type: "json_schema" }، مما يقلل من عدد الرموز المستخدمة في النافذة السياقية ويجعل المخرجات أبسط وأكثر كفاءة. مما يُميّز المكتبة أيضًا هو اعتمادها على نموذج وظيفي (Functional) بدلًا من الكلاسيكي (Object-Oriented)، مما يقلل من حجم الحزمة ويساعد على التقطيع (tree-shaking) بشكل أفضل. كما لا تعتمد على أي حزم خارجية، وتُوزع تحت ترخيص MIT. باختصار، تُقدّم tosijs-schema بديلًا أسرع، أصغر حجمًا، وأكثر ملاءمة للاستخدام في مشاريع مبنية على LLM، والخدمات المُسخّنة (serverless)، والتطبيقات التي تتطلب أداءً عاليًا في التحقق من الهياكل، مع الحفاظ على دقة ووضوح معايير JSON Schema.
