

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 內建公用程式
<a name="built-in-util-js"></a>

`util` 變數包含可協助您處理資料的一般公用程式方法。除非另行指定，否則所有公用程式皆使用 UTF-8 字元集。

## 編碼 utils
<a name="utility-helpers-in-encoding"></a>

### 編碼 utils 清單
<a name="utility-helpers-in-encoding-list-js"></a>

 **`util.urlEncode(String)`**  
以 `application/x-www-form-urlencoded` 編碼字串的形式傳回輸入字串。

 **`util.urlDecode(String)`**  
將 `application/x-www-form-urlencoded` 編碼的字串解碼回非編碼格式。

**`util.base64Encode(string) : string`**  
將輸入編碼為 base64 編碼字串。

**`util.base64Decode(string) : string`**  
解碼 base64 編碼字串中的資料。

## ID 產生 utils
<a name="utility-helpers-in-id-gen-js"></a>

### ID 產生 utils 清單
<a name="utility-helpers-in-id-gen-list-js"></a>

 **`util.autoId()`**  
傳回 128 位元隨機產生的 UUID。

**`util.autoUlid()`**  
傳回 128 位元隨機產生的 ULID （通用可排序序列識別符）。

**`util.autoKsuid()`**  
傳回 128 位元隨機產生的 KSUID (K-Sortable Unique Identifier) base62，其編碼為長度為 27 的字串。

## 錯誤率
<a name="utility-helpers-in-error-js"></a>

### 錯誤使用率清單
<a name="utility-helpers-in-error-list-js"></a>

 **`util.error(String, String?, Object?, Object?)`**  
擲回自訂錯誤。如果範本偵測到要求或呼叫結果的錯誤，您可以將此用於要求或回應映射範本。此外，也可以指定 `errorType` 欄位、 `data` 欄位和 `errorInfo` 欄位。`data` 值將新增到 GraphQL 回應中，`error` 內對應的 `errors` 區塊。  
`data` 將根據查詢選取集進行篩選。`errorInfo` 值將新增到 GraphQL 回應中，`error` 內對應的 `errors` 區塊。  
`errorInfo` **不會**根據查詢選取集進行篩選。

 **`util.appendError(String, String?, Object?, Object?)`**  
附加自訂錯誤。如果範本偵測到要求或呼叫結果的錯誤，您可以將此用於要求或回應映射範本。此外，也可以指定 `errorType` 欄位、 `data` 欄位和 `errorInfo` 欄位。與 `util.error(String, String?, Object?, Object?)` 不同的是，範本評估不會受中斷，因此可以將資料傳回給發起人。`data` 值將新增到 GraphQL 回應中，`error` 內對應的 `errors` 區塊。  
`data` 將根據查詢選取集進行篩選。`errorInfo` 值將新增到 GraphQL 回應中，`error` 內對應的 `errors` 區塊。  
`errorInfo` **不會**根據查詢選取集進行篩選。

## 類型和模式比對 utils
<a name="utility-helpers-in-patterns-js"></a>

### 類型和模式比對 utils 清單
<a name="utility-helpers-in-patterns-js-list"></a>

**`util.matches(String, String) : Boolean`**  
如果第一個引數中指定的模式與第二個引數中提供的資料相符，則傳回真。模式必須為規則表達式，例如 `util.matches("a*b", "aaaaab")`。此功能是根據[模式](https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html)，您可以參考以取得更詳細的文件。

 **`util.authType()`**   
傳回描述請求所使用之多重驗證類型的字串，傳回「IAM 授權」、「使用者集區授權」、「開放式 ID Connect 授權」或「API 金鑰授權」。

## 傳回值行為 utils
<a name="utility-helpers-in-cloudwatch-logs-list-js"></a>

### 傳回值行為 utils 清單
<a name="utility-helpers-in-behavior-list-js"></a>

 **`util.escapeJavaScript(String)`**  
以 JavaScript 逸出字串傳回輸入字串。

## 解析程式授權公用程式
<a name="utility-helpers-in-resolver-auth-js"></a>

### 解析程式授權使用率清單
<a name="utility-helpers-in-resolver-auth-list-js"></a>

 **`util.unauthorized()`**  
擲回欲解析之欄位的 `Unauthorized`。在請求或回應映射範本中使用此選項，以決定是否允許發起人解析 欄位。