Configuring utilities for the APPSYNC_JS
runtime
AWS AppSync provides two libraries that aid in the development of resolvers with the APPSYNC_JS
runtime:
-
@aws-appsync/eslint-plugin
- Catches and fixes problems quickly during development. -
@aws-appsync/utils
- Provides type validation and autocompletion in code editors.
Configuring the eslint plugin
ESLint@aws-appsync/eslint-plugin
is an ESLint plugin that catches invalid syntax in your code when
leveraging the APPSYNC_JS
runtime. The plugin allows you to quickly get feedback about your
code during development without having to push your changes to the cloud.
@aws-appsync/eslint-plugin
provides two rule sets that you can use during development.
"plugin:@aws-appsync/base" configures a base set of rules that you can leverage in your project:
Rule | Description |
---|---|
no-async | Async processes and promises are not supported. |
no-await | Async processes and promises are not supported. |
no-classes | Classes are not supported. |
no-for | for is not supported (except for for-in and for-of ,
which are supported) |
no-continue | continue is not supported. |
no-generators | Generators are not supported. |
no-yield | yield is not supported. |
no-labels | Labels are not supported. |
no-this | this keyword is not supported. |
no-try | Try/catch structure is not supported. |
no-while | While loops are not supported. |
no-disallowed-unary-operators | ++ , -- , and ~ unary operators are not
allowed. |
no-disallowed-binary-operators | The instanceof operator is not allowed. |
no-promise | Async processes and promises are not supported. |
"plugin:@aws-appsync/recommended" provides some additional rules but also requires you to add TypeScript configurations to your project.
Rule | Description |
---|---|
no-recursion | Recursive function calls are not allowed. |
no-disallowed-methods | Some methods are not allowed. See the reference for a full set of supported built-in functions. |
no-function-passing | Passing functions as function arguments to functions is not allowed. |
no-function-reassign | Functions cannot be reassigned. |
no-function-return | Functions cannot be the return value of functions. |
To add the plugin to your project, follow the installation and usage steps at Getting Started
with ESLint
$ npm install @aws-appsync/eslint-plugin
In your .eslintrc.{js,yml,json}
file, add "plugin:@aws-appsync/base" or "plugin:@aws-appsync/recommended" to the extends
property. The snippet below is
a basic sample .eslintrc
configuration for JavaScript:
{ "extends": ["plugin:@aws-appsync/base"] }
To use the "plugin:@aws-appsync/recommended" rule set, install the required dependency:
$ npm install -D @typescript-eslint/parser
Then, create an .eslintrc.js
file:
{ "parser": "@typescript-eslint/parser", "parserOptions": { "ecmaVersion": 2018, "project": "./tsconfig.json" }, "extends": ["plugin:@aws-appsync/recommended"] }