প্রকল্প সম্পর্কে

AWS SDK for JavaScript v3 হল সংস্করণ 2-এর একটি পুনর্লিখন যা Amazon Web Services-এর সাথে কাজ করার লক্ষ্য বজায় রাখে কিন্তু প্যাকেজিং এবং অভ্যন্তরীণ আর্কিটেকচার পরিবর্তন করে। একটি বড় SDK-এর পরিবর্তে, এটি মডুলার প্যাকেজে বিভক্ত, প্রতিটি পরিষেবার জন্য আলাদা প্যাকেজ রয়েছে, যাতে অ্যাপ্লিকেশনগুলি কেবল যা ব্যবহার করে তা ইমপোর্ট করতে পারে। এটি প্রথম-শ্রেণির TypeScript সমর্থন এবং একটি নতুন মিডলওয়্যার স্ট্যাকও যোগ করে। শুরু করা একটি পরিচিত প্যাটার্ন অনুসরণ করে: একটি Node.js প্রজেক্ট তৈরি করুন, @aws-sdk/client-dynamodb-এর মতো একটি পরিষেবা প্যাকেজ যোগ করুন, তারপর একটি ক্লায়েন্ট ইনস্ট্যানশিয়েট করুন এবং একটি কমান্ড পাঠান। README মডুলার স্টাইল (DynamoDBClient সহ ListTablesCommand এবং client.send) এবং একটি নন-মডুলার, v2-এর মতো স্টাইল (client.listTables সহ DynamoDB) উভয়ই দেখায়। এটি উল্লেখ করে যে ট্রি শেকিং ব্যবহার করা হলে নন-মডুলার ইন্টারফেস বান্ডেল সাইজ বাড়ায়। React Native-এর জন্য, এটি র‍্যান্ডম মান, URL হ্যান্ডলিং এবং ওয়েব স্ট্রিমের জন্য প্রয়োজনীয় পলিফিল তালিকাভুক্ত করে এবং Metro-তে প্যাকেজ এক্সপোর্ট সমর্থন সক্ষম করার কথা উল্লেখ করে। v2 থেকে মূল পরিবর্তনগুলির মধ্যে রয়েছে একটি গ্লোবাল SDK কনফিগারেশন অবজেক্ট অপসারণ; কনফিগারেশন এখন প্রতিটি ক্লায়েন্ট ইনস্ট্যান্সে পাস করা হয়, যদিও এটি এখনও ম্যানুয়ালি শেয়ার করা যেতে পারে। রিকোয়েস্ট লাইফসাইকেল হ্যান্ডলিং ইভেন্ট লিসেনার থেকে একটি মিডলওয়্যার স্ট্যাকে পরিবর্তিত হয়, যেখানে প্রতিটি মিডলওয়্যার পরবর্তীটিকে কল করে এবং একটি নাম, ধাপ এবং ওভাররাইড বিকল্প সহ যোগ করা যেতে পারে। README API পরিবর্তনের সম্পূর্ণ বিবরণের জন্য একটি UPGRADING.md-এর লিঙ্ক দেয়। আলোচিত উচ্চ-স্তরের ধারণাগুলির মধ্যে রয়েছে বেয়ার-বোনস ক্লায়েন্ট এবং কমান্ড বনাম অ্যাগ্রিগেটেড ক্লায়েন্ট, জেনারেটেড কোড লেআউট, স্ট্রিম, পেজিনেটর এবং অ্যাবর্ট কন্ট্রোলার। জেনারেটেড সার্ভিস ক্লায়েন্টরা /clients-এর অধীনে থাকে এবং smithy-typescript দিয়ে তৈরি হয়; শেয়ার্ড ইউটিলিটি কোড /packages-এ থাকে; lib-dynamodb এবং lib-storage-এর মতো উচ্চ-স্তরের র‍্যাপার /lib-এ থাকে। স্ট্রিম আউটপুট 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 প্রয়োজন এমন কার্যকারিতার মতো পরিচিত সমস্যাগুলিও উল্লেখ করে।