@typespec/openapi3 0.60.0-dev.5 → 0.60.0-dev.7
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/dist/src/cli/actions/convert/convert-file.d.ts.map +1 -1
- package/dist/src/cli/actions/convert/convert-file.js +4 -2
- package/dist/src/cli/actions/convert/convert-file.js.map +1 -1
- package/dist/src/cli/actions/convert/convert.d.ts.map +1 -1
- package/dist/src/cli/actions/convert/convert.js +4 -2
- package/dist/src/cli/actions/convert/convert.js.map +1 -1
- package/dist/src/cli/actions/convert/generators/generate-main.d.ts +2 -1
- package/dist/src/cli/actions/convert/generators/generate-main.d.ts.map +1 -1
- package/dist/src/cli/actions/convert/generators/generate-main.js +4 -4
- package/dist/src/cli/actions/convert/generators/generate-main.js.map +1 -1
- package/dist/src/cli/actions/convert/generators/generate-model.d.ts +3 -3
- package/dist/src/cli/actions/convert/generators/generate-model.d.ts.map +1 -1
- package/dist/src/cli/actions/convert/generators/generate-model.js +30 -35
- package/dist/src/cli/actions/convert/generators/generate-model.js.map +1 -1
- package/dist/src/cli/actions/convert/generators/generate-namespace.d.ts +2 -1
- package/dist/src/cli/actions/convert/generators/generate-namespace.d.ts.map +1 -1
- package/dist/src/cli/actions/convert/generators/generate-namespace.js +4 -4
- package/dist/src/cli/actions/convert/generators/generate-namespace.js.map +1 -1
- package/dist/src/cli/actions/convert/generators/generate-operation.d.ts +2 -1
- package/dist/src/cli/actions/convert/generators/generate-operation.d.ts.map +1 -1
- package/dist/src/cli/actions/convert/generators/generate-operation.js +10 -14
- package/dist/src/cli/actions/convert/generators/generate-operation.js.map +1 -1
- package/dist/src/cli/actions/convert/generators/generate-service-info.d.ts.map +1 -1
- package/dist/src/cli/actions/convert/generators/generate-service-info.js +1 -3
- package/dist/src/cli/actions/convert/generators/generate-service-info.js.map +1 -1
- package/dist/src/cli/actions/convert/generators/generate-types.d.ts +12 -8
- package/dist/src/cli/actions/convert/generators/generate-types.d.ts.map +1 -1
- package/dist/src/cli/actions/convert/generators/generate-types.js +138 -109
- package/dist/src/cli/actions/convert/generators/generate-types.js.map +1 -1
- package/dist/src/cli/actions/convert/interfaces.d.ts +1 -0
- package/dist/src/cli/actions/convert/interfaces.d.ts.map +1 -1
- package/dist/src/cli/actions/convert/transforms/transform-component-parameters.d.ts +3 -3
- package/dist/src/cli/actions/convert/transforms/transform-component-parameters.d.ts.map +1 -1
- package/dist/src/cli/actions/convert/transforms/transform-component-parameters.js +14 -27
- package/dist/src/cli/actions/convert/transforms/transform-component-parameters.js.map +1 -1
- package/dist/src/cli/actions/convert/transforms/transform-component-schemas.d.ts +2 -2
- package/dist/src/cli/actions/convert/transforms/transform-component-schemas.d.ts.map +1 -1
- package/dist/src/cli/actions/convert/transforms/transform-component-schemas.js +114 -96
- package/dist/src/cli/actions/convert/transforms/transform-component-schemas.js.map +1 -1
- package/dist/src/cli/actions/convert/transforms/transforms.d.ts +2 -2
- package/dist/src/cli/actions/convert/transforms/transforms.d.ts.map +1 -1
- package/dist/src/cli/actions/convert/transforms/transforms.js +6 -6
- package/dist/src/cli/actions/convert/transforms/transforms.js.map +1 -1
- package/dist/src/cli/actions/convert/utils/context.d.ts +10 -0
- package/dist/src/cli/actions/convert/utils/context.d.ts.map +1 -0
- package/dist/src/cli/actions/convert/utils/context.js +23 -0
- package/dist/src/cli/actions/convert/utils/context.js.map +1 -0
- package/dist/src/cli/actions/convert/utils/generate-namespace-name.d.ts +2 -0
- package/dist/src/cli/actions/convert/utils/generate-namespace-name.d.ts.map +1 -0
- package/dist/src/cli/actions/convert/utils/generate-namespace-name.js +4 -0
- package/dist/src/cli/actions/convert/utils/generate-namespace-name.js.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convert-file.d.ts","sourceRoot":"","sources":["../../../../../src/cli/actions/convert/convert-file.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"convert-file.d.ts","sourceRoot":"","sources":["../../../../../src/cli/actions/convert/convert-file.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAK3C,wBAAsB,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,iBAgCtE"}
|
|
@@ -3,14 +3,16 @@ import { formatTypeSpec, resolvePath } from "@typespec/compiler";
|
|
|
3
3
|
import { handleInternalCompilerError } from "../../utils.js";
|
|
4
4
|
import { generateMain } from "./generators/generate-main.js";
|
|
5
5
|
import { transform } from "./transforms/transforms.js";
|
|
6
|
+
import { createContext } from "./utils/context.js";
|
|
6
7
|
export async function convertAction(host, args) {
|
|
7
8
|
// attempt to read the file
|
|
8
9
|
const fullPath = resolvePath(process.cwd(), args.path);
|
|
9
10
|
const model = await parseOpenApiFile(fullPath);
|
|
10
|
-
const
|
|
11
|
+
const context = createContext(model);
|
|
12
|
+
const program = transform(context);
|
|
11
13
|
let mainTsp;
|
|
12
14
|
try {
|
|
13
|
-
mainTsp = generateMain(program);
|
|
15
|
+
mainTsp = generateMain(program, context);
|
|
14
16
|
}
|
|
15
17
|
catch (err) {
|
|
16
18
|
handleInternalCompilerError(err);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convert-file.js","sourceRoot":"","sources":["../../../../../src/cli/actions/convert/convert-file.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjE,OAAO,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAE7D,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"convert-file.js","sourceRoot":"","sources":["../../../../../src/cli/actions/convert/convert-file.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjE,OAAO,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAE7D,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAa,EAAE,IAAoB;IACrE,2BAA2B;IAC3B,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IACnC,IAAI,OAAe,CAAC;IACpB,IAAI,CAAC;QACH,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,2BAA2B,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,WAAW,CAAC;IAChB,2DAA2D;IAC3D,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE;YACtC,UAAU,EAAE,GAAG;YACf,QAAQ,EAAE,CAAC;SACZ,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,WAAW,GAAG,GAAG,CAAC;IACpB,CAAC;IAED,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QACtC,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,CAAC;IAC7E,CAAC;IAED,IAAI,WAAW,EAAE,CAAC;QAChB,2BAA2B,CAAC,WAAW,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY;IACpC,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,CAA8B,CAAC;AAC5D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../../../../src/cli/actions/convert/convert.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../../../../src/cli/actions/convert/convert.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAKrD,wBAAsB,uBAAuB,CAAC,QAAQ,EAAE,gBAAgB,mBAYvE"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { formatTypeSpec } from "@typespec/compiler";
|
|
2
2
|
import { generateMain } from "./generators/generate-main.js";
|
|
3
3
|
import { transform } from "./transforms/transforms.js";
|
|
4
|
+
import { createContext } from "./utils/context.js";
|
|
4
5
|
export async function convertOpenAPI3Document(document) {
|
|
5
|
-
const
|
|
6
|
-
const
|
|
6
|
+
const context = createContext(document);
|
|
7
|
+
const program = transform(context);
|
|
8
|
+
const content = generateMain(program, context);
|
|
7
9
|
try {
|
|
8
10
|
return await formatTypeSpec(content, {
|
|
9
11
|
printWidth: 100,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../../../src/cli/actions/convert/convert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../../../src/cli/actions/convert/convert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,QAA0B;IACtE,MAAM,OAAO,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/C,IAAI,CAAC;QACH,OAAO,MAAM,cAAc,CAAC,OAAO,EAAE;YACnC,UAAU,EAAE,GAAG;YACf,QAAQ,EAAE,CAAC;SACZ,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import { TypeSpecProgram } from "../interfaces.js";
|
|
2
|
-
|
|
2
|
+
import { Context } from "../utils/context.js";
|
|
3
|
+
export declare function generateMain(program: TypeSpecProgram, context: Context): string;
|
|
3
4
|
//# sourceMappingURL=generate-main.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-main.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/generators/generate-main.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"generate-main.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/generators/generate-main.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAM9C,wBAAgB,YAAY,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAmB/E"}
|
|
@@ -2,7 +2,7 @@ import { generateDataType } from "./generate-model.js";
|
|
|
2
2
|
import { generateNamespace } from "./generate-namespace.js";
|
|
3
3
|
import { generateOperation } from "./generate-operation.js";
|
|
4
4
|
import { generateServiceInformation } from "./generate-service-info.js";
|
|
5
|
-
export function generateMain(program) {
|
|
5
|
+
export function generateMain(program, context) {
|
|
6
6
|
return `
|
|
7
7
|
import "@typespec/http";
|
|
8
8
|
import "@typespec/openapi";
|
|
@@ -13,12 +13,12 @@ export function generateMain(program) {
|
|
|
13
13
|
|
|
14
14
|
${generateServiceInformation(program.serviceInfo)}
|
|
15
15
|
|
|
16
|
-
${program.types.map(generateDataType).join("\n\n")}
|
|
16
|
+
${program.types.map((t) => generateDataType(t, context)).join("\n\n")}
|
|
17
17
|
|
|
18
|
-
${program.operations.map(generateOperation).join("\n\n")}
|
|
18
|
+
${program.operations.map((o) => generateOperation(o, context)).join("\n\n")}
|
|
19
19
|
|
|
20
20
|
${Object.entries(program.namespaces)
|
|
21
|
-
.map(([name, namespace]) => generateNamespace(name, namespace))
|
|
21
|
+
.map(([name, namespace]) => generateNamespace(name, namespace, context))
|
|
22
22
|
.join("\n\n")}
|
|
23
23
|
`;
|
|
24
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-main.js","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/generators/generate-main.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generate-main.js","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/generators/generate-main.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAExE,MAAM,UAAU,YAAY,CAAC,OAAwB,EAAE,OAAgB;IACrE,OAAO;;;;;;;;IAQL,0BAA0B,CAAC,OAAO,CAAC,WAAW,CAAC;;IAE/C,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;;IAEnE,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;;IAEzE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;SACjC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;SACvE,IAAI,CAAC,MAAM,CAAC;GACd,CAAC;AACJ,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { TypeSpecDataTypes
|
|
2
|
-
|
|
3
|
-
export declare function
|
|
1
|
+
import { TypeSpecDataTypes } from "../interfaces.js";
|
|
2
|
+
import { Context } from "../utils/context.js";
|
|
3
|
+
export declare function generateDataType(type: TypeSpecDataTypes, context: Context): string;
|
|
4
4
|
//# sourceMappingURL=generate-model.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-model.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/generators/generate-model.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generate-model.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/generators/generate-model.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,iBAAiB,EAKlB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAM9C,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAalF"}
|
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
import { getDecoratorsForSchema } from "../utils/decorators.js";
|
|
2
2
|
import { generateDocs } from "../utils/docs.js";
|
|
3
3
|
import { generateDecorators } from "./generate-decorators.js";
|
|
4
|
-
import {
|
|
5
|
-
export function generateDataType(type) {
|
|
4
|
+
import { getTypeSpecPrimitiveFromSchema } from "./generate-types.js";
|
|
5
|
+
export function generateDataType(type, context) {
|
|
6
6
|
switch (type.kind) {
|
|
7
7
|
case "alias":
|
|
8
|
-
return generateAlias(type);
|
|
8
|
+
return generateAlias(type, context);
|
|
9
9
|
case "enum":
|
|
10
10
|
return generateEnum(type);
|
|
11
11
|
case "model":
|
|
12
|
-
return generateModel(type);
|
|
12
|
+
return generateModel(type, context);
|
|
13
13
|
case "scalar":
|
|
14
|
-
return generateScalar(type);
|
|
14
|
+
return generateScalar(type, context);
|
|
15
15
|
case "union":
|
|
16
|
-
return generateUnion(type);
|
|
16
|
+
return generateUnion(type, context);
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
|
-
function generateAlias(alias) {
|
|
19
|
+
function generateAlias(alias, context) {
|
|
20
20
|
// Since aliases are not represented in the TypeGraph,
|
|
21
21
|
// generate a model so that the model name is present in emitted OpenAPI3.
|
|
22
22
|
// May revisit to allow emitting actual alias.
|
|
23
|
-
const
|
|
24
|
-
return `model ${alias.name} is ${
|
|
23
|
+
const sourceModel = context.getRefName(alias.ref, alias.scope);
|
|
24
|
+
return `model ${alias.name} is ${sourceModel};`;
|
|
25
25
|
}
|
|
26
26
|
function generateEnum(tsEnum) {
|
|
27
27
|
const definitions = [];
|
|
@@ -37,17 +37,17 @@ function generateEnum(tsEnum) {
|
|
|
37
37
|
definitions.push("}");
|
|
38
38
|
return definitions.join("\n");
|
|
39
39
|
}
|
|
40
|
-
function generateScalar(scalar) {
|
|
40
|
+
function generateScalar(scalar, context) {
|
|
41
41
|
const definitions = [];
|
|
42
42
|
if (scalar.doc) {
|
|
43
43
|
definitions.push(generateDocs(scalar.doc));
|
|
44
44
|
}
|
|
45
45
|
definitions.push(...generateDecorators(scalar.decorators));
|
|
46
|
-
const type =
|
|
46
|
+
const type = context.generateTypeFromRefableSchema(scalar.schema, scalar.scope);
|
|
47
47
|
definitions.push(`scalar ${scalar.name} extends ${type};`);
|
|
48
48
|
return definitions.join("\n");
|
|
49
49
|
}
|
|
50
|
-
function generateUnion(union) {
|
|
50
|
+
function generateUnion(union, context) {
|
|
51
51
|
const definitions = [];
|
|
52
52
|
if (union.doc) {
|
|
53
53
|
definitions.push(generateDocs(union.doc));
|
|
@@ -59,10 +59,10 @@ function generateUnion(union) {
|
|
|
59
59
|
definitions.push(...schema.enum.map((e) => `${JSON.stringify(e)},`));
|
|
60
60
|
}
|
|
61
61
|
else if (schema.oneOf) {
|
|
62
|
-
definitions.push(...schema.oneOf.map(
|
|
62
|
+
definitions.push(...schema.oneOf.map((member) => context.generateTypeFromRefableSchema(member, union.scope)));
|
|
63
63
|
}
|
|
64
64
|
else if (schema.anyOf) {
|
|
65
|
-
definitions.push(...schema.anyOf.map(
|
|
65
|
+
definitions.push(...schema.anyOf.map((member) => context.generateTypeFromRefableSchema(member, union.scope)));
|
|
66
66
|
}
|
|
67
67
|
else {
|
|
68
68
|
// check if it's a primitive type
|
|
@@ -77,10 +77,7 @@ function generateUnion(union) {
|
|
|
77
77
|
definitions.push("}");
|
|
78
78
|
return definitions.join("\n");
|
|
79
79
|
}
|
|
80
|
-
function
|
|
81
|
-
return `${generateTypeFromSchema(member)},`;
|
|
82
|
-
}
|
|
83
|
-
export function generateModel(model) {
|
|
80
|
+
function generateModel(model, context) {
|
|
84
81
|
const definitions = [];
|
|
85
82
|
const modelDeclaration = generateModelDeclaration(model);
|
|
86
83
|
if (model.doc) {
|
|
@@ -88,9 +85,21 @@ export function generateModel(model) {
|
|
|
88
85
|
}
|
|
89
86
|
definitions.push(...generateDecorators(model.decorators));
|
|
90
87
|
definitions.push(modelDeclaration.open);
|
|
91
|
-
|
|
88
|
+
if (model.spread?.length) {
|
|
89
|
+
definitions.push(...model.spread.map((spread) => `...${spread};`));
|
|
90
|
+
}
|
|
91
|
+
definitions.push(...model.properties.map((prop) => {
|
|
92
|
+
// Decorators will be a combination of top-level (parameters) and
|
|
93
|
+
// schema-level decorators.
|
|
94
|
+
const decorators = generateDecorators([
|
|
95
|
+
...prop.decorators,
|
|
96
|
+
...getDecoratorsForSchema(prop.schema),
|
|
97
|
+
]).join(" ");
|
|
98
|
+
const doc = prop.doc ? generateDocs(prop.doc) : "";
|
|
99
|
+
return `${doc}${decorators} ${prop.name}${prop.isOptional ? "?" : ""}: ${context.generateTypeFromRefableSchema(prop.schema, model.scope)};`;
|
|
100
|
+
}));
|
|
92
101
|
if (model.additionalProperties) {
|
|
93
|
-
definitions.push(`...Record<${
|
|
102
|
+
definitions.push(`...Record<${context.generateTypeFromRefableSchema(model.additionalProperties, model.scope)}>;`);
|
|
94
103
|
}
|
|
95
104
|
if (modelDeclaration.close)
|
|
96
105
|
definitions.push(modelDeclaration.close);
|
|
@@ -98,26 +107,12 @@ export function generateModel(model) {
|
|
|
98
107
|
}
|
|
99
108
|
function generateModelDeclaration(model) {
|
|
100
109
|
const modelName = model.name;
|
|
101
|
-
const modelType = model.type ?? "object";
|
|
102
110
|
if (model.is) {
|
|
103
111
|
return { open: `model ${modelName} is ${model.is};` };
|
|
104
112
|
}
|
|
105
|
-
if (
|
|
106
|
-
return { open: `model ${modelName} {`, close: "}" };
|
|
107
|
-
}
|
|
108
|
-
if (modelType === "object") {
|
|
113
|
+
if (model.extends) {
|
|
109
114
|
return { open: `model ${modelName} extends ${model.extends} {`, close: "}" };
|
|
110
115
|
}
|
|
111
116
|
return { open: `model ${modelName} {`, close: "}" };
|
|
112
117
|
}
|
|
113
|
-
function generateModelProperty(property) {
|
|
114
|
-
// Decorators will be a combination of top-level (parameters) and
|
|
115
|
-
// schema-level decorators.
|
|
116
|
-
const decorators = generateDecorators([
|
|
117
|
-
...property.decorators,
|
|
118
|
-
...getDecoratorsForSchema(property.schema),
|
|
119
|
-
]).join(" ");
|
|
120
|
-
const doc = property.doc ? generateDocs(property.doc) : "";
|
|
121
|
-
return `${doc}${decorators} ${property.name}${property.isOptional ? "?" : ""}: ${generateTypeFromSchema(property.schema)};`;
|
|
122
|
-
}
|
|
123
118
|
//# sourceMappingURL=generate-model.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-model.js","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/generators/generate-model.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generate-model.js","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/generators/generate-model.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import { TypeSpecNamespace } from "../interfaces.js";
|
|
2
|
-
|
|
2
|
+
import { Context } from "../utils/context.js";
|
|
3
|
+
export declare function generateNamespace(name: string, namespace: TypeSpecNamespace, context: Context): string;
|
|
3
4
|
//# sourceMappingURL=generate-namespace.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-namespace.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/generators/generate-namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"generate-namespace.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/generators/generate-namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAI9C,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,iBAAiB,EAC5B,OAAO,EAAE,OAAO,GACf,MAAM,CAaR"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { generateDataType } from "./generate-model.js";
|
|
2
2
|
import { generateOperation } from "./generate-operation.js";
|
|
3
|
-
export function generateNamespace(name, namespace) {
|
|
3
|
+
export function generateNamespace(name, namespace, context) {
|
|
4
4
|
const definitions = [];
|
|
5
5
|
definitions.push(`namespace ${name} {`);
|
|
6
|
-
definitions.push(...namespace.types.map(generateDataType));
|
|
7
|
-
definitions.push(...namespace.operations.map(generateOperation));
|
|
6
|
+
definitions.push(...namespace.types.map((t) => generateDataType(t, context)));
|
|
7
|
+
definitions.push(...namespace.operations.map((o) => generateOperation(o, context)));
|
|
8
8
|
for (const [namespaceName, nestedNamespace] of Object.entries(namespace.namespaces)) {
|
|
9
|
-
definitions.push(generateNamespace(namespaceName, nestedNamespace));
|
|
9
|
+
definitions.push(generateNamespace(namespaceName, nestedNamespace, context));
|
|
10
10
|
}
|
|
11
11
|
definitions.push("}");
|
|
12
12
|
return definitions.join("\n");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-namespace.js","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/generators/generate-namespace.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generate-namespace.js","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/generators/generate-namespace.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,MAAM,UAAU,iBAAiB,CAC/B,IAAY,EACZ,SAA4B,EAC5B,OAAgB;IAEhB,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,WAAW,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,CAAC;IAExC,WAAW,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9E,WAAW,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAEpF,KAAK,MAAM,CAAC,aAAa,EAAE,eAAe,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;QACpF,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;IAC/E,CAAC;IAED,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtB,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import { TypeSpecOperation } from "../interfaces.js";
|
|
2
|
-
|
|
2
|
+
import { Context } from "../utils/context.js";
|
|
3
|
+
export declare function generateOperation(operation: TypeSpecOperation, context: Context): string;
|
|
3
4
|
//# sourceMappingURL=generate-operation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-operation.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/generators/generate-operation.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iBAAiB,EAGlB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"generate-operation.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/generators/generate-operation.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iBAAiB,EAGlB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAI9C,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,iBAAiB,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAwBxF"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { generateDocs } from "../utils/docs.js";
|
|
2
2
|
import { generateDecorators } from "./generate-decorators.js";
|
|
3
|
-
|
|
4
|
-
export function generateOperation(operation) {
|
|
3
|
+
export function generateOperation(operation, context) {
|
|
5
4
|
const definitions = [];
|
|
6
5
|
if (operation.doc) {
|
|
7
6
|
definitions.push(generateDocs(operation.doc));
|
|
@@ -10,8 +9,8 @@ export function generateOperation(operation) {
|
|
|
10
9
|
definitions.push(generateDecorators(operation.decorators).join(" "));
|
|
11
10
|
// generate parameters
|
|
12
11
|
const parameters = [
|
|
13
|
-
...operation.parameters.map(generateOperationParameter),
|
|
14
|
-
...generateRequestBodyParameters(operation.requestBodies),
|
|
12
|
+
...operation.parameters.map((p) => generateOperationParameter(operation, p, context)),
|
|
13
|
+
...generateRequestBodyParameters(operation.requestBodies, context),
|
|
15
14
|
];
|
|
16
15
|
const responseTypes = operation.responseTypes.length
|
|
17
16
|
? operation.responseTypes.join(" | ")
|
|
@@ -19,24 +18,19 @@ export function generateOperation(operation) {
|
|
|
19
18
|
definitions.push(`op ${operation.name}(${parameters.join(", ")}): ${responseTypes};`);
|
|
20
19
|
return definitions.join(" ");
|
|
21
20
|
}
|
|
22
|
-
function generateOperationParameter(parameter) {
|
|
21
|
+
function generateOperationParameter(operation, parameter, context) {
|
|
23
22
|
if ("$ref" in parameter) {
|
|
24
|
-
|
|
25
|
-
const refName = getRefName(parameter.$ref);
|
|
26
|
-
const paramName = refName.indexOf(".") >= 0 ? refName.split(".").pop() : refName;
|
|
27
|
-
// when refName and paramName match, we're referencing a model and can spread
|
|
28
|
-
// TODO: Handle optionality
|
|
29
|
-
return refName === paramName ? `...${refName}` : `${paramName}: ${refName}`;
|
|
23
|
+
return `...${context.getRefName(parameter.$ref, operation.scope)}`;
|
|
30
24
|
}
|
|
31
25
|
const definitions = [];
|
|
32
26
|
if (parameter.doc) {
|
|
33
27
|
definitions.push(generateDocs(parameter.doc));
|
|
34
28
|
}
|
|
35
29
|
definitions.push(...generateDecorators(parameter.decorators));
|
|
36
|
-
definitions.push(`${parameter.name}${parameter.isOptional ? "?" : ""}: ${
|
|
30
|
+
definitions.push(`${parameter.name}${parameter.isOptional ? "?" : ""}: ${context.generateTypeFromRefableSchema(parameter.schema, operation.scope)}`);
|
|
37
31
|
return definitions.join(" ");
|
|
38
32
|
}
|
|
39
|
-
function generateRequestBodyParameters(requestBodies) {
|
|
33
|
+
function generateRequestBodyParameters(requestBodies, context) {
|
|
40
34
|
if (!requestBodies.length) {
|
|
41
35
|
return [];
|
|
42
36
|
}
|
|
@@ -47,7 +41,9 @@ function generateRequestBodyParameters(requestBodies) {
|
|
|
47
41
|
definitions.push(`@header contentType: ${contentTypes.map((c) => `"${c}"`).join(" | ")}`);
|
|
48
42
|
}
|
|
49
43
|
// Get the set of referenced types
|
|
50
|
-
const body = Array.from(new Set(requestBodies
|
|
44
|
+
const body = Array.from(new Set(requestBodies
|
|
45
|
+
.filter((r) => !!r.schema)
|
|
46
|
+
.map((r) => context.generateTypeFromRefableSchema(r.schema, [])))).join(" | ");
|
|
51
47
|
if (body) {
|
|
52
48
|
definitions.push(`@bodyRoot body: ${body}`);
|
|
53
49
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-operation.js","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/generators/generate-operation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generate-operation.js","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/generators/generate-operation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-service-info.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/generators/generate-service-info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"generate-service-info.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/generators/generate-service-info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAIvD,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,mBAAmB,GAAG,MAAM,CAmBnF"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { generateDocs } from "../utils/docs.js";
|
|
2
|
+
import { generateNamespaceName } from "../utils/generate-namespace-name.js";
|
|
2
3
|
export function generateServiceInformation(serviceInfo) {
|
|
3
4
|
const definitions = [];
|
|
4
5
|
const { name, doc, ...info } = serviceInfo;
|
|
@@ -14,7 +15,4 @@ export function generateServiceInformation(serviceInfo) {
|
|
|
14
15
|
definitions.push(`namespace ${generateNamespaceName(name)};`);
|
|
15
16
|
return definitions.join("\n");
|
|
16
17
|
}
|
|
17
|
-
function generateNamespaceName(name) {
|
|
18
|
-
return name.replaceAll(/[^\w^\d_]+/g, "");
|
|
19
|
-
}
|
|
20
18
|
//# sourceMappingURL=generate-service-info.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-service-info.js","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/generators/generate-service-info.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"generate-service-info.js","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/generators/generate-service-info.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAE5E,MAAM,UAAU,0BAA0B,CAAC,WAAgC;IACzE,MAAM,WAAW,GAAa,EAAE,CAAC;IAEjC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,WAAW,CAAC;IAE3C,WAAW,CAAC,IAAI,CAAC;;gBAEH,IAAI;;YAER,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;KAC3B,CAAC,CAAC;IAEL,IAAI,GAAG,EAAE,CAAC;QACR,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;IACtC,CAAC;IAED,WAAW,CAAC,IAAI,CAAC,aAAa,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE9D,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC"}
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import { OpenAPI3Schema, Refable } from "../../../../types.js";
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
export declare class SchemaToExpressionGenerator {
|
|
3
|
+
rootNamespace: string;
|
|
4
|
+
constructor(rootNamespace: string);
|
|
5
|
+
generateTypeFromRefableSchema(schema: Refable<OpenAPI3Schema>, callingScope: string[]): string;
|
|
6
|
+
generateArrayType(schema: OpenAPI3Schema, callingScope: string[]): string;
|
|
7
|
+
getRefName(ref: string, callingScope: string[]): string;
|
|
8
|
+
private getRefScopeAndName;
|
|
9
|
+
private getTypeFromSchema;
|
|
10
|
+
private getAnyOfType;
|
|
11
|
+
private getOneOfType;
|
|
12
|
+
private getObjectType;
|
|
13
|
+
}
|
|
4
14
|
export declare function getTypeSpecPrimitiveFromSchema(schema: OpenAPI3Schema): string | undefined;
|
|
5
|
-
export declare function getRefName(ref: string): string;
|
|
6
|
-
export declare function getRefScopeAndName(ref: string): ReturnType<typeof getScopeAndName>;
|
|
7
|
-
export declare function getArrayType(schema: OpenAPI3Schema): string;
|
|
8
|
-
export declare function getIntegerType(schema: OpenAPI3Schema): string;
|
|
9
|
-
export declare function getNumberType(schema: OpenAPI3Schema): string;
|
|
10
|
-
export declare function getStringType(schema: OpenAPI3Schema): string;
|
|
11
15
|
//# sourceMappingURL=generate-types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-types.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/generators/generate-types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"generate-types.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/generators/generate-types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAK/D,qBAAa,2BAA2B;IACnB,aAAa,EAAE,MAAM;gBAArB,aAAa,EAAE,MAAM;IAEjC,6BAA6B,CAClC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,EAC/B,YAAY,EAAE,MAAM,EAAE,GACrB,MAAM;IAOF,iBAAiB,CAAC,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM;IAczE,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM;IAK9D,OAAO,CAAC,kBAAkB;IAoC1B,OAAO,CAAC,iBAAiB;IAkCzB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,aAAa;CAmCtB;AAED,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,GAAG,SAAS,CAWzF"}
|