typespec-typescript-emitter 0.4.1 → 1.1.0

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.
@@ -0,0 +1,27 @@
1
+ name: Create Release (without bumping version)
2
+ on:
3
+ workflow_dispatch:
4
+
5
+ jobs:
6
+ changelog:
7
+ runs-on: ubuntu-latest
8
+ steps:
9
+ - uses: actions/checkout@v4
10
+ with:
11
+ token: ${{ secrets.GH_TOKEN }}
12
+ - name: Create Conventional Changelog
13
+ id: changelog
14
+ uses: TriPSs/conventional-changelog-action@v5.4.0
15
+ with:
16
+ github-token: ${{ secrets.GH_TOKEN }}
17
+ skip-on-empty: false
18
+ skip-bump: true
19
+ - name: Create Release
20
+ uses: actions/create-release@v1
21
+ if: ${{ steps.changelog.outputs.skipped == 'false' }}
22
+ env:
23
+ GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
24
+ with:
25
+ tag_name: ${{ steps.changelog.outputs.tag }}
26
+ release_name: ${{ steps.changelog.outputs.tag }}
27
+ body: ${{ steps.changelog.outputs.clean_changelog }}
package/.nvmrc ADDED
@@ -0,0 +1 @@
1
+ 22
package/CHANGELOG.md CHANGED
@@ -1,47 +1,48 @@
1
- ## [0.4.1](https://github.com/crowbait/typespec-typescript-emitter/compare/v0.4.0...v0.4.1) (2025-02-25)
1
+ # [1.1.0](https://github.com/crowbait/typespec-typescript-emitter/compare/v1.0.0...v1.1.0) (2025-05-23)
2
2
 
3
3
 
4
- ### Bug Fixes
5
4
 
