@typespec/openapi3 0.58.0-dev.5 → 0.58.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 +16 -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 +11 -1
- package/dist/src/cli/actions/convert/convert.js.map +1 -1
- package/dist/src/cli/actions/convert/generators/generate-main.d.ts +1 -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 +2 -7
- package/dist/src/cli/actions/convert/generators/generate-main.js.map +1 -1
- package/dist/src/cli/actions/convert/utils/docs.d.ts +0 -1
- package/dist/src/cli/actions/convert/utils/docs.d.ts.map +1 -1
- package/dist/src/cli/actions/convert/utils/docs.js +10 -34
- package/dist/src/cli/actions/convert/utils/docs.js.map +1 -1
- 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;AAI3C,wBAAsB,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,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;AAI3C,wBAAsB,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,iBA+BtE"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import oaParser from "@readme/openapi-parser";
|
|
2
|
-
import { resolvePath } from "@typespec/compiler";
|
|
2
|
+
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";
|
|
@@ -10,15 +10,29 @@ export async function convertAction(host, args) {
|
|
|
10
10
|
const program = transform(model);
|
|
11
11
|
let mainTsp;
|
|
12
12
|
try {
|
|
13
|
-
mainTsp =
|
|
13
|
+
mainTsp = generateMain(program);
|
|
14
14
|
}
|
|
15
15
|
catch (err) {
|
|
16
16
|
handleInternalCompilerError(err);
|
|
17
17
|
}
|
|
18
|
+
let formatError;
|
|
19
|
+
// attempt to format the TSP and track if it threw an error
|
|
20
|
+
try {
|
|
21
|
+
mainTsp = await formatTypeSpec(mainTsp, {
|
|
22
|
+
printWidth: 100,
|
|
23
|
+
tabWidth: 2,
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
catch (err) {
|
|
27
|
+
formatError = err;
|
|
28
|
+
}
|
|
18
29
|
if (args["output-dir"]) {
|
|
19
30
|
await host.mkdirp(args["output-dir"]);
|
|
20
31
|
await host.writeFile(resolvePath(args["output-dir"], "main.tsp"), mainTsp);
|
|
21
32
|
}
|
|
33
|
+
if (formatError) {
|
|
34
|
+
handleInternalCompilerError(formatError);
|
|
35
|
+
}
|
|
22
36
|
}
|
|
23
37
|
function parseOpenApiFile(path) {
|
|
24
38
|
return oaParser.bundle(path);
|
|
@@ -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,WAAW,EAAE,MAAM,oBAAoB,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;AAEvD,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,SAAS,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,OAAe,CAAC;IACpB,IAAI,CAAC;QACH,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IAClC,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":"
|
|
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;AAIrD,wBAAsB,uBAAuB,CAAC,QAAQ,EAAE,gBAAgB,mBAWvE"}
|
|
@@ -1,7 +1,17 @@
|
|
|
1
|
+
import { formatTypeSpec } from "@typespec/compiler";
|
|
1
2
|
import { generateMain } from "./generators/generate-main.js";
|
|
2
3
|
import { transform } from "./transforms/transforms.js";
|
|
3
4
|
export async function convertOpenAPI3Document(document) {
|
|
4
5
|
const program = transform(document);
|
|
5
|
-
|
|
6
|
+
const content = generateMain(program);
|
|
7
|
+
try {
|
|
8
|
+
return await formatTypeSpec(content, {
|
|
9
|
+
printWidth: 100,
|
|
10
|
+
tabWidth: 2,
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
catch {
|
|
14
|
+
return content;
|
|
15
|
+
}
|
|
6
16
|
}
|
|
7
17
|
//# sourceMappingURL=convert.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../../../src/cli/actions/convert/convert.ts"],"names":[],"mappings":"
|
|
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;AAEvD,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,QAA0B;IACtE,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IACpC,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACtC,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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-main.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/generators/generate-main.ts"],"names":[],"mappings":"
|
|
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;AAKnD,wBAAgB,YAAY,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAe7D"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { formatTypeSpec } from "@typespec/compiler";
|
|
2
1
|
import { generateModel } from "./generate-model.js";
|
|
3
2
|
import { generateOperation } from "./generate-operation.js";
|
|
4
3
|
import { generateServiceInformation } from "./generate-service-info.js";
|
|
5
|
-
export
|
|
6
|
-
|
|
4
|
+
export function generateMain(program) {
|
|
5
|
+
return `
|
|
7
6
|
import "@typespec/http";
|
|
8
7
|
import "@typespec/openapi";
|
|
9
8
|
import "@typespec/openapi3";
|
|
@@ -17,9 +16,5 @@ export async function generateMain(program) {
|
|
|
17
16
|
|
|
18
17
|
${program.operations.map(generateOperation).join("\n\n")}
|
|
19
18
|
`;
|
|
20
|
-
return formatTypeSpec(content, {
|
|
21
|
-
printWidth: 100,
|
|
22
|
-
tabWidth: 2,
|
|
23
|
-
});
|
|
24
19
|
}
|
|
25
20
|
//# sourceMappingURL=generate-main.js.map
|
|
@@ -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":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAExE,MAAM,UAAU,YAAY,CAAC,OAAwB;IACnD,OAAO;;;;;;;;IAQL,0BAA0B,CAAC,OAAO,CAAC,WAAW,CAAC;;IAE/C,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;;IAE9C,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;GACvD,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/utils/docs.ts"],"names":[],"mappings":"AAAA,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,CAiB3D
|
|
1
|
+
{"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/utils/docs.ts"],"names":[],"mappings":"AAAA,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,CAiB3D"}
|
|
@@ -2,49 +2,25 @@ export function generateDocs(doc) {
|
|
|
2
2
|
if (isEmptyDoc(doc)) {
|
|
3
3
|
return ``;
|
|
4
4
|
}
|
|
5
|
-
const
|
|
6
|
-
for (let i = 0; i <
|
|
7
|
-
if (
|
|
8
|
-
if (
|
|
9
|
-
return `@doc("${
|
|
5
|
+
const split = splitNewlines(doc);
|
|
6
|
+
for (let i = 0; i < split.length; i++) {
|
|
7
|
+
if (split[i].includes("@") || split[i].includes("*/")) {
|
|
8
|
+
if (split.length === 1) {
|
|
9
|
+
return `@doc("${split[0].replace(/\\/g, "\\\\").replace(/"/g, '\\"')}")`;
|
|
10
10
|
}
|
|
11
|
-
return `@doc("""\n${
|
|
11
|
+
return `@doc("""\n${split.join("\n").replace(/\\/g, "\\\\").replace(/"/g, '\\"')}\n""")`;
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
|
-
return `/**\n* ${
|
|
14
|
+
return `/**\n* ${split.join("\n* ")}\n*/`;
|
|
15
15
|
}
|
|
16
|
-
|
|
17
|
-
if (isEmptyDoc(doc)) {
|
|
18
|
-
return ``;
|
|
19
|
-
}
|
|
20
|
-
const wrapped = lineWrap(doc);
|
|
21
|
-
return wrapped.length === 1 ? `${wrapped[0]}` : `""\n${wrapped.join("\n")}\n""`;
|
|
22
|
-
}
|
|
23
|
-
function lineWrap(doc) {
|
|
24
|
-
const maxLength = 80;
|
|
16
|
+
function splitNewlines(doc) {
|
|
25
17
|
let docString = Array.isArray(doc) ? doc.join("\n") : doc;
|
|
26
18
|
docString = docString.replace(/\r\n/g, "\n");
|
|
27
19
|
docString = docString.replace(/\r/g, "\n");
|
|
28
|
-
if (
|
|
20
|
+
if (!docString.includes("\n")) {
|
|
29
21
|
return [docString];
|
|
30
22
|
}
|
|
31
|
-
|
|
32
|
-
const lines = [];
|
|
33
|
-
for (const oriLine of oriLines) {
|
|
34
|
-
const words = oriLine.split(" ");
|
|
35
|
-
let line = ``;
|
|
36
|
-
for (const word of words) {
|
|
37
|
-
if (word.length + 1 > maxLength - line.length) {
|
|
38
|
-
lines.push(line.substring(0, line.length - 1));
|
|
39
|
-
line = `${word} `;
|
|
40
|
-
}
|
|
41
|
-
else {
|
|
42
|
-
line = `${line}${word} `;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
lines.push(`${line.substring(0, line.length - 1)}`);
|
|
46
|
-
}
|
|
47
|
-
return lines;
|
|
23
|
+
return docString.split("\n");
|
|
48
24
|
}
|
|
49
25
|
function isEmptyDoc(doc) {
|
|
50
26
|
if (!doc) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docs.js","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/utils/docs.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,YAAY,CAAC,GAAsB;IACjD,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACpB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,
|
|
1
|
+
{"version":3,"file":"docs.js","sourceRoot":"","sources":["../../../../../../src/cli/actions/convert/utils/docs.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,YAAY,CAAC,GAAsB;IACjD,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACpB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IAEjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACtD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,OAAO,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC;YAC3E,CAAC;YACD,OAAO,aAAa,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC;QAC3F,CAAC;IACH,CAAC;IAED,OAAO,UAAU,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;AAC5C,CAAC;AAED,SAAS,aAAa,CAAC,GAAsB;IAC3C,IAAI,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAC1D,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC7C,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAE3C,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,SAAS,CAAC,CAAC;IACrB,CAAC;IAED,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,UAAU,CAAC,GAAuB;IACzC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@typespec/openapi3",
|
|
3
|
-
"version": "0.58.0-dev.
|
|
3
|
+
"version": "0.58.0-dev.7",
|
|
4
4
|
"author": "Microsoft Corporation",
|
|
5
5
|
"description": "TypeSpec library for emitting OpenAPI 3.0 from the TypeSpec REST protocol binding and converting OpenAPI3 to TypeSpec",
|
|
6
6
|
"homepage": "https://typespec.io",
|