翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
APPSYNC_JS ランタイムのユーティリティの設定
AWS AppSync には、 APPSYNC_JSランタイムを使用したリゾルバーの開発に役立つ 2 つのライブラリが用意されています。
-
@aws-appsync/eslint-plugin- 開発中に問題を迅速に発見して修正します。 -
@aws-appsync/utils- コードエディターで型検証とオートコンプリートを行います。
eslint プラグインの設定
ESLint@aws-appsync/eslint-pluginは、APPSYNC_JS ランタイムを利用する際にコード内の無効な構文を検出する ESLint プラグインです。このプラグインを使用すると、変更をクラウドにプッシュしなくても、開発中にコードに関するフィードバックを迅速に得ることができます。
@aws-appsync/eslint-plugin には、開発中に使用できる 2 つのルールセットが用意されています。
"plugin:@aws-appsync/base" は、プロジェクトで活用できる基本ルールセットを設定します。
| ルール | 説明 |
|---|---|
| 非同期 | 非同期のプロセスと Promise はサポートされていません。 |
| no-await | 非同期のプロセスと Promise はサポートされていません。 |
| no-classes | ルールはサポートされていません。 |
| no-for | for はサポートされていない (サポートされている for-in および for-of は除く) |
| no-continue | continue はサポートされていません。 |
| no-generators | ジェネレータはサポートされていません。 |
| no-yield | yield はサポートされていません。 |
| no-labels | ラベルはサポートされていません。 |
| no-this | this キーワードはサポートされていません。 |
| no-try | try/catch 構造はサポートされていません。 |
| no-while | while ループはサポートされていません。 |
| no-disallowed-unary-operators | ++、-- および ~ 単項演算子は使用できません。 |
| no-disallowed-binary-operators | instanceof 演算子は使用できません。 |
| no-promise | 非同期のプロセスと Promise はサポートされていません。 |
"plugin:@aws-appsync/recommended" にはいくつかの追加のルールがありますが、プロジェクトに TypeScript 構成を追加する必要もあります。
| ルール | 説明 |
|---|---|
| no-recursion | 再帰的な関数呼び出しは許可されません。 |
| no-disallowed-methods | 使用できないメソッドもあります。サポートされている組み込み関数の全セットについては、リファレンスを参照してください。 |
| no-function-passing | 関数を関数の引数として関数に渡すことはできません。 |
| no-function-reassign | 関数は再割り当てできません。 |
| no-function-return | 関数を関数の戻り値にすることはできません。 |
プラグインをプロジェクトに追加するには、「ESLint 入門
$ 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"] }