واجهة زمن التشغيل البرمجية الحدودية في Next.js

من موسوعة حسوب

تعتمد واجهة زمن التشغيل البرمجية الحدودية Edge Runtime API في Next.js على الواجهة البرمجية Web التي تُستخدم من قبل الأداة الوسطية أو وجهات API الحدودية.

الواجهة البرمجية للشبكة

  • addEventListener
  • Fetch
  • FetchEvent
  • Headers
  • Request
  • Response
  • URLSearchParams
  • FormData
  • File
  • Blob

الواجهة البرمجية للتشفير

  • TextDecoder
  • TextEncoder
  • atob
  • btoa

الواجه البرمجية لنقل البيانات عبر ويب

  • ReadableStream
  • ReadableStreamBYOBReader
  • ReadableStreamDefaultReader
  • TransformStream
  • WritableStream
  • WritableStreamDefaultWriter

واجهة ويب البرمجية Crypto

  • crypto
  • CryptoKey
  • SubtleCrypto

واجهة ويب البرمجية المعيارية

  • structuredClone
  • URLPattern
  • Web Cache

أساسيات المحرّك V8

  • Array
  • ArrayBuffer
  • Atomics
  • BigInt
  • BigInt64Array
  • BigUint64Array
  • Boolean
  • clearInterval
  • clearTimeout
  • console
  • DataView
  • Date
  • decodeURI
  • decodeURIComponent
  • encodeURI
  • encodeURIComponent
  • Error
  • EvalError
  • Float32Array
  • Float64Array
  • Function
  • Infinity
  • Int8Array
  • Int16Array
  • Int32Array
  • Intl
  • isFinite
  • isNaN
  • JSON
  • Map
  • Math
  • Number
  • Object
  • parseFloat
  • parseInt
  • Promise
  • Proxy
  • RangeError
  • ReferenceError
  • Reflect
  • RegExp
  • Set
  • setInterval
  • setTimeout
  • SharedArrayBuffer
  • String
  • Symbol
  • SyntaxError
  • TextDecoder
  • TextEncoder
  • TypeError
  • Uint8Array
  • Uint8ClampedArray
  • Uint16Array
  • Uint32Array
  • URIError
  • URL
  • URLSearchParams
  • WeakMap
  • WeakSet
  • WebAssembly

متغيرات البيئة

بإمكانك استخدام الملف process.env للوصول إلى متغيرات البيئة عبر next dev و next build. إن تنفيذ التعليمة console.log على process.env لن يعرض جميع متغيرات البيئة، وعليك ان تصل إلى المتغيرات مباشرة كالتالي:

console.log(process.env)
// { NEXT_RUNTIME: 'edge' }
console.log(process.env.TEST_VARIABLE)
// { NEXT_RUNTIME: 'edge', TEST_VARIABLE: 'value' }

الواجهات البرمجية غير المدعومة

  • لا تُدعم الواجهة البرمجية الأصلية للغة Node.js، فلن تتمكن من القراءة أو الكتابة إلى منظومة الملفات.
  • يمكن استخدام node_modules طالما أنها تُنجز باستخدام وحدات ES ولا تستخدم واجهة Node.js البرمجية الأصلية.
  • لا يُسمح باستدعاء require مباشرة، لا بد من استخدام وحدات ES بدلًا منه.
  • عُطلت ميزات لغة JavaScript التالية:
    • eval: تقييم شيفرة JavaScript المُمثَّلة كنص.
    • new Function(evalString): إنشاء دالة جديدة من خلال شيفرة قُدمّت كوسيط argument.

المصادر

  • الصفحة Edge Runtime من توثيق Next.js الرسمي.