Skip to content

Commit c043cde

Browse files
committed
minor(emitter-express): remove statusCode from response body
1 parent db56bb3 commit c043cde

File tree

2 files changed

+24
-0
lines changed

2 files changed

+24
-0
lines changed

.changeset/witty-flowers-fly.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@typespec-tools/emitter-express": minor
3+
---
4+
5+
remove statusCode from response body

packages/emitter-express/src/emitter.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import * as prettier from "prettier";
22
import {
33
EmitContext,
44
getNamespaceFullName,
5+
Model,
56
ModelProperty,
67
Operation,
78
} from "@typespec/compiler";
@@ -12,6 +13,7 @@ import {
1213
isBodyRoot,
1314
isPathParam,
1415
isQueryParam,
16+
isStatusCode,
1517
listHttpOperationsIn,
1618
} from "@typespec/http";
1719
import {
@@ -107,6 +109,23 @@ export class ExpressEmitter extends TypescriptEmitter<EmitterOptions> {
107109
return this.emitter.result.declaration(name, cb.reduce());
108110
}
109111

112+
modelProperties(model: Model): EmitterOutput<string> {
113+
const program = this.emitter.getProgram();
114+
const builder = new StringBuilder();
115+
116+
for (const prop of model.properties.values()) {
117+
if (isStatusCode(program, prop)) {
118+
// Remove status code from model properties
119+
// This will be added to the response object
120+
continue;
121+
}
122+
const propVal = this.emitter.emitModelProperty(prop);
123+
builder.push(code`${propVal};`);
124+
}
125+
126+
return this.emitter.result.rawCode(builder.reduce());
127+
}
128+
110129
async sourceFile(sourceFile: SourceFile<string>): Promise<EmittedSourceFile> {
111130
const program = this.emitter.getProgram();
112131
const [httpServices] = getAllHttpServices(program, {});

0 commit comments

Comments
 (0)