forked from aws/aws-sdk-js-v3
-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.gradle.kts
69 lines (61 loc) · 2.88 KB
/
build.gradle.kts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
/*
* Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
import software.amazon.smithy.model.node.Node
description = "Generates TypeScript code for AWS protocols from Smithy models"
extra["displayName"] = "Smithy :: AWS :: Typescript :: Codegen"
extra["moduleName"] = "software.amazon.smithy.aws.typescript.codegen"
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath("software.amazon.smithy:smithy-model:${rootProject.extra["smithyVersion"]}")
}
}
dependencies {
api("software.amazon.smithy:smithy-aws-cloudformation-traits:${rootProject.extra["smithyVersion"]}")
api("software.amazon.smithy:smithy-aws-traits:${rootProject.extra["smithyVersion"]}")
api("software.amazon.smithy:smithy-waiters:${rootProject.extra["smithyVersion"]}")
api("software.amazon.smithy:smithy-aws-iam-traits:${rootProject.extra["smithyVersion"]}")
api("software.amazon.smithy:smithy-protocol-test-traits:${rootProject.extra["smithyVersion"]}")
api("software.amazon.smithy:smithy-model:${rootProject.extra["smithyVersion"]}")
api("software.amazon.smithy:smithy-rules-engine:${rootProject.extra["smithyVersion"]}")
api("software.amazon.smithy.typescript:smithy-typescript-codegen:0.12.0")
}
tasks.register("set-aws-sdk-versions") {
doLast {
mkdir("$buildDir/generated/resources/software/amazon/smithy/aws/typescript/codegen")
var versionsFile =
file("$buildDir/generated/resources/software/amazon/smithy/aws/typescript/codegen/sdkVersions.properties")
var roots = project.file("../../packages").listFiles().toMutableList() + project.file("../../clients").listFiles().toList()
roots.forEach { packageDir ->
var packageJsonFile = File(packageDir, "package.json")
if (packageJsonFile.isFile()) {
var packageJson = Node.parse(packageJsonFile.readText()).expectObjectNode()
var packageName = packageJson.expectStringMember("name").getValue()
var packageVersion = packageJson.expectStringMember("version").getValue()
versionsFile.appendText("$packageName=$packageVersion\n")
}
}
}
}
sourceSets {
main {
resources {
setSrcDirs(listOf("src/main/resources", "$buildDir/generated/resources"))
}
}
}
tasks["processResources"].dependsOn(tasks["set-aws-sdk-versions"])