इस प्रोजेक्ट के बारे में

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 के लिए, यह random values, URL handling, और web streams के लिए आवश्यक polyfills की सूची देता है, और Metro में package exports समर्थन सक्षम करने का उल्लेख करता है। v2 से मुख्य परिवर्तनों में वैश्विक SDK कॉन्फ़िगरेशन ऑब्जेक्ट को हटाना शामिल है; कॉन्फ़िगरेशन अब प्रत्येक क्लाइंट इंस्टेंस को पास किया जाता है, हालांकि इसे मैन्युअल रूप से साझा किया जा सकता है। अनुरोध जीवनचक्र हैंडलिंग इवेंट लिसनर से मिडलवेयर स्टैक में स्थानांतरित हो जाती है, जहां प्रत्येक मिडलवेयर अगले को कॉल करता है और इसे नाम, चरण और ओवरराइड विकल्प के साथ जोड़ा जा सकता है। README API परिवर्तनों के पूर्ण विवरण के लिए UPGRADING.md से लिंक करता है। कवर किए गए उच्च-स्तरीय अवधारणाओं में bare-bones क्लाइंट और कमांड बनाम aggregated क्लाइंट, जेनरेट किए गए कोड लेआउट, स्ट्रीम, पेजिनेटर और abort controller शामिल हैं। जेनरेट किए गए सेवा क्लाइंट /clients के अंतर्गत रहते हैं और smithy-typescript के साथ उत्पन्न होते हैं; साझा उपयोगिता कोड /packages में रहता है; lib-dynamodb और lib-storage जैसे उच्च-स्तरीय रैपर /lib में रहते हैं। स्ट्रीम आउटपुट को transformToString जैसे mixin विधियां मिलती हैं, जो स्ट्रीम को एक बार पढ़ती हैं और बार-बार कॉल नहीं की जा सकतीं। पेजिनेटर async generator फ़ंक्शन जैसे paginateListTables को उजागर करते हैं, जिन्हें for await...of के साथ उपयोग किया जा सकता है। AbortController इंटरफ़ेस अनुरोधों को रद्द करने की अनुमति देता है। README Lambda उपयोग पर भी चर्चा करता है, प्रत्येक सेवा और क्षेत्र के लिए एक SDK क्लाइंट की सिफारिश करता है जिसे हैंडलर के बाहर इनिशियलाइज़ किया जाए, और signing time skew से बचने के लिए हैंडलर के अंदर API कॉल किए जाएं। यह प्रदर्शन दस्तावेज़ीकरण की ओर इशारा करता है और Node 18 पर बेहतर cold-start व्यवहार को नोट करता है। यह स्रोत से इंस्टॉल करने की व्याख्या करता है: क्लोन करना, yarn के साथ बिल्ड करना, एक व्यक्तिगत क्लाइंट को पैक करना, और परिणामी आर्काइव को इंस्टॉल करना। फीडबैक चैनलों में GitHub issues और एक Gitter चैट शामिल हैं, और योगदान Apache 2.0 लाइसेंस के तहत स्वीकार किए जाते हैं। दस्तावेज़ रिलीज़ कैडेंस, Node.js और ECMAScript समर्थन नीति, TypeScript संस्करण समर्थन नीति, मॉड्यूलर पैकेजों की स्थिरता, और ज्ञात समस्याओं जैसे AWS Common Runtime की आवश्यकता वाली कार्यक्षमता का भी उल्लेख करता है।