Skip to content

Commit 9a70b86

Browse files
authored
Add NodeJS 16 Lambda Runtime Support (#3195)
* revert changes * Node 16 runtime added * min versions changed * tests fixed
1 parent 6d7470c commit 9a70b86

File tree

14 files changed

+83
-7
lines changed

14 files changed

+83
-7
lines changed
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"type" : "feature",
3+
"description" : "Nodejs16.x Lambda runtime support"
4+
}

core/src/software/aws/toolkits/core/lambda/LambdaRuntime.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ enum class LambdaRuntime(
2121
),
2222
NODEJS12_X(Runtime.NODEJS12_X, architectures = ARM_COMPATIBLE),
2323
NODEJS14_X(Runtime.NODEJS14_X, minSamDebugging = "1.17.0", minSamInit = "1.17.0", architectures = ARM_COMPATIBLE),
24+
NODEJS16_X(Runtime.NODEJS16_X, minSamDebugging = "1.49.0", minSamInit = "1.49.0", architectures = ARM_COMPATIBLE),
2425
JAVA8(Runtime.JAVA8),
2526
JAVA8_AL2(Runtime.JAVA8_AL2, minSamDebugging = "1.2.0", architectures = ARM_COMPATIBLE),
2627
JAVA11(Runtime.JAVA11, architectures = ARM_COMPATIBLE),

gradle/libs.versions.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[versions]
22
apacheCommons = "2.8.0"
33
assertJ = "3.20.2" # Upgrading leads to SAM errors: https://youtrack.jetbrains.com/issue/KT-17765
4-
awsSdk = "2.17.138"
4+
awsSdk = "2.17.219"
55
commonmark = "0.17.1"
66
detekt = "1.20.0"
77
intellijGradle = "1.7.0-20220613.010908-17"

jetbrains-ultimate/it/software/aws/toolkits/jetbrains/services/lambda/nodejs/SupportedNodeJsRuntimes.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,6 @@ import software.amazon.awssdk.services.lambda.model.Runtime
77

88
val SUPPORTED_NODE_RUNTIMES = listOf(
99
arrayOf(Runtime.NODEJS12_X),
10-
arrayOf(Runtime.NODEJS14_X)
10+
arrayOf(Runtime.NODEJS14_X),
11+
arrayOf(Runtime.NODEJS16_X)
1112
)

jetbrains-ultimate/resources/META-INF/ext-nodejs.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
<sam.runtimeDebugSupport id="NODEJS" implementationClass="software.aws.toolkits.jetbrains.services.lambda.nodejs.NodeJsRuntimeDebugSupport"/>
1414
<sam.imageDebuggerSupport implementation="software.aws.toolkits.jetbrains.services.lambda.nodejs.NodeJs12ImageDebug"/>
1515
<sam.imageDebuggerSupport implementation="software.aws.toolkits.jetbrains.services.lambda.nodejs.NodeJs14ImageDebug"/>
16+
<sam.imageDebuggerSupport implementation="software.aws.toolkits.jetbrains.services.lambda.nodejs.NodeJs16ImageDebug"/>
1617
<sam.projectWizard id="NODEJS" implementationClass="software.aws.toolkits.jetbrains.services.lambda.nodejs.NodeJsSamProjectWizard"/>
1718
</extensions>
1819

jetbrains-ultimate/src/software/aws/toolkits/jetbrains/services/lambda/nodejs/NodeJsDebugSupport.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,11 @@ class NodeJs14ImageDebug : NodeJsImageDebugSupport() {
6363
override fun displayName() = LambdaRuntime.NODEJS14_X.toString().capitalize()
6464
}
6565

