Skip to content

Commit b9b7301

Browse files
committed
feat: add codegen for region info provider
1 parent 08e578c commit b9b7301

File tree

2 files changed

+38
-3
lines changed

2 files changed

+38
-3
lines changed

codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AwsEndpointGeneratorIntegration.java

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919
import java.util.function.Consumer;
2020
import software.amazon.smithy.codegen.core.SymbolProvider;
2121
import software.amazon.smithy.model.Model;
22+
import software.amazon.smithy.typescript.codegen.LanguageTarget;
23+
import software.amazon.smithy.typescript.codegen.TypeScriptDependency;
2224
import software.amazon.smithy.typescript.codegen.TypeScriptSettings;
2325
import software.amazon.smithy.typescript.codegen.TypeScriptWriter;
2426
import software.amazon.smithy.typescript.codegen.integration.TypeScriptIntegration;
@@ -38,4 +40,38 @@ public void writeAdditionalFiles(
3840
new EndpointGenerator(settings.getService(model), writer).run();
3941
});
4042
}
43+
44+
@Override
45+
public void addConfigInterfaceFields(
46+
TypeScriptSettings settings,
47+
Model model,
48+
SymbolProvider symbolProvider,
49+
TypeScriptWriter writer
50+
) {
51+
writer.addImport("RegionInfoProvider", "RegionInfoProvider", TypeScriptDependency.AWS_SDK_TYPES.packageName);
52+
writer.writeDocs("Fetch related hostname, signing name or signing region with given region.");
53+
writer.write("regionInfoProvider?: RegionInfoProvider;");
54+
}
55+
56+
@Override
57+
public void addRuntimeConfigValues(
58+
TypeScriptSettings settings,
59+
Model model,
60+
SymbolProvider symbolProvider,
61+
TypeScriptWriter writer,
62+
LanguageTarget target
63+
) {
64+
switch (target) {
65+
case BROWSER:
66+
break;
67+
case NODE:
68+
break;
69+
case SHARED:
70+
writer.addImport("defaultRegionInfoProvider", "defaultRegionInfoProvider", "./endpoints");
71+
writer.write("regionInfoProvider: defaultRegionInfoProvider");
72+
break;
73+
}
74+
}
75+
76+
4177
}

codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/EndpointGenerator.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -130,11 +130,10 @@ private void writePartitionRegions() {
130130

131131
private void writeEndpointProviderFunction() {
132132
writer.addImport("RegionInfoProvider", "RegionInfoProvider", "@aws-sdk/types");
133-
writer.write("export const defaultRegionInfoProvider: RegionInfoProvider;");
134-
writer.openBlock("defaultRegionInfoProvider = function(\n"
133+
writer.openBlock("export const defaultRegionInfoProvider: RegionInfoProvider = (\n"
135134
+ " region: string,\n"
136135
+ " options?: any\n"
137-
+ ") {", "}", () -> {
136+
+ ") {", "};", () -> {
138137
writer.openBlock("switch (region) {", "}", () -> {
139138
writer.write("// First, try to match exact region names.");
140139
for (Map.Entry<String, ObjectNode> entry : endpoints.entrySet()) {

0 commit comments

Comments
 (0)