typespec-typescript-emitter 2.3.1 → 2.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -12
- package/dist/src/resolve/operationTypemap.js +6 -4
- package/dist/src/resolve/operationTypemap.js.map +1 -1
- package/package.json +1 -1
- package/src/resolve/operationTypemap.ts +6 -7
- package/test/typemap/typemap-novis.target.ts +2 -8
- package/test/typemap/typemap.target.ts +2 -8
package/CHANGELOG.md
CHANGED
|
@@ -1,45 +1,51 @@
|
|
|
1
|
-
## [2.3.
|
|
1
|
+
## [2.3.3](https://github.com/crowbait/typespec-typescript-emitter/compare/v2.3.2...v2.3.3) (2026-01-17)
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
### Bug Fixes
|
|
5
5
|
|
|
6
|
-
*
|
|
6
|
+
* empty body types in routed typemap are not `undefined` instead of `{}` ([5162f05](https://github.com/crowbait/typespec-typescript-emitter/commit/5162f05d3b8966566c03d1f40703fa6d196abc05))
|
|
7
|
+
* fix erroneous emit of ody: {statusCode: X} in routed typemap for status-only responses ([47e2ee9](https://github.com/crowbait/typespec-typescript-emitter/commit/47e2ee92909a68556794393e39827a1a7a1ebb1d))
|
|
7
8
|
|
|
8
9
|
|
|
9
10
|
|
|
10
|
-
|
|
11
|
+
## [2.3.2](https://github.com/crowbait/typespec-typescript-emitter/compare/v2.3.1...v2.3.2) (2026-01-17)
|
|
11
12
|
|
|
12
13
|
|
|
13
14
|
### Bug Fixes
|
|
14
15
|
|
|
15
|
-
*
|
|
16
|
+
* cleanup ([6e120c5](https://github.com/crowbait/typespec-typescript-emitter/commit/6e120c5409d0517c31edf8ddd278bd1aa4c0eb8e))
|
|
16
17
|
|
|
17
18
|
|
|
18
|
-
### Features
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
## [2.3.1](https://github.com/crowbait/typespec-typescript-emitter/compare/v2.3.0...v2.3.1) (2026-01-15)
|
|
21
21
|
|
|
22
22
|
|
|
23
|
+
### Bug Fixes
|
|
23
24
|
|
|
24
|
-
|
|
25
|
+
* per-operation jsdoc strings on methods in routed typemap ([20bd0b1](https://github.com/crowbait/typespec-typescript-emitter/commit/20bd0b186259e873aa67a06db1b915576c0ba2d0))
|
|
25
26
|
|
|
26
27
|
|
|
27
|
-
### Features
|
|
28
28
|
|
|
29
|
-
|
|
29
|
+
# [2.3.0](https://github.com/crowbait/typespec-typescript-emitter/compare/v2.2.0...v2.3.0) (2026-01-15)
|
|
30
30
|
|
|
31
31
|
|
|
32
|
+
### Bug Fixes
|
|
32
33
|
|
|
33
|
-
|
|
34
|
+
* proper comma-separation of props in routed typemap ([0e27831](https://github.com/crowbait/typespec-typescript-emitter/commit/0e278310dbb705b59b40fa933449e058d83950fb))
|
|
34
35
|
|
|
35
36
|
|
|
36
37
|
### Features
|
|
37
38
|
|
|
38
|
-
*
|
|
39
|
+
* option to emit path params types in routed typemap ([38b4ddf](https://github.com/crowbait/typespec-typescript-emitter/commit/38b4ddf8a2ff9d1a356b4bf76c9c7d3abe4fac1b))
|
|
39
40
|
|
|
40
41
|
|
|
41
42
|
|
|
42
|
-
|
|
43
|
+
# [2.2.0](https://github.com/crowbait/typespec-typescript-emitter/compare/v2.1.0...v2.2.0) (2026-01-14)
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
### Features
|
|
47
|
+
|
|
48
|
+
* option to enabled/disable .ts file extensions on import statements ([c6a423e](https://github.com/crowbait/typespec-typescript-emitter/commit/c6a423e73139a35b36f8c413431f408a09dd9d89))
|
|
43
49
|
|
|
44
50
|
|
|
45
51
|
|
|
@@ -17,7 +17,6 @@ export const resolveOperationTypemap = async (program, options, typemap, op) =>
|
|
|
17
17
|
// path parameters
|
|
18
18
|
const pathParams = httpOp.parameters.parameters.filter((p) => p.type === "path");
|
|
19
19
|
if (options["enable-routed-path-params"] && pathParams.length) {
|
|
20
|
-
console.log(httpOp.path, pathParams.map((p) => [p.name, p.param, p.param.type, p.param.type.kind]));
|
|
21
20
|
const paramsString = new AppendableString("{");
|
|
22
21
|
if (pathParams.length > 1)
|
|
23
22
|
paramsString.append("\n");
|
|
@@ -41,7 +40,6 @@ export const resolveOperationTypemap = async (program, options, typemap, op) =>
|
|
|
41
40
|
}
|
|
42
41
|
paramsString.addLine("}", pathParams.length > 1 ? 3 : 0, "continued");
|
|
43
42
|
ret.types.parameters.content = paramsString.value;
|
|
44
|
-
console.log(ret.types.parameters);
|
|
45
43
|
}
|
|
46
44
|
// request
|
|
47
45
|
if (httpOp.parameters.body) {
|
|
@@ -79,8 +77,10 @@ export const resolveOperationTypemap = async (program, options, typemap, op) =>
|
|
|
79
77
|
for (const decorator of prop[1].decorators) {
|
|
80
78
|
// find status code
|
|
81
79
|
if (decorator.definition?.name === "@statusCode" &&
|
|
82
|
-
prop[1].type.kind === "Number")
|
|
80
|
+
prop[1].type.kind === "Number") {
|
|
83
81
|
modelret.status = prop[1].type.value;
|
|
82
|
+
wasFullyQualified = true;
|
|
83
|
+
}
|
|
84
84
|
// find body definiton
|
|
85
85
|
if (decorator.definition?.name === "@body") {
|
|
86
86
|
const resolved = await Resolvable.resolve(Resolver.Type, prop[1].type, {
|
|
@@ -96,8 +96,8 @@ export const resolveOperationTypemap = async (program, options, typemap, op) =>
|
|
|
96
96
|
if (resolved.hasVisibility)
|
|
97
97
|
modelret.hasVisibility = true;
|
|
98
98
|
ret.imports.push(...resolved.imports);
|
|
99
|
-
modelret.body = replaceLifecycle(resolved.resolved.value, "RETURN", resolved.hasVisibility);
|
|
100
99
|
wasFullyQualified = true;
|
|
100
|
+
modelret.body = replaceLifecycle(resolved.resolved.value, "RETURN", resolved.hasVisibility);
|
|
101
101
|
}
|
|
102
102
|
}
|
|
103
103
|
}
|
|
@@ -117,6 +117,8 @@ export const resolveOperationTypemap = async (program, options, typemap, op) =>
|
|
|
117
117
|
ret.imports.push(...resolved.imports);
|
|
118
118
|
modelret.body = replaceLifecycle(resolved.resolved.value, "RETURN", resolved.hasVisibility);
|
|
119
119
|
}
|
|
120
|
+
if (modelret.body === "{}")
|
|
121
|
+
modelret.body = "undefined";
|
|
120
122
|
responseRet.content.push(modelret);
|
|
121
123
|
break;
|
|
122
124
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operationTypemap.js","sourceRoot":"","sources":["../../../src/resolve/operationTypemap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAA4B,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAGlE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAiBnD,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,EAC1C,OAAgB,EAChB,OAAuB,EACvB,OAAiB,EACjB,EAAa,EAIZ,EAAE;IACH,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,MAAM,GAAG,GAAwD;QAC/D,KAAK,EAAE;YACL,GAAG,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;YACxB,UAAU,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE;YACrD,OAAO,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE;YAClD,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;SAC1B;QACD,OAAO,EAAE,EAAE;KACZ,CAAC;IAEF,kBAAkB;IAClB,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CACpD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CACzB,CAAC;IACF,IAAI,OAAO,CAAC,2BAA2B,CAAC,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;QAC9D,
|
|
1
|
+
{"version":3,"file":"operationTypemap.js","sourceRoot":"","sources":["../../../src/resolve/operationTypemap.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "typespec-typescript-emitter",
|
|
3
|
-
"version": "2.3.
|
|
3
|
+
"version": "2.3.3",
|
|
4
4
|
"description": "A TypeSpec library providing an emitter that generates TypeScript types and a structured routes object for robust importing",
|
|
5
5
|
"homepage": "https://github.com/crowbait/typespec-typescript-emitter#readme",
|
|
6
6
|
"repository": "https://github.com/crowbait/typespec-typescript-emitter",
|
|
@@ -46,10 +46,6 @@ export const resolveOperationTypemap = async (
|
|
|
46
46
|
(p) => p.type === "path",
|
|
47
47
|
);
|
|
48
48
|
if (options["enable-routed-path-params"] && pathParams.length) {
|
|
49
|
-
console.log(
|
|
50
|
-
httpOp.path,
|
|
51
|
-
pathParams.map((p) => [p.name, p.param, p.param.type, p.param.type.kind]),
|
|
52
|
-
);
|
|
53
49
|
const paramsString = new AppendableString("{");
|
|
54
50
|
if (pathParams.length > 1) paramsString.append("\n");
|
|
55
51
|
let i = 1;
|
|
@@ -83,7 +79,6 @@ export const resolveOperationTypemap = async (
|
|
|
83
79
|
}
|
|
84
80
|
paramsString.addLine("}", pathParams.length > 1 ? 3 : 0, "continued");
|
|
85
81
|
ret.types.parameters.content = paramsString.value;
|
|
86
|
-
console.log(ret.types.parameters);
|
|
87
82
|
}
|
|
88
83
|
|
|
89
84
|
// request
|
|
@@ -142,8 +137,10 @@ export const resolveOperationTypemap = async (
|
|
|
142
137
|
if (
|
|
143
138
|
decorator.definition?.name === "@statusCode" &&
|
|
144
139
|
prop[1].type.kind === "Number"
|
|
145
|
-
)
|
|
140
|
+
) {
|
|
146
141
|
modelret.status = prop[1].type.value;
|
|
142
|
+
wasFullyQualified = true;
|
|
143
|
+
}
|
|
147
144
|
// find body definiton
|
|
148
145
|
if (decorator.definition?.name === "@body") {
|
|
149
146
|
const resolved = await Resolvable.resolve(
|
|
@@ -162,12 +159,12 @@ export const resolveOperationTypemap = async (
|
|
|
162
159
|
);
|
|
163
160
|
if (resolved.hasVisibility) modelret.hasVisibility = true;
|
|
164
161
|
ret.imports.push(...resolved.imports);
|
|
162
|
+
wasFullyQualified = true;
|
|
165
163
|
modelret.body = replaceLifecycle(
|
|
166
164
|
resolved.resolved.value,
|
|
167
165
|
"RETURN",
|
|
168
166
|
resolved.hasVisibility,
|
|
169
167
|
);
|
|
170
|
-
wasFullyQualified = true;
|
|
171
168
|
}
|
|
172
169
|
}
|
|
173
170
|
}
|
|
@@ -192,6 +189,8 @@ export const resolveOperationTypemap = async (
|
|
|
192
189
|
);
|
|
193
190
|
}
|
|
194
191
|
|
|
192
|
+
if (modelret.body === "{}") modelret.body = "undefined";
|
|
193
|
+
|
|
195
194
|
responseRet.content.push(modelret);
|
|
196
195
|
|
|
197
196
|
break;
|
|
@@ -22,19 +22,13 @@ export type types_test = {
|
|
|
22
22
|
/** Creates a resource */
|
|
23
23
|
['PUT']: {
|
|
24
24
|
request: test.Resource | test_inner.InnerModel,
|
|
25
|
-
response: {status: 200, body:
|
|
26
|
-
statusCode: 200
|
|
27
|
-
}}
|
|
25
|
+
response: {status: 200, body: undefined}
|
|
28
26
|
}
|
|
29
27
|
},
|
|
30
28
|
['/inner']: {
|
|
31
29
|
['DELETE']: {
|
|
32
30
|
request: test_inner.InnerModel | test_inner.InnerModel2,
|
|
33
|
-
response: {status: 200, body: {
|
|
34
|
-
statusCode: 200
|
|
35
|
-
}} | {status: 401, body: {
|
|
36
|
-
statusCode: 401
|
|
37
|
-
}}
|
|
31
|
+
response: {status: 200, body: undefined} | {status: 401, body: undefined}
|
|
38
32
|
}
|
|
39
33
|
}
|
|
40
34
|
};
|
|
@@ -23,19 +23,13 @@ export type types_test<V extends Lifecycle = Lifecycle.All> = {
|
|
|
23
23
|
/** Creates a resource */
|
|
24
24
|
['PUT']: {
|
|
25
25
|
request: test.Resource<V extends Lifecycle.All ? (Lifecycle.Create | Lifecycle.Update) : V> | test_inner.InnerModel<V extends Lifecycle.All ? (Lifecycle.Create | Lifecycle.Update) : V>,
|
|
26
|
-
response: {status: 200, body:
|
|
27
|
-
statusCode: 200
|
|
28
|
-
}}
|
|
26
|
+
response: {status: 200, body: undefined}
|
|
29
27
|
}
|
|
30
28
|
},
|
|
31
29
|
['/inner']: {
|
|
32
30
|
['DELETE']: {
|
|
33
31
|
request: test_inner.InnerModel<V extends Lifecycle.All ? (Lifecycle.Delete) : V> | test_inner.InnerModel2,
|
|
34
|
-
response: {status: 200, body: {
|
|
35
|
-
statusCode: 200
|
|
36
|
-
}} | {status: 401, body: {
|
|
37
|
-
statusCode: 401
|
|
38
|
-
}}
|
|
32
|
+
response: {status: 200, body: undefined} | {status: 401, body: undefined}
|
|
39
33
|
}
|
|
40
34
|
}
|
|
41
35
|
};
|