66+
class NodeJs16ImageDebug : NodeJsImageDebugSupport() {
67+
override val id: String = LambdaRuntime.NODEJS16_X.toString()
68+
override fun displayName() = LambdaRuntime.NODEJS16_X.toString().capitalize()
69+
}
70+
6671
object NodeJsDebugUtils {
6772
private const val NODE_MODULES = "node_modules"
6873

jetbrains-ultimate/src/software/aws/toolkits/jetbrains/services/lambda/nodejs/NodeJsRuntimeGroup.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@ class NodeJsRuntimeGroup : SdkBasedRuntimeGroup() {
2525

2626
override val supportedRuntimes = listOf(
2727
LambdaRuntime.NODEJS12_X,
28-
LambdaRuntime.NODEJS14_X
28+
LambdaRuntime.NODEJS14_X,
29+
LambdaRuntime.NODEJS16_X
2930
)
3031

3132
override fun determineRuntime(module: Module): LambdaRuntime? = determineRuntime(module.project)
@@ -35,6 +36,7 @@ class NodeJsRuntimeGroup : SdkBasedRuntimeGroup() {
3536
when {
3637
it.major <= 12 -> LambdaRuntime.NODEJS12_X
3738
it.major <= 14 -> LambdaRuntime.NODEJS14_X
39+
it.major <= 16 -> LambdaRuntime.NODEJS16_X
3840
else -> null
3941
}
4042
}

jetbrains-ultimate/src/software/aws/toolkits/jetbrains/services/lambda/nodejs/NodeJsSamProjectWizard.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,9 @@ class SamHelloWorldNodeJs : SamAppTemplateBased() {
6060

6161
override fun description() = message("sam.init.template.hello_world.description")
6262

63-
override fun supportedZipRuntimes(): Set<LambdaRuntime> = setOf(LambdaRuntime.NODEJS12_X, LambdaRuntime.NODEJS14_X)
63+
override fun supportedZipRuntimes(): Set<LambdaRuntime> = setOf(LambdaRuntime.NODEJS12_X, LambdaRuntime.NODEJS14_X, LambdaRuntime.NODEJS16_X)
6464

65-
override fun supportedImageRuntimes(): Set<LambdaRuntime> = setOf(LambdaRuntime.NODEJS12_X, LambdaRuntime.NODEJS14_X)
65+
override fun supportedImageRuntimes(): Set<LambdaRuntime> = setOf(LambdaRuntime.NODEJS12_X, LambdaRuntime.NODEJS14_X, LambdaRuntime.NODEJS16_X)
6666

6767
override val appTemplateName: String = "hello-world"
6868

jetbrains-ultimate/tst/software/aws/toolkits/jetbrains/services/lambda/nodejs/NodeJsHandlerCompletionProviderTest.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,10 @@ class NodeJsHandlerCompletionProviderTest {
2626
val provider = HandlerCompletionProvider(projectRule.project, LambdaRuntime.NODEJS14_X)
2727
assertFalse(provider.isCompletionSupported)
2828
}
29+
30+
@Test
31+
fun completionIsNotSupportedNodeJs16X() {
32+
val provider = HandlerCompletionProvider(projectRule.project, LambdaRuntime.NODEJS16_X)
33+
assertFalse(provider.isCompletionSupported)
34+
}
2935
}

jetbrains-ultimate/tst/software/aws/toolkits/jetbrains/services/lambda/nodejs/NodeJsRuntimeGroupTest.kt

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,15 @@ class NodeJsRuntimeGroupTest {
4949

5050
@Test
5151
fun testRuntime150() {
52-
projectRule.project.setNodeJsInterpreterVersion(SemVer("v15.0.0", 15, 0, 0))
52+
projectRule.project.setNodeJsInterpreterVersion(SemVer("v15.16.0", 15, 16, 0))
5353
val runtime = sut.determineRuntime(projectRule.project)
54-
assertThat(runtime).isNull()
54+
assertThat(runtime).isEqualTo(LambdaRuntime.NODEJS16_X)
55+
}
56+
57+
@Test
58+
fun testRuntime16() {
59+
projectRule.project.setNodeJsInterpreterVersion(SemVer("v16.0.0", 16, 0, 0))
60+
val runtime = sut.determineRuntime(projectRule.project)
61+
assertThat(runtime).isEqualTo(LambdaRuntime.NODEJS16_X)
5562
}
5663
}

0 commit comments

Comments
 (0)