Supported runtime features
The sections below describe the supported feature set of the APPSYNC_JS runtime.
Core features
The following core features are supported.
- Types
-
The following types are supported:
-
numbers
-
strings
-
booleans
-
objects
-
arrays
-
functions
-
- Operators
-
Operators are supported, including:
-
standard math operators (
+
,-
,/
,%
,*
, etc.) -
nullish coalescing operator (
??
) -
Optional chaining (
?.
) -
bitwise operators
-
void
andtypeof
operators -
spread operators (
...
)
The following operators are not supported:
-
unary operators (
++
,--
, and~
) -
in
operatorNote
Use the
Object.hasOwn
operator to check if the specified property is in the specified object.
-
- Statements
-
The following statements are supported:
-
const
-
let
-
var
-
break
-
else
-
for-in
-
for-of
-
if
-
return
-
switch
-
spread syntax
The following are not supported:
-
catch
-
continue
-
do-while
-
finally
-
for(initialization; condition; afterthought)
Note
The exceptions are
for-in
andfor-of
expressions, which are supported. -
throw
-
try
-
while
-
labeled statements
-
- Literals
-
The following ES 6 template literals
are supported: -
Multi-line strings
-
Expression interpolation
-
Nesting templates
-
- Functions
-
The following function syntax is supported:
-
Function declarations are supported.
-
ES 6 arrow functions are supported.
-
ES 6 rest parameter syntax is supported.
-
- Strict mode
-
Functions operate in strict mode by default, so you don’t need to add a
use_strict
statement in your function code. This cannot be changed.
Primitive objects
The following primitive objects of ES and their functions are supported.
- Object
-
The following objects are supported:
-
Object.assign()
-
Object.entries()
-
Object.hasOwn()
-
Object.keys()
-
Object.values()
-
delete
-
- String
-
The following strings are supported:
-
String.prototype.length()
-
String.prototype.charAt()
-
String.prototype.concat()
-
String.prototype.endsWith()
-
String.prototype.indexOf()
-
String.prototype.lastIndexOf()
-
String.raw()
-
String.prototype.replace()
Note
Regular expressions are not supported.
However, Java-styled regular expression constructs are supported in the provided parameter. For more information see Pattern
. -
String.prototype.replaceAll()
Note
Regular expressions are not supported.
However, Java-styled regular expression constructs are supported in the provided parameter. For more information see Pattern
. -
String.prototype.slice()
-
String.prototype.split()
-
String.prototype.startsWith()
-
String.prototype.toLowerCase()
-
String.prototype.toUpperCase()
-
String.prototype.trim()
-
String.prototype.trimEnd()
-
String.prototype.trimStart()
-
- Number
-
The following numbers are supported:
-
Number.isFinite
-
Number.isNaN
-
Built-in objects and functions
The following functions and objects are supported.
- Math
-
The following math functions are supported:
-
Math.random()
-
Math.min()
-
Math.max()
-
Math.round()
-
Math.floor()
-
Math.ceil()
-
- Array
-
The following array methods are supported:
-
Array.prototype.length
-
Array.prototype.concat()
-
Array.prototype.fill()
-
Array.prototype.flat()
-
Array.prototype.indexOf()
-
Array.prototype.join()
-
Array.prototype.lastIndexOf()
-
Array.prototype.pop()
-
Array.prototype.push()
-
Array.prototype.reverse()
-
Array.prototype.shift()
-
Array.prototype.slice()
-
Array.prototype.sort()
Note
Array.prototype.sort()
doesn't support arguments. -
Array.prototype.splice()
-
Array.prototype.unshift()
-
Array.prototype.forEach()
-
Array.prototype.map()
-
Array.prototype.flatMap()
-
Array.prototype.filter()
-
Array.prototype.reduce()
-
Array.prototype.reduceRight()
-
Array.prototype.find()
-
Array.prototype.some()
-
Array.prototype.every()
-
Array.prototype.findIndex()
-
Array.prototype.findLast()
-
Array.prototype.findLastIndex()
-
delete
-
- Console
-
The console object is available for debugging. During live query execution, console log/error statements are sent to Amazon CloudWatch Logs (if logging is enabled). During code evaluation with
evaluateCode
, log statements are returned in the command response.-
console.error()
-
console.log()
-
- Function
-
-
The
apply
,bind
, andcall
methods not are supported. -
Function constructors are not supported.
-
Passing a function as an argument is not supported.
-
Recursive function calls are not supported.
-
- JSON
-
The following JSON methods are supported:
-
JSON.parse()
Note
Returns a blank string if the parsed string is not valid JSON.
-
JSON.stringify()
-
- Promises
-
Async processes are not supported, and promises are not supported.
Note
Network and file system access is not supported within the
APPSYNC_JS
runtime in AWS AppSync. AWS AppSync handles all I/O operations based on the requests made by the AWS AppSync resolver or AWS AppSync function.
Globals
The following global constants are supported:
-
NaN
-
Infinity
-
undefined
Error types
Throwing errors with throw
is not supported. You can return an error by
using util.error()
function. You can include an error in your GraphQL
response by using the util.appendError
function.
For more information, see Error utils.