ক্লাউড ফাংশনের জন্য টাইপস্ক্রিপ্ট ব্যবহার করুন

ডেভেলপারদের জন্য যারা টাইপস্ক্রিপ্টে ফাংশন লিখতে পছন্দ করেন, ক্লাউড ফাংশন দুটি ধরনের সমর্থন প্রদান করে:

  • শুরুতে স্বয়ংক্রিয় ট্রান্সপিলেশনের জন্য TypeScript প্রকল্পগুলি তৈরি এবং কনফিগার করুন ( firebase init functions )।
  • একটি প্রিডিপ্লয় হুকের মাধ্যমে ডিপ্লোয় টাইমে জাভাস্ক্রিপ্টে বিদ্যমান টাইপস্ক্রিপ্ট সোর্স ট্রান্সপাইল করুন।

এই গাইডের নির্দেশাবলী অনুসরণ করে, আপনি একটি বিদ্যমান জাভাস্ক্রিপ্ট প্রকল্প টাইপস্ক্রিপ্টে স্থানান্তর করতে পারেন এবং আপনার সোর্স কোড ট্রান্সপিল করার জন্য একটি প্রিডিপ্লয় হুক ব্যবহার করে ফাংশন স্থাপন করা চালিয়ে যেতে পারেন। ফাংশন লেখার সময় টাইপস্ক্রিপ্ট ভ্যানিলা জাভাস্ক্রিপ্টের উপর অনেক সুবিধা দেয়:

  • TypeScript সর্বশেষ জাভাস্ক্রিপ্ট বৈশিষ্ট্যগুলিকে সমর্থন করে যেমন async/await, প্রতিশ্রুতি ব্যবস্থাপনাকে সরলীকরণ করা
  • আপনি কোডিং করার সময় একটি ক্লাউড ফাংশন লিন্টার সাধারণ সমস্যাগুলি হাইলাইট করে৷
  • টাইপ নিরাপত্তা আপনাকে নিয়োজিত ফাংশনে রানটাইম ত্রুটি এড়াতে সাহায্য করে

আপনি যদি TypeScript-এ নতুন হন, তাহলে 5 মিনিটের মধ্যে TypeScript দেখুন।

TypeScript সহ একটি নতুন ক্লাউড ফাংশন প্রকল্প শুরু করা হচ্ছে

একটি নতুন ডিরেক্টরিতে firebase init functions চালান। টুলটি আপনাকে জাভাস্ক্রিপ্ট বা টাইপস্ক্রিপ্ট দিয়ে প্রজেক্ট তৈরি করার বিকল্প দেয়। নিম্নলিখিত প্রকল্প কাঠামো আউটপুট করতে TypeScript চয়ন করুন:

myproject
 +- functions/     # Directory containing all your functions code
      |
      +- package.json  # npm package file describing your Cloud Functions code
      |
      +- tsconfig.json
      |
      +- .eslintrc.js # Optional file if you enabled ESLint
      +- tsconfig.dev.json # Optional file that references .eslintrc.js
      |
      +- src/     # Directory containing TypeScript source
      |   |
      |   +- index.ts  # main source file for your Cloud Functions code
      |
      +- lib/
          |
          +- index.js  # Built/transpiled JavaScript code
          |
          +- index.js.map # Source map for debugging

ইনিশিয়ালাইজেশন সম্পূর্ণ হলে, index.ts-এ নমুনাটি আনকমেন্ট করুন এবং একটি "হ্যালো ওয়ার্ল্ড" ফাংশন কার্যকরী দেখতে npm run serve সার্ভ চালান।

একটি বিদ্যমান TypeScript প্রকল্প ব্যবহার করে

