ডেভেলপারদের জন্য যারা টাইপস্ক্রিপ্টে ফাংশন লিখতে পছন্দ করেন, Cloud Functions দুটি ধরনের সমর্থন প্রদান করে:
- শুরুতে স্বয়ংক্রিয় ট্রান্সপিলেশনের জন্য TypeScript প্রকল্পগুলি তৈরি এবং কনফিগার করুন (
firebase init functions
)। - একটি প্রিডিপ্লয় হুকের মাধ্যমে ডিপ্লোয় টাইমে জাভাস্ক্রিপ্টে বিদ্যমান টাইপস্ক্রিপ্ট সোর্স ট্রান্সপাইল করুন।
এই গাইডের নির্দেশাবলী অনুসরণ করে, আপনি একটি বিদ্যমান জাভাস্ক্রিপ্ট প্রকল্প টাইপস্ক্রিপ্টে স্থানান্তর করতে পারেন এবং আপনার সোর্স কোড ট্রান্সপিল করার জন্য একটি প্রিডিপ্লয় হুক ব্যবহার করে ফাংশন স্থাপন করা চালিয়ে যেতে পারেন। ফাংশন লেখার সময় টাইপস্ক্রিপ্ট ভ্যানিলা জাভাস্ক্রিপ্টের উপর অনেক সুবিধা দেয়:
- TypeScript সর্বশেষ জাভাস্ক্রিপ্ট বৈশিষ্ট্যগুলিকে সমর্থন করে যেমন async/await, প্রতিশ্রুতি ব্যবস্থাপনাকে সরলীকরণ করা
- আপনি কোডিং করার সময় একটি Cloud Functions লিন্টার সাধারণ সমস্যাগুলি হাইলাইট করে৷
- টাইপ নিরাপত্তা আপনাকে নিয়োজিত ফাংশনে রানটাইম ত্রুটি এড়াতে সাহায্য করে
আপনি যদি TypeScript-এ নতুন হন, তাহলে 5 মিনিটের মধ্যে TypeScript দেখুন।
TypeScript সহ একটি নতুন Cloud Functions প্রকল্প শুরু করা হচ্ছে
একটি নতুন ডিরেক্টরিতে 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 প্রজেক্ট থাকে, আপনি প্রতিবার Cloud Functions for Firebase আপনার কোড স্থাপন করার সময় আপনার প্রজেক্ট ট্রান্সপিল হয়েছে তা নিশ্চিত করতে আপনি একটি প্রিডিপ্লয় হুক যোগ করতে পারেন। আপনার একটি সঠিকভাবে গঠিত tsconfig.json
ফাইল এবং একটি Firebase প্রকল্পের প্রয়োজন হবে এবং আপনাকে আপনার Firebase কনফিগারেশনে নিম্নলিখিত পরিবর্তনগুলি করতে হবে:
আপনার TypeScript প্রকল্প তৈরি করতে একটি ব্যাশ স্ক্রিপ্ট যোগ করতে
package.json
সম্পাদনা করুন। যেমন:{ "name": "functions", "scripts": { "build": "npm run lint && tsc" } ...
বিল্ড স্ক্রিপ্ট চালানোর জন্য একটি predeploy হুক যোগ করতে
firebase.json
সম্পাদনা করুন। যেমন:{ "functions": { "predeploy": "npm --prefix functions run build", } }
এই কনফিগারেশনের সাথে, একটি firebase deploy --only functions
কমান্ড আপনার TypeScript কোড তৈরি করে এবং এটিকে ফাংশন হিসাবে স্থাপন করে।
একটি বিদ্যমান জাভাস্ক্রিপ্ট প্রকল্প টাইপস্ক্রিপ্টে স্থানান্তর করা হচ্ছে
আপনার যদি একটি বিদ্যমান Cloud Functions প্রজেক্ট থাকে যা আপনি জাভাস্ক্রিপ্টে শুরু এবং বিকাশ করেছেন, আপনি এটিকে টাইপস্ক্রিপ্টে স্থানান্তর করতে পারেন। শুরু করার আগে আপনাকে একটি গিট চেকপয়েন্ট বা অন্য ব্যাকআপ তৈরি করতে দৃঢ়ভাবে উৎসাহিত করা হচ্ছে।
একটি বিদ্যমান জাভাস্ক্রিপ্ট Cloud Functions প্রকল্প স্থানান্তর করতে:
- একটি গিট চেকপয়েন্ট তৈরি করুন এবং আপনার বিদ্যমান জাভাস্ক্রিপ্ট সোর্স ফাইলগুলির কপি সংরক্ষণ করুন।
- প্রজেক্ট ডিরেক্টরিতে,
firebase init functions
চালান এবং ফাংশন লেখার জন্য একটি ভাষার জন্য অনুরোধ করা হলেTypeScript
নির্বাচন করুন। - বিদ্যমান
package.json
ফাইলটি ওভাররাইট করতে চাওয়া হলে, না নির্বাচন করুন যদি না আপনি নিশ্চিত হন যে আপনি বিদ্যমান ফাইলটি রাখতে চান না। -
functions/src
ডিরেক্টরিতেindex.ts
মুছুন, এটিকে আপনার বিদ্যমান সোর্স কোড দিয়ে প্রতিস্থাপন করুন। - আরম্ভ করার সময় তৈরি করা
tsconfig.json
ফাইলে, জাভাস্ক্রিপ্টকে অনুমতি দেওয়ার জন্য কম্পাইলার বিকল্পগুলি সেট করুন:"allowJs": true
। - আপনার সংরক্ষিত
package.json
ফাইলটিfunctions
ডিরেক্টরিতে অনুলিপি করুন এবং"main"
"lib/index.js"
এ সেট করতে সম্পাদনা করুন। এছাড়াও
package.json
এ, নিম্নলিখিত মত টাইপস্ক্রিপ্টের জন্য একটি বিল্ড স্ক্রিপ্ট যোগ করুন:{ "name": "functions", "scripts": { "build": "npm run lint && tsc" } ...
npm install --save-dev typescript @typescript-eslint/eslint-plugin @typescript-eslint/parser
চালিয়ে ডেভ নির্ভরতা হিসেবে"typescript"
যোগ করুন।সমস্ত নির্ভরতার জন্য,
npm install --save @types/<dependency>
।ইচ্ছামতো সোর্স কোড .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-এ বা নোড মডিউলের মাধ্যমে এই উৎস মানচিত্রটি ব্যবহার করতে পারেন।
ডেভেলপারদের জন্য যারা টাইপস্ক্রিপ্টে ফাংশন লিখতে পছন্দ করেন, Cloud Functions দুটি ধরনের সমর্থন প্রদান করে:
- শুরুতে স্বয়ংক্রিয় ট্রান্সপিলেশনের জন্য TypeScript প্রকল্পগুলি তৈরি এবং কনফিগার করুন (
firebase init functions
)। - একটি প্রিডিপ্লয় হুকের মাধ্যমে ডিপ্লোয় টাইমে জাভাস্ক্রিপ্টে বিদ্যমান টাইপস্ক্রিপ্ট সোর্স ট্রান্সপাইল করুন।
এই গাইডের নির্দেশাবলী অনুসরণ করে, আপনি একটি বিদ্যমান জাভাস্ক্রিপ্ট প্রকল্প টাইপস্ক্রিপ্টে স্থানান্তর করতে পারেন এবং আপনার সোর্স কোড ট্রান্সপিল করার জন্য একটি প্রিডিপ্লয় হুক ব্যবহার করে ফাংশন স্থাপন করা চালিয়ে যেতে পারেন। ফাংশন লেখার সময় টাইপস্ক্রিপ্ট ভ্যানিলা জাভাস্ক্রিপ্টের উপর অনেক সুবিধা দেয়:
- TypeScript সর্বশেষ জাভাস্ক্রিপ্ট বৈশিষ্ট্যগুলিকে সমর্থন করে যেমন async/await, প্রতিশ্রুতি ব্যবস্থাপনাকে সরলীকরণ করা
- আপনি কোডিং করার সময় একটি Cloud Functions লিন্টার সাধারণ সমস্যাগুলি হাইলাইট করে৷
- টাইপ নিরাপত্তা আপনাকে নিয়োজিত ফাংশনে রানটাইম ত্রুটি এড়াতে সাহায্য করে
আপনি যদি TypeScript-এ নতুন হন, তাহলে 5 মিনিটের মধ্যে TypeScript দেখুন।
TypeScript সহ একটি নতুন Cloud Functions প্রকল্প শুরু করা হচ্ছে
একটি নতুন ডিরেক্টরিতে 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 প্রজেক্ট থাকে, আপনি প্রতিবার Cloud Functions for Firebase আপনার কোড স্থাপন করার সময় আপনার প্রজেক্ট ট্রান্সপিল হয়েছে তা নিশ্চিত করতে আপনি একটি প্রিডিপ্লয় হুক যোগ করতে পারেন। আপনার একটি সঠিকভাবে গঠিত tsconfig.json
ফাইল এবং একটি Firebase প্রকল্পের প্রয়োজন হবে এবং আপনাকে আপনার Firebase কনফিগারেশনে নিম্নলিখিত পরিবর্তনগুলি করতে হবে:
আপনার TypeScript প্রকল্প তৈরি করতে একটি ব্যাশ স্ক্রিপ্ট যোগ করতে
package.json
সম্পাদনা করুন। যেমন:{ "name": "functions", "scripts": { "build": "npm run lint && tsc" } ...
বিল্ড স্ক্রিপ্ট চালানোর জন্য একটি predeploy হুক যোগ করতে
firebase.json
সম্পাদনা করুন। যেমন:{ "functions": { "predeploy": "npm --prefix functions run build", } }
এই কনফিগারেশনের সাথে, একটি firebase deploy --only functions
কমান্ড আপনার TypeScript কোড তৈরি করে এবং এটিকে ফাংশন হিসাবে স্থাপন করে।
একটি বিদ্যমান জাভাস্ক্রিপ্ট প্রকল্প টাইপস্ক্রিপ্টে স্থানান্তর করা হচ্ছে
আপনার যদি একটি বিদ্যমান Cloud Functions প্রজেক্ট থাকে যা আপনি জাভাস্ক্রিপ্টে শুরু এবং বিকাশ করেছেন, আপনি এটিকে টাইপস্ক্রিপ্টে স্থানান্তর করতে পারেন। শুরু করার আগে আপনাকে একটি গিট চেকপয়েন্ট বা অন্য ব্যাকআপ তৈরি করতে দৃঢ়ভাবে উৎসাহিত করা হচ্ছে।
একটি বিদ্যমান জাভাস্ক্রিপ্ট Cloud Functions প্রকল্প স্থানান্তর করতে:
- একটি গিট চেকপয়েন্ট তৈরি করুন এবং আপনার বিদ্যমান জাভাস্ক্রিপ্ট সোর্স ফাইলগুলির কপি সংরক্ষণ করুন।
- প্রজেক্ট ডিরেক্টরিতে,
firebase init functions
চালান এবং ফাংশন লেখার জন্য একটি ভাষার জন্য অনুরোধ করা হলেTypeScript
নির্বাচন করুন। - বিদ্যমান
package.json
ফাইলটি ওভাররাইট করতে চাওয়া হলে, না নির্বাচন করুন যদি না আপনি নিশ্চিত হন যে আপনি বিদ্যমান ফাইলটি রাখতে চান না। -
functions/src
ডিরেক্টরিতেindex.ts
মুছুন, এটিকে আপনার বিদ্যমান সোর্স কোড দিয়ে প্রতিস্থাপন করুন। - আরম্ভ করার সময় তৈরি করা
tsconfig.json
ফাইলে, জাভাস্ক্রিপ্টকে অনুমতি দেওয়ার জন্য কম্পাইলার বিকল্পগুলি সেট করুন:"allowJs": true
। - আপনার সংরক্ষিত
package.json
ফাইলটিfunctions
ডিরেক্টরিতে অনুলিপি করুন এবং"main"
"lib/index.js"
এ সেট করতে সম্পাদনা করুন। এছাড়াও
package.json
এ, নিম্নলিখিত মত টাইপস্ক্রিপ্টের জন্য একটি বিল্ড স্ক্রিপ্ট যোগ করুন:{ "name": "functions", "scripts": { "build": "npm run lint && tsc" } ...
npm install --save-dev typescript @typescript-eslint/eslint-plugin @typescript-eslint/parser
চালিয়ে ডেভ নির্ভরতা হিসেবে"typescript"
যোগ করুন।সমস্ত নির্ভরতার জন্য,
npm install --save @types/<dependency>
।ইচ্ছামতো সোর্স কোড .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-এ বা নোড মডিউলের মাধ্যমে এই উৎস মানচিত্রটি ব্যবহার করতে পারেন।