استخدام TypeScript لوظائف السحابة الإلكترونية

بالنسبة إلى المطورين الذين يفضلون كتابة دوال في TypeScript، توفّر دوال السحابة الإلكترونية نوعَين من الدعم:

  • يمكنك إنشاء مشاريع TypeScript وإعدادها للترجمة التلقائية عند الإعداد (firebase init functions).
  • تحويل مصدر TypeScript الحالي إلى JavaScript في وقت النشر من خلال عنصر الجذب المسبق.

باتباع التعليمات الواردة في هذا الدليل، يمكنك نقل بيانات مشروع JavaScript على TypeScript ومواصلة نشر الدوال باستخدام لنشر عنصر الجذب لترجمة رمز المصدر. تقدم TypeScript العديد من المزايا مقارنة بـ vanilla JavaScript عند كتابة الدوال:

  • تتوافق TypeScript مع أحدث ميزات JavaScript، مثل عدم المزامنة أو الانتظار، ما يسهّل إدارة الوعود.
  • تُبرز دالة Cloud Functions المشاكل الشائعة في عملية الترميز.
  • تساعدك ميزة "أمان الكتابة" على تجنُّب أخطاء وقت التشغيل في الوظائف المنشورة.

إذا كنت مبتدئًا في استخدام TypeScript، راجِع TypeScript في غضون 5 دقائق.

بدء مشروع Cloud Functions جديد باستخدام TypeScript

شغِّل firebase init functions في دليل جديد. تمنحك الأداة خيارات لإنشاء المشروع باستخدام JavaScript أو TypeScript. اختر 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. عدِّل package.json لإضافة نص برمجي bash لإنشاء مشروع TypeScript. على سبيل المثال:

     {
       "name": "functions",
       "scripts": {
         "build": "npm run lint && tsc"
       }
     ...
    
  2. يجب تعديل firebase.json لإضافة عنصر جذب مسبق للنشر من أجل تشغيل النص البرمجي للإصدار. على سبيل المثال:

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

باستخدام هذه الإعدادات، يمكن استخدام أمر firebase deploy --only functions تنشئ شفرة TypeScript وتنشرها كدوال.

نقل مشروع JavaScript حالي إلى TypeScript

إذا كان لديك مشروع حالي في Cloud Functions أعددته وتطويرها باستخدام JavaScript، فيمكنك نقلها إلى TypeScript. ننصحك بشدة بإنشاء نقطة تفتيش في git أو النسخ الاحتياطي قبل البدء.

لنقل مشروع حالي لـ JavaScript Cloud Functions:

  1. أنشِئ نقطة فحص git واحفظ نُسخًا من ملفات مصدر JavaScript الحالية.
  2. في دليل المشروع، شغِّل firebase init functions واختَر TypeScript عندما يُطلب منك إدخال لغة لكتابة الدوال.
  3. عندما يُطلب منك تحديد ما إذا كنت تريد استبدال ملف package.json الحالي، اختَر لا إلا إذا كنت متأكدًا من أنك لا تريد الاحتفاظ بالملف الحالي.
  4. احذف index.ts في الدليل functions/src، واستبدله برمز المصدر الحالي.
  5. في الملف tsconfig.json الذي تم إنشاؤه أثناء الإعداد، اضبط خيارات برنامج التجميع للسماح بلغة JavaScript: "allowJs": true.
  6. انسخ ملف package.json المحفوظ في دليل functions، وعدِّله لضبط "main" على "lib/index.js".
  7. في package.json أيضًا، أضِف نصًا برمجيًا للإصدار TypeScript على النحو التالي:

     {
       "name": "functions",
       "scripts": {
         "build": "npm run lint && tsc"
       }
     ...
    
  8. أضِف "typescript" كاعتمادية على المطوّر من خلال تشغيل npm install --save-dev typescript @typescript-eslint/eslint-plugin @typescript-eslint/parser.

  9. بالنسبة إلى جميع الموارد التابعة، شغِّل npm install --save @types/<dependency>.

  10. أعِد كتابة رمز المصدر من .js إلى .ts على النحو المطلوب.

محاكاة دوال TypeScript

لاختبار دوال TypeScript محليًا، يمكنك استخدام أدوات المحاكاة الموضحة في تشغيل الدوال محليًا. من المهم تجميع الرمز قبل استخدام هذه الأدوات، لذا احرص على تشغيل npm run build داخل دليل الدوال قبل تشغيل firebase emulators:start أو firebase functions:shell بدلاً من ذلك، يمكنك تشغيل npm run serve أو npm run shell كاختصار فهذه الأوامر تقوم بتشغيل الإصدار تقديم/بدء الدوال Shell.

سجلات الدوال لمشاريع TypeScript

خلال firebase deploy، يتم تحويل index.ts لمشروعك إلى index.js. مما يعني أن سجل دوال السحابة سيُخرج أرقام الأسطر من index.js وليس الرمز الذي كتبته. لتسهيل العثور على والمسارات المقابلة وأرقام الأسطر في index.ts، يُنشئ firebase deploy functions/lib/index.js.map. يمكنك استخدام هذا المصدر في بيئة التطوير المتكاملة التي تفضّلها أو عبر وحدة عقدة.