Skip to content

Latest commit

 

History

History
162 lines (138 loc) · 30.5 KB

File metadata and controls

162 lines (138 loc) · 30.5 KB
title description
Edge Runtime
Edge Runtime の API リファレンスです。

Next.js Edge ランタイムは標準的な Web API をベースにしており、以下の API をサポートしています:

Network APIs

API 説明
Blob blob
fetch リソースをフェッチする
FetchEvent fetch イベント
File ファイル
FormData フォームデータ
Headers HTTP ヘッダー
Request HTTP リクエスト
Response HTTP レスポンス
URLSearchParams URL の search パラメータ
WebSocket websocket 接続

Encoding APIs

API 説明
atob Base-64 エンコードされた文字列をデコードする 
btoa 文字列を base-64 でエンコードする 
TextDecoder Uint8Array を文字列にデコードする
TextDecoderStream チェーン可能なストリーム用デコーダ 
TextEncoder 文字列を Uint8Array にエンコードする
TextEncoderStream ストリーム用のチェーン可能なエンコーダー 

Stream APIs

API 説明
ReadableStream 読み取り可能なストリーム
ReadableStreamBYOBReader ReadableStream のリーダー
ReadableStreamDefaultReader ReadableStream のリーダー
TransformStream 変換ストリーム
WritableStream 書き込み可能なストリーム
WritableStreamDefaultWriter WritableStream のライター

Crypto APIs

API 説明
crypto プラットフォームの暗号機能へのアクセスを提供する
CryptoKey 暗号鍵
SubtleCrypto ハッシュ、署名、暗号化、復号化などの一般的な暗号プリミティブへのアクセスを提供する

Web Standard APIs

API 説明
AbortController 1 つまたは複数の DOM リクエストを中断する
Array 値の配列
ArrayBuffer 一般的な固定長の生バイナリデータバッファ
Atomics アトミック操作を静的メソッドとして提供する
BigInt 任意の精度の整数
BigInt64Array 64 ビット符号付き整数の型付き配列
BigUint64Array 64 ビット符号なし整数の型付き配列
Boolean 論理的な実体を表し、truefalseの 2 つの値を持つ
clearInterval setInterval()のコールによって確立された、時間指定の繰り返しアクションをキャンセルする
clearTimeout setTimeout()のコールによって確立された、時間指定の繰り返しアクションをキャンセルする
console ブラウザのデバッグ・コンソールにアクセスする
DataView ArrayBufferの一般的なビュー
Date プラットフォームに依存しないフォーマットで、ある一瞬を表す
decodeURI encodeURIまたは同様のルーチンで以前に作成された統一資源識別子(URI)をデコードする
decodeURIComponent encodeURIComponentまたは同様のルーチンで以前に作成された統一資源識別子(URI)コンポーネントをデコードする
DOMException DOM で発生したエラー
encodeURI 特定の文字の各インスタンスを、その文字の UTF-8 エンコーディングを表す 1 つ、2 つ、3 つ、または 4 つのエスケープシーケンスで置き換えることによって、統一資源識別子(URI)をエンコードする
encodeURIComponent 特定の文字の各インスタンスを、その文字の UTF-8 エンコーディングを表す 1 つ、2 つ、3 つ、または 4 つのエスケープシーケンスで置き換えることによって、統一資源識別子(URI)コンポーネントをエンコードする
Error 文を実行しようとしたとき、またはプロパティにアクセスしようとしたときのエラー
EvalError グローバル関数eval()に関して発生したエラー
Float32Array 32 ビット浮動小数点数の型付き配列
Float64Array 64 ビット浮動小数点数の型付き配列
Function 関数
Infinity 数学的な無限大の値
Int8Array 8 ビット符号付き整数の型付き配列
Int16Array 16 ビット符号付き整数の型付き配列
Int32Array 32 ビット符号付き整数の型付き配列
Intl 国際化およびローカリゼーション機能へのアクセスを提供する
isFinite 値が有限であるかどうかを判定する
isNaN 値がNaNかどうかを判定する
JSON JavaScript の値を JSON 形式に変換する機能を提供する
Map 値の集合を表し、各値は一度しか出現しない
Math 数学関数と定数へのアクセスを提供する
Number 数値
Object すべての JavaScript オブジェクトのベースとなるオブジェクト
parseFloat 文字列引数を解析し、浮動小数点数を返す
parseInt 文字列引数をパースし、指定された基数の整数を返す
Promise 非同期操作の最終的な完了(または失敗)とその結果
Proxy 基本的な操作(プロパティ参照、代入、列挙、関数呼び出しなど)のカスタム動作を定義するために使用されるオブジェクト
queueMicrotask 実行するマイクロタスクをキューに入れる
RangeError 値が許容値のセットまたは範囲にない場合のエラー
ReferenceError 存在しない変数が参照された場合のエラー
Reflect JavaScript 操作を受け付けるためのメソッドを提供する
RegExp 正規表現を表し、文字の組み合わせにマッチする
Set 値の集合を表し、各値は一度しか出現しない
setInterval 各呼び出しの間に一定の時間遅延を置いて、関数を繰り返し呼び出す
setTimeout 指定したミリ秒後に関数を呼び出すか、式を評価する
SharedArrayBuffer 一般的な固定長の生バイナリデータバッファ
String 文字列
structuredClone 値のディープコピーを作成する
Symbol オブジェクト・プロパティのキーとして使用される、ユニークで不変なデータ型
SyntaxError 構文的に無効なコードを解釈しようとしたときのエラー
TypeError 値が期待された型でない場合のエラー
Uint8Array 8 ビット符号なし整数の型付き配列
Uint8ClampedArray 0 ~ 255 にクランプされた 8 ビット符号なし整数の型付き配列
Uint32Array 32 ビット符号なし整数の型付き配列
URIError グローバル URI 処理関数が誤った方法で使用された場合のエラー
URL オブジェクトの URL を作成するための静的メソッドを提供するオブジェクト
URLPattern URL パターン
URLSearchParams キーと値のペアのコレクション
WeakMap キーが弱く参照される、キーと値のペアのコレクション
WeakSet オブジェクトのコレクションを表し、各オブジェクトは一度しか出現しない
WebAssembly WebAssembly へのアクセス

