عن المشروع

AWS SDK for JavaScript v3 هي إعادة كتابة للإصدار 2 تحافظ على هدف العمل مع Amazon Web Services مع تغيير التغليف والبنية الداخلية. فبدلاً من SDK واحد كبير، تم تقسيمه إلى حزم معيارية، مع حزمة منفصلة لكل خدمة، بحيث يمكن للتطبيقات استيراد ما تستخدمه فقط. كما يضيف دعمًا أصليًا لـ TypeScript ومكدس برمجيات وسيطة جديدًا. يتبع البدء نمطًا مألوفًا: إنشاء مشروع Node.js، وإضافة حزمة خدمة مثل @aws-sdk/client-dynamodb، ثم إنشاء عميل وإرسال أمر. يعرض README كلاً من النمط المعياري (DynamoDBClient مع ListTablesCommand وclient.send) والنمط غير المعياري الشبيه بـ v2 (DynamoDB مع client.listTables). ويشير إلى أن الواجهة غير المعيارية تزيد حجم الحزمة عند استخدام tree shaking. وبالنسبة إلى React Native، يسرد polyfills المطلوبة للقيم العشوائية ومعالجة URL وتدفقات الويب، ويذكر تمكين دعم package exports في Metro. تشمل التغييرات الرئيسية من v2 إزالة كائن تكوين SDK العام؛ إذ يُمرَّر التكوين الآن إلى كل نسخة عميل، رغم أنه لا يزال من الممكن مشاركته يدويًا. تنتقل معالجة دورة حياة الطلب من مستمعي الأحداث إلى مكدس برمجيات وسيطة، حيث تستدعي كل برمجية وسيطة التالية ويمكن إضافتها باستخدام اسم وخطوة وخيار override. ويربط README بملف UPGRADING.md للحصول على تفصيل كامل لتغييرات API. تشمل المفاهيم عالية المستوى التي يغطيها العملاء والأوامر الأساسية مقابل العملاء المجمّعين، وتخطيط الكود المولّد، والتدفقات، وأدوات ترقيم الصفحات، ووحدة التحكم في الإلغاء. توجد عملاء الخدمات المولّدون تحت /clients ويتم إنتاجهم باستخدام smithy-typescript؛ ويوجد الكود المساعد المشترك في /packages؛ وتوجد الأغلفة عالية المستوى مثل lib-dynamodb وlib-storage في /lib. تتلقى مخرجات التدفق طرق mixin مثل transformToString، التي تقرأ التدفق مرة واحدة ولا يمكن استدعاؤها بشكل متكرر. وتكشف أدوات ترقيم الصفحات عن دوال مولّد غير متزامنة مثل paginateListTables، قابلة للاستخدام مع for await...of. وتتيح واجهة AbortController إلغاء الطلبات. يناقش README أيضًا استخدام Lambda، ويوصي بعميل SDK واحد لكل خدمة ومنطقة يتم تهيئته خارج المعالج، مع إجراء استدعاءات API داخل المعالج لتجنب انحراف وقت التوقيع. ويشير إلى وثائق الأداء ويلاحظ تحسن سلوك البدء البارد على Node 18. ويشرح التثبيت من المصدر عبر الاستنساخ، والبناء باستخدام yarn، وتجميع عميل فردي، وتثبيت الأرشيف الناتج. تشمل قنوات الملاحظات مشكلات GitHub ودردشة Gitter، ويتم قبول المساهمات بموجب ترخيص Apache 2.0. كما يشير المستند إلى وتيرة الإصدار، وسياسة دعم Node.js وECMAScript، وسياسة دعم إصدار TypeScript، واستقرار الحزم المعيارية، والمشكلات المعروفة مثل الوظائف التي تتطلب AWS Common Runtime.