6
- * fixed eslint ignore directives ([9c0477a](https://github.com/crowbait/typespec-typescript-emitter/commit/9c0477a6925715b99c38d4133d04ee774a0a65f7))
5
+ # [1.0.0](https://github.com/crowbait/typespec-typescript-emitter/compare/v0.4.1...v1.0.0) (2025-03-13)
7
6
 
8
7
 
9
-
10
- # [0.4.0](https://github.com/crowbait/typespec-typescript-emitter/compare/v0.3.5...v0.4.0) (2025-02-25)
8
+ * feat!: complete rework of routes emitter ([2f07e7f](https://github.com/crowbait/typespec-typescript-emitter/commit/2f07e7f487f0e6531b89e66f7de4d7d09382e4e5))
11
9
 
12
10
 
13
11
  ### Features
14
12
 
15
- * option to emit relative URLs in routes object ([be50613](https://github.com/crowbait/typespec-typescript-emitter/commit/be50613ac94550899805faf2555b3f407d88be33))
13
+ * routed typemap ([0a57f43](https://github.com/crowbait/typespec-typescript-emitter/commit/0a57f439e6f483c35b00824c725aecc66d3a80df))
16
14
 
17
15
 
16
+ ### BREAKING CHANGES
17
+
18
+ * This breaks existing configurations and - depending on how it was used - usage of the emitted routes object.
18
19
 
19
- ## [0.3.5](https://github.com/crowbait/typespec-typescript-emitter/compare/v0.3.4...v0.3.5) (2025-02-23)
20
+
21
+
22
+ ## [0.4.1](https://github.com/crowbait/typespec-typescript-emitter/compare/v0.4.0...v0.4.1) (2025-02-25)
20
23
 
21
24
 
22
25
  ### Bug Fixes
23
26
 
24
- * ci (no skip on chore-only) ([75b2e5d](https://github.com/crowbait/typespec-typescript-emitter/commit/75b2e5d4346fd17de5c7baf689de6e4cac259542))
27
+ * fixed eslint ignore directives ([9c0477a](https://github.com/crowbait/typespec-typescript-emitter/commit/9c0477a6925715b99c38d4133d04ee774a0a65f7))
25
28
 
26
29
 
27
30
 
28
- ## [0.3.4](https://github.com/crowbait/typespec-typescript-emitter/compare/v0.3.3...v0.3.4) (2025-01-03)
31
+ # [0.4.0](https://github.com/crowbait/typespec-typescript-emitter/compare/v0.3.5...v0.4.0) (2025-02-25)
29
32
 
30
33
 
31
- ### Bug Fixes
34
+ ### Features
32
35
 
33
- * model resolution if spread over multiple files ([bd34d4e](https://github.com/crowbait/typespec-typescript-emitter/commit/bd34d4ee7a7cc83c3c233ffd3ae9086db318be51))
34
- * model typeguard resolution if spread over mutliple files ([eab6064](https://github.com/crowbait/typespec-typescript-emitter/commit/eab606421c930d5c9a747ffbd0d1a0707608374b))
35
- * support recursive records ([c0bad3f](https://github.com/crowbait/typespec-typescript-emitter/commit/c0bad3f15f2f0913ef99129ce17c53a17fd0d125)), closes [#3](https://github.com/crowbait/typespec-typescript-emitter/issues/3)
36
+ * option to emit relative URLs in routes object ([be50613](https://github.com/crowbait/typespec-typescript-emitter/commit/be50613ac94550899805faf2555b3f407d88be33))
36
37
 
37
38
 
38
39
 
39
- ## [0.3.3](https://github.com/crowbait/typespec-typescript-emitter/compare/v0.3.2...v0.3.3) (2025-01-02)
40
+ ## [0.3.5](https://github.com/crowbait/typespec-typescript-emitter/compare/v0.3.4...v0.3.5) (2025-02-23)
40
41
 
41
42
 
42
43
  ### Bug Fixes
43
44
 
44
- * parsing of Record-type models ([b6e1dd9](https://github.com/crowbait/typespec-typescript-emitter/commit/b6e1dd91b94e39ad657d584f49051bc8e9e83608)), closes [#2](https://github.com/crowbait/typespec-typescript-emitter/issues/2)
45
+ * ci (no skip on chore-only) ([75b2e5d](https://github.com/crowbait/typespec-typescript-emitter/commit/75b2e5d4346fd17de5c7baf689de6e4cac259542))
45
46
 
46
47
 
47
48
 
package/README.md CHANGED
@@ -45,8 +45,6 @@ options:
45
45
  enable-types: true
46
46
  enable-typeguards: false
47
47
  enable-routes: false
48
- relative-routes: false
49
- typeguards-in-routes: true
50
48
  ```
51
49
 
52
50
  The following options are available:
@@ -56,8 +54,6 @@ The following options are available:
56
54
  - `enable-types` (default: true): enables output of TypeScript types.
57
55
  - `enable-typeguards` (default: false): enables output of typeguards, *IF* type-output is enabled.
58
56
  - `enable-routes` (default: false): enables output of the HTTP-routes object.
59
- - `relative-routes` (default: false): emits URLs in the routes object relative to the server's address (as opposed to a fully qualified URL when set to false).
60
- - `typeguards-in-routes` (default: false) **Experimental**: generates or references typeguards in the routes object, *IF* types, typeguards *and* routes are enabled.
61
57
 
62
58
  ## Types emitter
63
59
 
@@ -154,7 +150,12 @@ model Derived2 {...OmitProperties<Demo, "prop1">};
154
150
  **This emitter depends on your use of the `TypeSpec.Http` library**.
155
151
 
156
152
  If you're using `TypeSpec.Http` to define your API routes and endpoints, this library offers an emitter to export a `routes` object.
157
- The way this is implemented, it will currently only work well for 'simpler' projects using one root domain.
153
+ It will generate a nested object containing information about every `op` you have defined, nested by namespace.
154
+ I contains the following data (per `op`):
155
+ - `method`: HTTP method
156
+ - `path`: Path (as defined as `route`-string; parameters are not substituted)
157
+ - `getUrl`: Function for generating a valid URL to this `op`; if the path has parameters, this function will have analogue parameters
158
+ - `auth`: Array of valid authentication schemes (or `[null]`, if none)
158
159
  Just as the types emitter, this emitter will also preserve docs as JSDoc-style comments.
159
160
 
160
161
  Example:
@@ -176,7 +177,7 @@ namespace myProject { // remember to set in config!
176
177
  namespace sub {
177
178
  @post
178
179
  @route("post/{post_param}")
179
- @useAuth(BasicAuth)
180
+ @useAuth(BearerAuth)
180
181
  op postSomething(
181
182
  @path post_param: int32,
182
183
  @body body: string
@@ -191,29 +192,23 @@ namespace myProject { // remember to set in config!
191
192
  /* /path/to/outdir/routes_{root-namespace}.ts */
192
193
  export const routes_myProject = {
193
194
  getSomething: {
194
- method: 'get',
195
- getUrl: () => 'https://api.example.com/',
196
- auth: false,
197
- // with `typeguards-in-routes`
198
- isRequestType: null,
199
- isResponseType: (arg: any): boolean => typeof arg === 'string'
195
+ method: 'GET',
196
+ path: '/',
197
+ getUrl: (): string => `/`,
198
+ auth: [null]
200
199
  },
201
200
  getSmthElse: {
202
- method: 'get',
203
- getUrl: (p: {param: string}) => `https://api.example.com/${p.param}`,
204
- auth: 'varies',
205
- // with `typeguards-in-routes`
206
- isRequestType: null,
207
- isResponseType: (arg: any): boolean => typeof arg === 'string'
201
+ method: 'GET',
202
+ path: '/{param}',
203
+ getUrl: (params: {param: string}): string => `/${params.param}`,
204
+ auth: [null, "BASIC"]
208
205
  },
209
206
  sub: {
210
207
  postSomething: {
211
- method: 'post',
212
- getUrl: (p: {post_param: string}) => `https://api.example.com/subroute/post/${p.post_param}`,
213
- auth: true,
214
- // with `typeguards-in-routes`
215
- isRequestType: (arg: any): boolean => typeof arg === 'string',
216
- isResponseType: (arg: any): boolean => typeof arg === 'string'
208
+ method: 'POST',
209
+ path: '/post/{post_param}',
210
+ getUrl: (params: {post_param: string}): string => `/post/${params.post_param}`,
211
+ auth: ["BEARER"]
217
212
  }
218
213
  }
219
214
  } as const;
@@ -0,0 +1,2 @@
1
+ import { EmitContext, Namespace } from "@typespec/compiler";
2
+ export declare const emitRoutedTypemap: (context: EmitContext, namespace: Namespace) => string;
@@ -0,0 +1,81 @@
1
+ import { getHttpOperation } from "@typespec/http";
2
+ import { resolveType } from "./emit_types_resolve.js";
3
+ export const emitRoutedTypemap = (context, namespace) => {
4
+ const ops = {};
5
+ const traverseNamespace = (n) => {
6
+ // operations
7
+ n.operations.forEach((op) => {
8
+ const httpOp = getHttpOperation(context.program, op);
9
+ const identifier = httpOp[0].path;
10
+ ops[identifier] = {
11
+ request: "null",
12
+ response: [{ status: 200, body: "unknown" }],
13
+ };
14
+ // request
15
+ let request = "null";
16
+ if (op.parameters.properties.has("body")) {
17
+ request = resolveType(op.parameters.properties.get("body").type, 1, namespace, context);
18
+ }
19
+ ops[identifier].request = request;
20
+ // response
21
+ if (op.returnType && op.returnType.kind) {
22
+ const getReturnType = (t) => {
23
+ const ret = [];
24
+ if (t.kind === "Model") {
25
+ // if the return type is a model, it may have a fully qualified body
26
+ const modelret = {
27
+ status: 200,
28
+ body: "unknown",
29
+ };
30
+ let wasQualifiedBody = false;
31
+ t.properties.forEach((prop) => {
32
+ prop.decorators.forEach((dec) => {
33
+ // one of the properties may be the status code
34
+ if (dec.definition?.name === "@statusCode" &&
35
+ prop.type.kind === "Number")
36
+ modelret.status = prop.type.value;
37
+ // one of the properties may be the body definition
38
+ if (dec.definition?.name === "@body") {
39
+ modelret.body = resolveType(prop.type, 1, namespace, context);
40
+ wasQualifiedBody = true;
41
+ }
42
+ });
43
+ });
44
+ // ... if not, we assume status 200 and treat the model as the body
45
+ if (!wasQualifiedBody) {
46
+ modelret.body = resolveType(t, 1, namespace, context);
47
+ }
48
+ ret.push(modelret);
49
+ }
50
+ else if (t.kind === "Union") {
51
+ // if the return type is a union, we have to check and resolve all variants
52
+ // the union could either be a body-only definition or fully qualified (see above)
53
+ t.variants.forEach((variant) => {
54
+ ret.push(...getReturnType(variant.type));
55
+ });
56
+ }
57
+ else
58
+ ret.push({ status: 200, body: resolveType(t, 1, namespace) });
59
+ return ret;
60
+ };
61
+ ops[identifier].response = getReturnType(op.returnType);
62
+ }
63
+ }); // end operations
64
+ // get and traverse all namespaces
65
+ n.namespaces.forEach((ns) => traverseNamespace(ns));
66
+ };
67
+ traverseNamespace(namespace);
68
+ let out = `export type types_${context.options["root-namespace"]} = {\n`;
69
+ out += Object.entries(ops)
70
+ .map((op) => {
71
+ let ret = ` ['${op[0]}']: {\n`;
72
+ ret += ` request: ${op[1].request}\n`;
73
+ ret += ` response: ${op[1].response.map((res) => `{status: ${res.status}, body: ${res.body}}`).join(" | ")}\n`;
74
+ ret += " }";
75
+ return ret;
76
+ })
77
+ .join(",\n");
78
+ out += "\n};\n";
79
+ return out;
80
+ };
81
+ //# sourceMappingURL=emit_mapped_types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emit_mapped_types.js","sourceRoot":"","sources":["../../src/emit_mapped_types.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,2 @@
1
1
  import { EmitContext, Namespace } from "@typespec/compiler";
2
- import { EmitterOptions } from "./lib.js";
3
- declare const emitRoutes: (context: EmitContext, namespace: Namespace, rootServer: string, options: EmitterOptions, knownTypeguards: Array<{
4
- filename: string;
5
- name: string;
6
- }>) => string;
7
- export default emitRoutes;
2
+ export declare const emitRoutes: (context: EmitContext, namespace: Namespace) => string;
@@ -1,129 +1,79 @@
1
- import { getDoc, } from "@typespec/compiler";
1
+ import { getDoc } from "@typespec/compiler";
2
2
  import { getAuthentication, getHttpOperation } from "@typespec/http";
3
- import { getTypeguard } from "./emit_types_typeguards.js";
4
- import autogenerateWarning from "./helper_autogenerateWarning.js";
5
- const emitRoutes = (context, namespace, rootServer, options, knownTypeguards) => {
6
- const rootNode = `routes_${context.options["root-namespace"]}`;
7
- const imports = [];
8
- let out = autogenerateWarning;
9
- out += `const ${rootNode} = {\n`;
3
+ export const emitRoutes = (context, namespace) => {
4
+ let out = `export const routes_${context.options["root-namespace"]} = {\n`;
10
5
  const traverseNamespace = (n, nestLevel) => {
11
6
  // operations
12
- let opNum = 0;
7
+ let opnum = 0;
13
8
  n.operations.forEach((op) => {
14
- opNum++;
9
+ opnum++;
15
10
  const httpOp = getHttpOperation(context.program, op);
16
11
  // jsdoc comment
17
12
  const doc = getDoc(context.program, op);
18
13
  if (doc)
19
14
  out = out.addLine(`/** ${doc} */`, nestLevel + 1);
15
+ // start op body
20
16
  out = out.addLine(`${op.name}: {`, nestLevel + 1);
21
- // http method
17
+ // HTTP method
22
18
  out = out.addLine(`method: '${httpOp[0].verb.toUpperCase()}',`, nestLevel + 2);
23
- // url parameters
19
+ // path
20
+ out = out.addLine(`path: '${httpOp[0].path}',`, nestLevel + 2);
21
+ // getUrl
24
22
  const pathParams = httpOp[0].parameters.parameters.filter((p) => p.type === "path");
25
- if (pathParams.length > 0) {
26
- out = out.addLine("getUrl: (p: {", nestLevel + 2);
27
- pathParams
28
- .map((p) => `${p.name}: string`)
29
- .forEach((p) => (out = out.addLine(p, nestLevel + 3)));
30
- let fn = "}) => ";
31
- fn += pathParams.reduce((sum, cur) => sum.replaceAll(`{${cur.name}}`, `${"$"}{p.${cur.name}}`), `\`${!options["relative-routes"] ? rootServer : ""}${httpOp[0].path}\`,`);
32
- out = out.addLine(fn, nestLevel + 2);
33
- }
34
- else {
35
- out = out.addLine(`getUrl: () => '${!options["relative-routes"] ? rootServer : ""}${httpOp[0].path}',`, nestLevel + 2);
36
- }
23
+ const pathParamsArgsString = pathParams
24
+ .map((p) => `${p.name}: string`)
25
+ .join(", ");
26
+ const pathParamsArg = `params: {${pathParamsArgsString}}`;
27
+ const pathParamsOutString = pathParams.reduce((sum, cur) => sum.replaceAll(`{${cur.name}}`, `${"$"}{params.${cur.name}}`), `\`${httpOp[0].path}\``);
28
+ out = out.addLine(`getUrl: (${pathParams.length > 0 ? pathParamsArg : ""}): string => ${pathParamsOutString},`, nestLevel + 2);
37
29
  // auth
38
- let auth = false;
30
+ let auth = [];
39
31
  const opAuth = getAuthentication(context.program, op);
40
32
  if (opAuth) {
41
- let includesSome = false;
42
- let includesNone = false;
43
- opAuth.options.forEach((authOpt) => {
44
- if (authOpt.schemes.some((scheme) => scheme.type !== "noAuth"))
45
- includesSome = true;
46
- if (authOpt.schemes.some((scheme) => scheme.type === "noAuth"))
47
- includesNone = true;
48
- });
49
- auth =
50
- includesSome && includesNone
51
- ? "varies"
52
- : includesSome && !includesNone
53
- ? true
54
- : false;
55
- }
56
- out = out.addLine(`auth: ${typeof auth === "string" ? `'${auth}'` : auth.toString()}${options["typeguards-in-routes"] ? "," : ""}`, nestLevel + 2);
57
- // typeguards
58
- const typeguardLines = (t) => {
59
- const guard = getTypeguard(t, "arg", 0, n, knownTypeguards);
60
- imports.push(...guard[1]);
61
- return guard[0].split("\n");
62
- };
63
- if (options["typeguards-in-routes"]) {
64
- if (!knownTypeguards) {
65
- console.warn("Typeguard Names List was empty when it shouldn't have been.");
66
- return;
67
- }
68
- if (op.parameters.properties.has("body")) {
69
- const lines = typeguardLines(op.parameters.properties.get("body").type);
70
- out = out.addLine(`isRequestType: ${lines.length === 0 ? "null" : `(arg: any): boolean => ${lines.shift()}`}${lines.length < 1 ? "," : ""}`, nestLevel + 2, lines.length === 1);
71
- if (lines.length > 0) {
72
- lines[lines.length - 1] += ",";
73
- lines.forEach((line, i, arr) => {
74
- out = out.addLine(line, lines.length > 1 ? nestLevel + (i < arr.length - 1 ? 3 : 2) : 0);
33
+ opAuth.options.forEach((authOption) => authOption.schemes.forEach((authScheme) => {
34
+ if (authScheme.type === "noAuth")
35
+ auth.push(null);
36
+ if (authScheme.type === "http")
37
+ auth.push(authScheme.scheme.toUpperCase());
38
+ if (authScheme.type === "apiKey")
39
+ auth.push({
40
+ apiKeyLocation: authScheme.in.toUpperCase(),
41
+ apiKeyName: authScheme.name,
75
42
  });
76
- }
77
- }
78
- else
79
- out = out.addLine("isRequestType: null,", nestLevel + 2);
80
- if (op.returnType &&
81
- op.returnType.kind &&
82
- op.returnType.kind !== "Intrinsic") {
83
- const lines = [];
84
- const addModelLines = (m) => {
85
- if (m.properties.has("body")) {
86
- lines.push(...typeguardLines(m.properties.get("body").type));
87
- // else (no "body" prop): stays empty -> 'null'
88
- // why?: unnamed model return type is likely to be / should be
89
- // headers'n'stuff, so if there is no "body" property, play it safe
90
- }
91
- };
92
- if (op.returnType.kind === "Union") {
93
- op.returnType.variants.forEach((v) => {
94
- if (v.type.kind === "Model")
95
- addModelLines(v.type);
96
- });
97
- }
98
- if (op.returnType.kind === "Model")
99
- addModelLines(op.returnType);
100
- out = out.addLine(`isResponseType: ${lines.length === 0 ? "null" : `(arg: any): boolean => ${lines.shift()}`}${lines.length < 1 ? "," : ""}`, nestLevel + 2, lines.length === 1);
101
- lines.forEach((line, i, arr) => {
102
- out = out.addLine(line, lines.length > 1 ? nestLevel + (i < arr.length - 1 ? 3 : 2) : 0);
103
- });
104
- }
105
- else
106
- out = out.addLine("isResponseType: null", nestLevel + 2);
43
+ if (authScheme.type === "oauth2")
44
+ authScheme.flows.forEach((oauthFlow) => auth.push(`OAuth_${oauthFlow.type}`));
45
+ if (authScheme.type === "openIdConnect")
46
+ auth.push("OPENID");
47
+ }));
107
48
  }
108
- out = out.addLine(`}${opNum < n.operations.size || n.namespaces.size > 0 ? "," : ""}`, nestLevel + 1);
109
- });
110
- // namespaces
111
- let nsNum = 0;
49
+ else
50
+ auth = [null];
51
+ out = out.addLine(`auth: [${auth
52
+ .map((authEntry) => !authEntry
53
+ ? "null"
54
+ : typeof authEntry === "string"
55
+ ? `'${authEntry}'`
56
+ : `{${Object.entries(authEntry)
57
+ .map((entry) => `${entry[0]}: '${entry[1]}'`)
58
+ .join(", ")}}`)
59
+ .join(", ")}]`, nestLevel + 2);
60
+ // finalize route entry
61
+ out = out.addLine(`}${opnum < n.operations.size || n.namespaces.size > 0 ? "," : ""}`, nestLevel + 1);
62
+ }); // end operations
63
+ // get and traverse all namespaces
64
+ let nsnum = 0;
112
65
  n.namespaces.forEach((ns) => {
113
- nsNum++;
66
+ nsnum++;
114
67
  const doc = getDoc(context.program, ns);
115
68
  if (doc)
116
69
  out = out.addLine(`/** ${doc} */`, nestLevel + 1);
117
70
  out = out.addLine(`${ns.name}: {`, nestLevel + 1);
118
71
  traverseNamespace(ns, nestLevel + 1);
119
- out = out.addLine(`}${nsNum < n.namespaces.size ? "," : ""}`, nestLevel + 1);
72
+ out = out.addLine(`}${nsnum < n.namespaces.size ? "," : ""}`, nestLevel + 1);
120
73
  });
121
74
  };
122
75
  traverseNamespace(namespace, 0);
123
76
  out += "} as const;\n";
124
- out += `export default ${rootNode};\n`;
125
- out = `${imports.filter((x, i, arr) => arr.indexOf(x) === i).join("\n")}\n\n${out}`;
126
77
  return out;
127
78
  };
128
- export default emitRoutes;
129
79
  //# sourceMappingURL=emit_routes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"emit_routes.js","sourceRoot":"","sources":["../../src/emit_routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"emit_routes.js","sourceRoot":"","sources":["../../src/emit_routes.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  import { getDoc } from "@typespec/compiler";
2
2
  import { resolveEnum, resolveModel, resolveUnion, } from "./emit_types_resolve.js";
3
3
  import { getTypeguardModel } from "./emit_types_typeguards.js";
4
- import autogenerateWarning from "./helper_autogenerateWarning.js";
5
4
  const emitTypes = (context, namespace, options) => {
6
5
  const out = { files: {}, typeguardedNames: [] };
7
6
  const traverseNamespace = (n) => {
@@ -19,7 +18,7 @@ const emitTypes = (context, namespace, options) => {
19
18
  });
20
19
  n.unions.forEach((u) => {
21
20
  if (options["enable-types"]) {
22
- const resolved = resolveUnion(context, u, 0, n, true);
21
+ const resolved = resolveUnion(u, 0, n, context, true);
23
22
  if (resolved) {
24
23
  const doc = getDoc(context.program, u);
25
24
  if (doc)
@@ -30,7 +29,7 @@ const emitTypes = (context, namespace, options) => {
30
29
  });
31
30
  n.models.forEach((m) => {
32
31
  if (options["enable-types"]) {
33
- const resolved = resolveModel(context, m, 0, n, true);
32
+ const resolved = resolveModel(m, 0, n, context, true);
34
33
  if (resolved) {
35
34
  const doc = getDoc(context.program, m);
36
35
  if (doc)
@@ -55,8 +54,6 @@ const emitTypes = (context, namespace, options) => {
55
54
  }
56
55
  file += "\n";
57
56
  });
58
- if (file)
59
- file = autogenerateWarning + file;
60
57
  // set output for this namespace
61
58
  out.files[n.name.charAt(0).toUpperCase() + n.name.slice(1)] = file;
62
59
  // recursively iterate child namespaces
@@ -1 +1 @@
1
- {"version":3,"file":"emit_types.js","sourceRoot":"","sources":["../../src/emit_types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,MAAM,EAAa,MAAM,oBAAoB,CAAC;AACpE,OAAO,EACL,WAAW,EACX,YAAY,EACZ,YAAY,GACb,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,mBAAmB,MAAM,iCAAiC,CAAC;AAGlE,MAAM,SAAS,GAAG,CAChB,OAAoB,EACpB,SAAoB,EACpB,OAAuB,EAIvB,EAAE;IACF,MAAM,GAAG,GAAiC,EAAE,KAAK,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAAC;IAE9E,MAAM,iBAAiB,GAAG,CAAC,CAAY,EAAQ,EAAE;QAC/C,IAAI,IAAI,GAAG,EAAE,CAAC;QAEd,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACpB,IAAI,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC5B,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;gBACzC,IAAI,QAAQ,EAAE,CAAC;oBACb,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;oBACvC,IAAI,GAAG;wBAAE,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC;oBAC9C,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI,IAAI,QAAQ,KAAK,CAAC,CAAC;gBAC9D,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACrB,IAAI,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC5B,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;gBACtD,IAAI,QAAQ,EAAE,CAAC;oBACb,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;oBACvC,IAAI,GAAG;wBAAE,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC;oBAC9C,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI,MAAM,QAAQ,KAAK,CAAC,CAAC;gBAChE,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACrB,IAAI,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC5B,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;gBACtD,IAAI,QAAQ,EAAE,CAAC;oBACb,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;oBACvC,IAAI,GAAG;wBAAE,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC;oBAC9C,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,IAAI,IAAI,QAAQ,GAAG,CAAC,CAAC;gBACjE,CAAC;YACH,CAAC;YACD,IAAI,OAAO,CAAC,mBAAmB,CAAC,EAAE,CAAC;gBACjC,IAAI,GAAG,IAAI,CAAC,OAAO,CACjB,qBAAqB,CAAC,CAAC,IAAI,sBAAsB,CAAC,CAAC,IAAI,IAAI,CAC5D,CAAC;gBACF,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;gBACnC,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;qBACzC,KAAK,CAAC,IAAI,CAAC;qBACX,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oBAChB,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBAC/B,CAAC,CAAC,CAAC;gBACL,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBAC7B,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAC1B,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC;oBACxB,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;oBAC1D,IAAI,EAAE,CAAC,CAAC,IAAI;iBACb,CAAC,CAAC;YACL,CAAC;YACD,IAAI,IAAI,IAAI,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,IAAI,IAAI;YAAE,IAAI,GAAG,mBAAmB,GAAG,IAAI,CAAC;QAC5C,gCAAgC;QAChC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QACnE,uCAAuC;QACvC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC;IACtD,CAAC,CAAC;IACF,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAE7B,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"emit_types.js","sourceRoot":"","sources":["../../src/emit_types.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import { ArrayModelType, EmitContext, Enum, Model, Namespace, RecordModelType, Scalar, Tuple, Type, Union } from "@typespec/compiler";
2
- export declare const resolveType: (context: EmitContext, t: Type, nestlevel: number, currentNamespace: Namespace) => string;
3
- export declare const resolveArray: (context: EmitContext, a: ArrayModelType, nestlevel: number, currentNamespace: Namespace) => string;
4
- export declare const resolveRecord: (context: EmitContext, a: RecordModelType, nestlevel: number, currentNamespace: Namespace) => string;
2
+ export declare const resolveType: (t: Type, nestlevel: number, currentNamespace: Namespace, context?: EmitContext) => string;
3
+ export declare const resolveArray: (a: ArrayModelType, nestlevel: number, currentNamespace: Namespace, context?: EmitContext) => string;
4
+ export declare const resolveRecord: (a: RecordModelType, nestlevel: number, currentNamespace: Namespace, context?: EmitContext) => string;
5
5
  export declare const resolveEnum: (e: Enum, nestlevel: number, isNamespaceRoot?: boolean) => string;
6
- export declare const resolveTuple: (context: EmitContext, t: Tuple, nestlevel: number, currentNamespace: Namespace) => string;
7
- export declare const resolveUnion: (context: EmitContext, u: Union, nestlevel: number, currentNamespace: Namespace, isNamespaceRoot?: boolean) => string;
6
+ export declare const resolveTuple: (t: Tuple, nestlevel: number, currentNamespace: Namespace, context?: EmitContext) => string;
7
+ export declare const resolveUnion: (u: Union, nestlevel: number, currentNamespace: Namespace, context?: EmitContext, isNamespaceRoot?: boolean) => string;
8
8
  export declare const resolveScalar: (s: Scalar) => string;
9
- export declare const resolveModel: (context: EmitContext, m: Model, nestlevel: number | undefined, currentNamespace: Namespace, isNamespaceRoot?: boolean) => string;
9
+ export declare const resolveModel: (m: Model, nestlevel: number | undefined, currentNamespace: Namespace, context?: EmitContext, isNamespaceRoot?: boolean) => string;