আপনার যদি একটি বিদ্যমান TypeScript প্রজেক্ট থাকে, আপনি প্রত্যেকবার Firebase-এর জন্য ক্লাউড ফাংশনে আপনার কোড স্থাপন করার সময় আপনার প্রজেক্ট ট্রান্সপিল হয়েছে তা নিশ্চিত করতে আপনি একটি প্রিডিপ্লয় হুক যোগ করতে পারেন। আপনার একটি সঠিকভাবে গঠিত tsconfig.json ফাইল এবং একটি Firebase প্রকল্পের প্রয়োজন হবে এবং আপনাকে আপনার Firebase কনফিগারেশনে নিম্নলিখিত পরিবর্তনগুলি করতে হবে:

  1. আপনার TypeScript প্রকল্প তৈরি করতে একটি ব্যাশ স্ক্রিপ্ট যোগ করতে package.json সম্পাদনা করুন। উদাহরণ স্বরূপ:

     {
       "name": "functions",
       "scripts": {
         "build": "npm run lint && tsc"
       }
     ...
    
  2. বিল্ড স্ক্রিপ্ট চালানোর জন্য একটি predeploy হুক যোগ করতে firebase.json সম্পাদনা করুন। উদাহরণ স্বরূপ:

     {
       "functions": {
         "predeploy": "npm --prefix functions run build",
       }
     }
    

এই কনফিগারেশনের সাথে, একটি firebase deploy --only functions কমান্ড আপনার TypeScript কোড তৈরি করে এবং এটিকে ফাংশন হিসাবে স্থাপন করে।

একটি বিদ্যমান জাভাস্ক্রিপ্ট প্রকল্প টাইপস্ক্রিপ্টে স্থানান্তর করা হচ্ছে

আপনার যদি একটি বিদ্যমান ক্লাউড ফাংশন প্রজেক্ট থাকে যা আপনি জাভাস্ক্রিপ্টে শুরু এবং বিকাশ করেছেন, আপনি এটিকে টাইপস্ক্রিপ্টে স্থানান্তর করতে পারেন। শুরু করার আগে আপনাকে একটি গিট চেকপয়েন্ট বা অন্য ব্যাকআপ তৈরি করতে দৃঢ়ভাবে উৎসাহিত করা হচ্ছে।

একটি বিদ্যমান জাভাস্ক্রিপ্ট ক্লাউড ফাংশন প্রকল্প স্থানান্তর করতে:

  1. একটি গিট চেকপয়েন্ট তৈরি করুন এবং আপনার বিদ্যমান জাভাস্ক্রিপ্ট সোর্স ফাইলগুলির কপি সংরক্ষণ করুন।
  2. প্রজেক্ট ডিরেক্টরিতে, firebase init functions চালান এবং ফাংশন লেখার জন্য একটি ভাষার জন্য অনুরোধ করা হলে TypeScript নির্বাচন করুন।
  3. বিদ্যমান package.json ফাইলটি ওভাররাইট করতে চাওয়া হলে, না নির্বাচন করুন যদি না আপনি নিশ্চিত হন যে আপনি বিদ্যমান ফাইলটি রাখতে চান না।
  4. ফাংশন functions/src ডিরেক্টরিতে index.ts মুছুন, এটিকে আপনার বিদ্যমান সোর্স কোড দিয়ে প্রতিস্থাপন করুন।
  5. আরম্ভ করার সময় তৈরি করা tsconfig.json ফাইলে, জাভাস্ক্রিপ্টকে অনুমতি দেওয়ার জন্য কম্পাইলার বিকল্পগুলি সেট করুন: "allowJs": true
  6. আপনার সংরক্ষিত package.json ফাইলটি functions ডিরেক্টরিতে অনুলিপি করুন এবং "main" কে "lib/index.js" এ সেট করতে সম্পাদনা করুন।
  7. এছাড়াও package.json এ, নিম্নলিখিত মত টাইপস্ক্রিপ্টের জন্য একটি বিল্ড স্ক্রিপ্ট যোগ করুন:

     {
       "name": "functions",
       "scripts": {
         "build": "npm run lint && tsc"
       }
     ...
    
  8. npm install --save-dev typescript @typescript-eslint/eslint-plugin @typescript-eslint/parser চালিয়ে ডেভ নির্ভরতা হিসেবে "typescript" যোগ করুন।

  9. সমস্ত নির্ভরতার জন্য, npm install --save @types/<dependency>

  10. ইচ্ছামতো সোর্স কোড .js থেকে .ts পর্যন্ত পুনরায় লিখুন।

টাইপস্ক্রিপ্ট ফাংশন অনুকরণ করা

স্থানীয়ভাবে TypeScript ফাংশন পরীক্ষা করতে, আপনি স্থানীয়ভাবে Run ফাংশনে বর্ণিত এমুলেশন টুল ব্যবহার করতে পারেন। এই টুলগুলি ব্যবহার করার আগে আপনার কোড কম্পাইল করা গুরুত্বপূর্ণ, তাই firebase emulators:start বা firebase functions:shell চালানোর আগে আপনার ফাংশন ডিরেক্টরির মধ্যে npm run build চালানো নিশ্চিত করুন। বিকল্পভাবে, শর্টকাট হিসাবে npm run serve বা npm run shell চালান; এই কমান্ডগুলি উভয়ই বিল্ড চালায় এবং ফাংশন শেল পরিবেশন/শুরু করে।

টাইপস্ক্রিপ্ট প্রকল্পের জন্য ফাংশন লগ

firebase deploy সময়, আপনার প্রকল্পের index.ts index.js এ স্থানান্তরিত হয়, যার অর্থ হল ক্লাউড ফাংশন লগ index.js ফাইল থেকে লাইন নম্বর আউটপুট করবে এবং আপনার লেখা কোড নয়। আপনার জন্য index.ts এ সংশ্লিষ্ট পাথ এবং লাইন নম্বরগুলি খুঁজে পাওয়া সহজ করতে, firebase deploy functions/lib/index.js.map তৈরি করে। আপনি আপনার পছন্দের IDE-এ বা নোড মডিউলের মাধ্যমে এই উৎস মানচিত্রটি ব্যবহার করতে পারেন।