Next.js Specific Polyfills

環境変数

process.envを使えば、next devnext build両方から環境変数にアクセスできます。

サポートしていない API

Edge ランタイムには、以下のような制限があります:

  • Node.js のネイティブ API はサポートされていません。例えば、ファイルシステムへの読み書きはできません
  • ES モジュールを実装し、ネイティブ Node.js API を使用しない限り、node_modulesを使用できます
  • requireを直接呼び出すことはできません。代わりに ES モジュールを使用してください

また以下の JavaScript の言語機能は無効になっており、動作しません:

API 説明
eval 文字列として表現された JavaScript コードを評価する
new Function(evalString) 引数として与えられたコードで新しい関数を作成する
WebAssembly.compile バッファ・ソースから WebAssembly モジュールをコンパイルする
WebAssembly.instantiate バッファ・ソースから WebAssembly モジュールをコンパイルし、インスタンス化する

まれに、実行時に到達できない動的なコード評価文がコードに含まれている(またはインポートされている)場合があり、そのようなステートメントはツリーシェイキングでは削除できません。このチェックを緩和して、Middleware または Edge API Route にエクスポートされた設定で特定のファイルを許可できます:

export const config = {
  runtime: 'edge', // Edge API Routesのための指定
  unstable_allowDynamic: [
    // 単一のファイルを許可する
    '/lib/utilities.js',
    // 3rdパーティのfunction-bindモジュール内のすベてをglobで許可する
    '/node_modules/function-bind/**',
  ],
}

unstable_allowDynamicは、特定のファイルの動的コード評価を無視するglob(または glob の配列)です。glob は、アプリケーションのルート・フォルダからの相対パスで指定します。

これらの文が Edge で実行されると、実行時エラーが発生することに注意してください。