Skip to content

Commit c84ebeb

Browse files
Fix issue where artifactType would get reset
This fixes an issue where artifactType would be accidentally reset while loading integrations.
1 parent 0beb332 commit c84ebeb

File tree

2 files changed

+11
-4
lines changed

2 files changed

+11
-4
lines changed

smithy-typescript-codegen/src/main/java/software/amazon/smithy/typescript/codegen/CodegenVisitor.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -97,13 +97,13 @@ class CodegenVisitor extends ShapeVisitor.Default<Void> {
9797
integrations.sort(Comparator.comparingInt(TypeScriptIntegration::getOrder));
9898

9999
// Preprocess model using integrations.
100-
TypeScriptSettings typescriptSettings = TypeScriptSettings.from(context.getModel(), context.getSettings());
101-
typescriptSettings.setArtifactType(artifactType);
100+
TypeScriptSettings typescriptSettings = TypeScriptSettings.from(
101+
context.getModel(), context.getSettings(), artifactType);
102102
for (TypeScriptIntegration integration : integrations) {
103103
Model modifiedModel = integration.preprocessModel(context, typescriptSettings);
104104
if (modifiedModel != context.getModel()) {
105105
context = context.toBuilder().model(modifiedModel).build();
106-
typescriptSettings = TypeScriptSettings.from(modifiedModel, context.getSettings());
106+
typescriptSettings = TypeScriptSettings.from(modifiedModel, context.getSettings(), artifactType);
107107
}
108108
}
109109
settings = typescriptSettings;

smithy-typescript-codegen/src/main/java/software/amazon/smithy/typescript/codegen/TypeScriptSettings.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,15 +62,22 @@ public final class TypeScriptSettings {
6262
private boolean isPrivate;
6363
private ArtifactType artifactType = ArtifactType.CLIENT;
6464

65+
@Deprecated
66+
public static TypeScriptSettings from(Model model, ObjectNode config) {
67+
return from(model, config, ArtifactType.CLIENT);
68+
}
69+
6570
/**
6671
* Create a settings object from a configuration object node.
6772
*
6873
* @param model Model to infer the service to generate if not explicitly provided.
6974
* @param config Config object to load.
75+
* @param artifactType The type of artifact being generated.
7076
* @return Returns the extracted settings.
7177
*/
72-
public static TypeScriptSettings from(Model model, ObjectNode config) {
78+
public static TypeScriptSettings from(Model model, ObjectNode config, ArtifactType artifactType) {
7379
TypeScriptSettings settings = new TypeScriptSettings();
80+
settings.setArtifactType(artifactType);
7481
config.warnIfAdditionalProperties(Arrays.asList(
7582
PACKAGE, PACKAGE_DESCRIPTION, PACKAGE_JSON, PACKAGE_VERSION,
7683
SERVICE, PROTOCOL, TARGET_NAMESPACE, PRIVATE));

0 commit comments

Comments
 (0)