Edge Runtime

Next.js Edge Runtime standart Web API'lerini temel alır, aşağıdaki API'leri destekler:

Network APIs

APIDescription
BlobRepresents a blob
fetchFetches a resource
FetchEventRepresents a fetch event
FileRepresents a file
FormDataRepresents form data
HeadersRepresents HTTP headers
RequestRepresents an HTTP request
ResponseRepresents an HTTP response
URLSearchParamsRepresents URL search parameters
WebSocketRepresents a websocket connection

Encoding APIs

APIDescription
atobDecodes a base-64 encoded string
btoaEncodes a string in base-64
TextDecoderDecodes a Uint8Array into a string
TextDecoderStreamChainable decoder for streams
TextEncoderEncodes a string into a Uint8Array
TextEncoderStreamChainable encoder for streams

Stream APIs

APIDescription
ReadableStreamRepresents a readable stream
ReadableStreamBYOBReaderRepresents a reader of a ReadableStream
ReadableStreamDefaultReaderRepresents a reader of a ReadableStream
TransformStreamRepresents a transform stream
WritableStreamRepresents a writable stream
WritableStreamDefaultWriterRepresents a writer of a WritableStream

Crypto APIs

APIDescription
cryptoProvides access to the cryptographic functionality of the platform
CryptoKeyRepresents a cryptographic key
SubtleCryptoProvides access to common cryptographic primitives, like hashing, signing, encryption or decryption

Web Standard APIs

APIDescription
AbortControllerAllows you to abort one or more DOM requests as and when desired
ArrayRepresents an array of values
ArrayBufferRepresents a generic, fixed-length raw binary data buffer
AtomicsProvides atomic operations as static methods
BigIntRepresents a whole number with arbitrary precision
BigInt64ArrayRepresents a typed array of 64-bit signed integers
BigUint64ArrayRepresents a typed array of 64-bit unsigned integers
BooleanRepresents a logical entity and can have two values: true and false
clearIntervalCancels a timed, repeating action which was previously established by a call to setInterval()
clearTimeoutCancels a timed, repeating action which was previously established by a call to setTimeout()
consoleProvides access to the browser's debugging console
DataViewRepresents a generic view of an ArrayBuffer
DateRepresents a single moment in time in a platform-independent format
decodeURIDecodes a Uniform Resource Identifier (URI) previously created by encodeURI or by a similar routine
decodeURIComponentDecodes a Uniform Resource Identifier (URI) component previously created by encodeURIComponent or by a similar routine
DOMExceptionRepresents an error that occurs in the DOM
encodeURIEncodes a Uniform Resource Identifier (URI) by replacing each instance of certain characters by one, two, three, or four escape sequences representing the UTF-8 encoding of the character
encodeURIComponentEncodes a Uniform Resource Identifier (URI) component by replacing each instance of certain characters by one, two, three, or four escape sequences representing the UTF-8 encoding of the character
ErrorRepresents an error when trying to execute a statement or accessing a property
EvalErrorRepresents an error that occurs regarding the global function eval()
Float32ArrayRepresents a typed array of 32-bit floating point numbers
Float64ArrayRepresents a typed array of 64-bit floating point numbers
FunctionRepresents a function
InfinityRepresents the mathematical Infinity value
Int8ArrayRepresents a typed array of 8-bit signed integers
Int16ArrayRepresents a typed array of 16-bit signed integers
Int32ArrayRepresents a typed array of 32-bit signed integers
IntlProvides access to internationalization and localization functionality
isFiniteDetermines whether a value is a finite number
isNaNDetermines whether a value is NaN or not
JSONProvides functionality to convert JavaScript values to and from the JSON format
MapRepresents a collection of values, where each value may occur only once
MathProvides access to mathematical functions and constants
NumberRepresents a numeric value
ObjectRepresents the object that is the base of all JavaScript objects
parseFloatParses a string argument and returns a floating point number
parseIntParses a string argument and returns an integer of the specified radix
PromiseRepresents the eventual completion (or failure) of an asynchronous operation, and its resulting value
ProxyRepresents an object that is used to define custom behavior for fundamental operations (e.g. property lookup, assignment, enumeration, function invocation, etc)
queueMicrotaskQueues a microtask to be executed
RangeErrorRepresents an error when a value is not in the set or range of allowed values
ReferenceErrorRepresents an error when a non-existent variable is referenced
ReflectProvides methods for interceptable JavaScript operations
RegExpRepresents a regular expression, allowing you to match combinations of characters
SetRepresents a collection of values, where each value may occur only once
setIntervalRepeatedly calls a function, with a fixed time delay between each call
setTimeoutCalls a function or evaluates an expression after a specified number of milliseconds
SharedArrayBufferRepresents a generic, fixed-length raw binary data buffer
StringRepresents a sequence of characters
structuredCloneCreates a deep copy of a value
SymbolRepresents a unique and immutable data type that is used as the key of an object property
SyntaxErrorRepresents an error when trying to interpret syntactically invalid code
TypeErrorRepresents an error when a value is not of the expected type
Uint8ArrayRepresents a typed array of 8-bit unsigned integers
Uint8ClampedArrayRepresents a typed array of 8-bit unsigned integers clamped to 0-255
Uint32ArrayRepresents a typed array of 32-bit unsigned integers
URIErrorRepresents an error when a global URI handling function was used in a wrong way
URLRepresents an object providing static methods used for creating object URLs
URLPatternRepresents a URL pattern
URLSearchParamsRepresents a collection of key/value pairs
WeakMapRepresents a collection of key/value pairs in which the keys are weakly referenced
WeakSetRepresents a collection of objects in which each object may occur only once
WebAssemblyProvides access to WebAssembly

Next.js Specific Polyfills

Environment Variables

Hem next dev hem de next build için Ortam Değişkenlerine erişmek için process.env adresini kullanabilirsiniz.

Unsupported APIs

Edge Runtime'ın aşağıdakiler dahil bazı kısıtlamaları vardır:

Aşağıdaki JavaScript dili özellikleri devre dışı bırakılmıştır ve çalışmayacaktır:

APIDescription
evalEvaluates JavaScript code represented as a string
new Function(evalString)Creates a new function with the code provided as an argument
WebAssembly.compileCompiles a WebAssembly module from a buffer source
WebAssembly.instantiateCompiles and instantiates a WebAssembly module from a buffer source

Nadir durumlarda, kodunuz çalışma zamanında erişilemeyen ve ağaç sallama ile kaldırılamayan bazı dinamik kod değerlendirme deyimleri içerebilir (veya içe aktarılabilir). Middleware veya Edge API Route dışa aktarılan yapılandırmanızla belirli dosyalara izin vermek için denetimi gevşetebilirsiniz:

export const config = {
  runtime: 'edge', // for Edge API Routes only
  unstable_allowDynamic: [
    // allows a single file
    '/lib/utilities.js',
    // use a glob to allow anything in the function-bind 3rd party module
    '/node_modules/function-bind/**',
  ],
}

unstable_allowDynamic bir glob veya belirli dosyalar için dinamik kod değerlendirmesini yok sayan bir glob dizisidir. Globlar uygulamanızın kök klasörüne görelidir.

Bu ifadeler Edge üzerinde çalıştırılırsa, çalışma zamanı hatasına neden olacakları konusunda uyarılmalıdır.