

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

# 設定`APPSYNC_JS`執行時間的公用程式
<a name="utility-resolvers"></a>

AWS AppSync 提供兩個程式庫，協助開發具有`APPSYNC_JS`執行時間的解析程式：
+ `@aws-appsync/eslint-plugin` - 在開發期間快速攔截和修正問題。
+ `@aws-appsync/utils` - 在程式碼編輯器中提供類型驗證和自動完成。

## 設定 eslint 外掛程式
<a name="utility-resolvers-configuring-eslint-plugin"></a>

[ESLint](https://eslint.org/) 是一種工具，可靜態分析程式碼以快速找出問題。您可以執行 ESLint 做為持續整合管道的一部分。 `@aws-appsync/eslint-plugin` 是一種 ESLint 外掛程式，在利用`APPSYNC_JS`執行時間時，可在程式碼中擷取無效的語法。外掛程式可讓您在開發期間快速取得程式碼的意見回饋，而不必將變更推送至雲端。

`@aws-appsync/eslint-plugin` 提供兩個規則集，您可以在開發期間使用。

**「plugin：@aws-appsync/base」**會設定一組基本規則，供您在專案中運用：


| 規則 | Description | 
| --- | --- | 
| 無非同步 | 不支援非同步程序和承諾。 | 
| 無等待 | 不支援非同步程序和承諾。 | 
| 無類別 | 不支援類別。 | 
| 無 | for 不支援 (for-of受支援的 for-in和 除外） | 
| 不繼續 | 不支援 continue。 | 
| 無生成器 | 不支援產生器。 | 
| 無產出 | 不支援 yield。 | 
| 無標籤 | 不支援標籤。 | 
| 否-此 | this 不支援 關鍵字。 | 
| 無嘗試 | 不支援 Try/catch 結構。 | 
| 無同時 | 雖然不支援迴圈。 | 
| no-disallowed-unary-operators | \$1\$1不允許 、 --和 \$1 unary 運算子。 | 
| no-disallowed-binary-operators | 不允許 instanceof運算子。 | 
| 無承諾 | 不支援非同步程序和承諾。 | 

**「plugin：@aws-appsync/recommended」**提供一些額外的規則，但也需要您將 TypeScript 組態新增至專案。


| 規則 | Description | 
| --- | --- | 
| 無遞迴 | 不允許遞迴函數呼叫。 | 
| no-disallowed-methods | 不允許某些方法。如需完整的支援內建函數，請參閱 [參考](https://docs.aws.amazon.com/appsync/latest/devguide/resolver-util-reference-js.html)。 | 
| no-function-passing | 不允許將函數做為函數引數傳遞至函數。 | 
| no-function-reassign | 無法重新指派函數。 | 
| no-function-return | 函數不能是函數的傳回值。 | 

若要將外掛程式新增至您的專案，請遵循 [ ESLint 入門](https://eslint.org/docs/latest/user-guide/getting-started#installation-and-usage)中的安裝和使用步驟。然後，使用您的專案套件管理員在您的專案中安裝[外掛程式](https://www.npmjs.com/package/@aws-appsync/eslint-plugin) （例如 npm、 yarn 或 pnpm)：

```
$ npm install @aws-appsync/eslint-plugin
```

在您的 `.eslintrc.{js,yml,json}`檔案中，將**「plugin：@aws-appsync/base」**或**「plugin：@aws-appsync/recommended」**新增至 `extends` 屬性。以下程式碼片段是 JavaScript 的基本範例`.eslintrc`組態：

```
{
  "extends": ["plugin:@aws-appsync/base"]
}
```

若要使用**「plugin：@aws-appsync/recommended」**規則集，請安裝必要的相依性：

```
$ npm install -D @typescript-eslint/parser
```

然後，建立 `.eslintrc.js` 檔案：

```
{
  "parser": "@typescript-eslint/parser",
  "parserOptions": {
    "ecmaVersion": 2018,
    "project": "./tsconfig.json"
  },
  "extends": ["plugin:@aws-appsync/recommended"]
}
```