@sdkgen/typescript-generator 1.6.2 → 2.0.2
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/README.md +1 -3
- package/dist/spec/helpers.spec.js +31 -23
- package/dist/src/browser-client.js +7 -7
- package/dist/src/helpers.d.ts +3 -3
- package/dist/src/helpers.js +14 -9
- package/dist/src/index.js +5 -1
- package/dist/src/interfaces.js +2 -2
- package/dist/src/node-client.js +7 -7
- package/dist/src/node-server.js +7 -15
- package/dist/tsconfig.tsbuildinfo +1 -1341
- package/package.json +9 -8
package/README.md
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -23,7 +27,8 @@ const parser = __importStar(require("@sdkgen/parser"));
|
|
|
23
27
|
const helpers_1 = require("../src/helpers");
|
|
24
28
|
describe("helpers.ts", () => {
|
|
25
29
|
test("generateTypescriptInterface", () => {
|
|
26
|
-
const structType = new parser.StructType([
|
|
30
|
+
const structType = new parser.StructType([]);
|
|
31
|
+
structType.fields = [
|
|
27
32
|
new parser.Field("int", new parser.IntPrimitiveType()),
|
|
28
33
|
new parser.Field("bigint", new parser.BigIntPrimitiveType()),
|
|
29
34
|
new parser.Field("date", new parser.DatePrimitiveType()),
|
|
@@ -33,9 +38,9 @@ describe("helpers.ts", () => {
|
|
|
33
38
|
new parser.Field("void", new parser.VoidPrimitiveType()),
|
|
34
39
|
new parser.Field("json", new parser.JsonPrimitiveType()),
|
|
35
40
|
new parser.Field("optionalStrArray", new parser.OptionalType(new parser.ArrayType(new parser.StringPrimitiveType()))),
|
|
36
|
-
]
|
|
41
|
+
];
|
|
37
42
|
structType.name = "awesomeInterface";
|
|
38
|
-
expect(helpers_1.generateTypescriptInterface(structType)).toBe(`export interface awesomeInterface {
|
|
43
|
+
expect((0, helpers_1.generateTypescriptInterface)(structType, false)).toBe(`export interface awesomeInterface {
|
|
39
44
|
int: number
|
|
40
45
|
bigint: bigint
|
|
41
46
|
date: Date
|
|
@@ -50,74 +55,77 @@ describe("helpers.ts", () => {
|
|
|
50
55
|
});
|
|
51
56
|
test("generateTypescriptTypeName: IntPrimitiveType", () => {
|
|
52
57
|
const type = new parser.IntPrimitiveType();
|
|
53
|
-
expect(helpers_1.generateTypescriptTypeName(type)).toBe("number");
|
|
58
|
+
expect((0, helpers_1.generateTypescriptTypeName)(type, false)).toBe("number");
|
|
54
59
|
});
|
|
55
60
|
test("generateTypescriptTypeName: UIntPrimitiveType", () => {
|
|
56
61
|
const type = new parser.UIntPrimitiveType();
|
|
57
|
-
expect(helpers_1.generateTypescriptTypeName(type)).toBe("number");
|
|
62
|
+
expect((0, helpers_1.generateTypescriptTypeName)(type, false)).toBe("number");
|
|
58
63
|
});
|
|
59
64
|
test("generateTypescriptTypeName: MoneyPrimitiveType", () => {
|
|
60
65
|
const type = new parser.MoneyPrimitiveType();
|
|
61
|
-
expect(helpers_1.generateTypescriptTypeName(type)).toBe("number");
|
|
66
|
+
expect((0, helpers_1.generateTypescriptTypeName)(type, false)).toBe("number");
|
|
62
67
|
});
|
|
63
68
|
test("generateTypescriptTypeName: FloatPrimitiveType", () => {
|
|
64
69
|
const type = new parser.FloatPrimitiveType();
|
|
65
|
-
expect(helpers_1.generateTypescriptTypeName(type)).toBe("number");
|
|
70
|
+
expect((0, helpers_1.generateTypescriptTypeName)(type, false)).toBe("number");
|
|
66
71
|
});
|
|
67
72
|
test("generateTypescriptTypeName: DateTimePrimitiveType", () => {
|
|
68
73
|
const type = new parser.DateTimePrimitiveType();
|
|
69
|
-
expect(helpers_1.generateTypescriptTypeName(type)).toBe("Date");
|
|
74
|
+
expect((0, helpers_1.generateTypescriptTypeName)(type, false)).toBe("Date");
|
|
70
75
|
});
|
|
71
76
|
test("generateTypescriptTypeName: StringPrimitiveType", () => {
|
|
72
77
|
const type = new parser.StringPrimitiveType();
|
|
73
|
-
expect(helpers_1.generateTypescriptTypeName(type)).toBe("string");
|
|
78
|
+
expect((0, helpers_1.generateTypescriptTypeName)(type, false)).toBe("string");
|
|
74
79
|
});
|
|
75
80
|
test("generateTypescriptTypeName: CpfPrimitiveType", () => {
|
|
76
81
|
const type = new parser.CpfPrimitiveType();
|
|
77
|
-
expect(helpers_1.generateTypescriptTypeName(type)).toBe("string");
|
|
82
|
+
expect((0, helpers_1.generateTypescriptTypeName)(type, false)).toBe("string");
|
|
78
83
|
});
|
|
79
84
|
test("generateTypescriptTypeName: CnpjPrimitiveType", () => {
|
|
80
85
|
const type = new parser.CnpjPrimitiveType();
|
|
81
|
-
expect(helpers_1.generateTypescriptTypeName(type)).toBe("string");
|
|
86
|
+
expect((0, helpers_1.generateTypescriptTypeName)(type, false)).toBe("string");
|
|
82
87
|
});
|
|
83
88
|
test("generateTypescriptTypeName: EmailPrimitiveType", () => {
|
|
84
89
|
const type = new parser.EmailPrimitiveType();
|
|
85
|
-
expect(helpers_1.generateTypescriptTypeName(type)).toBe("string");
|
|
90
|
+
expect((0, helpers_1.generateTypescriptTypeName)(type, false)).toBe("string");
|
|
86
91
|
});
|
|
87
92
|
test("generateTypescriptTypeName: HtmlPrimitiveType", () => {
|
|
88
93
|
const type = new parser.HtmlPrimitiveType();
|
|
89
|
-
expect(helpers_1.generateTypescriptTypeName(type)).toBe("string");
|
|
94
|
+
expect((0, helpers_1.generateTypescriptTypeName)(type, false)).toBe("string");
|
|
90
95
|
});
|
|
91
96
|
test("generateTypescriptTypeName: UrlPrimitiveType", () => {
|
|
92
97
|
const type = new parser.UrlPrimitiveType();
|
|
93
|
-
expect(helpers_1.generateTypescriptTypeName(type)).toBe("string");
|
|
98
|
+
expect((0, helpers_1.generateTypescriptTypeName)(type, false)).toBe("string");
|
|
94
99
|
});
|
|
95
100
|
test("generateTypescriptTypeName: HexPrimitiveType", () => {
|
|
96
101
|
const type = new parser.HexPrimitiveType();
|
|
97
|
-
expect(helpers_1.generateTypescriptTypeName(type)).toBe("string");
|
|
102
|
+
expect((0, helpers_1.generateTypescriptTypeName)(type, false)).toBe("string");
|
|
98
103
|
});
|
|
99
104
|
test("generateTypescriptTypeName: Base64PrimitiveType", () => {
|
|
100
105
|
const type = new parser.Base64PrimitiveType();
|
|
101
|
-
expect(helpers_1.generateTypescriptTypeName(type)).toBe("string");
|
|
106
|
+
expect((0, helpers_1.generateTypescriptTypeName)(type, false)).toBe("string");
|
|
102
107
|
});
|
|
103
108
|
test("generateTypescriptTypeName: XmlPrimitiveType", () => {
|
|
104
109
|
const type = new parser.XmlPrimitiveType();
|
|
105
|
-
expect(helpers_1.generateTypescriptTypeName(type)).toBe("string");
|
|
110
|
+
expect((0, helpers_1.generateTypescriptTypeName)(type, false)).toBe("string");
|
|
106
111
|
});
|
|
107
112
|
test("generateTypescriptTypeName: StructType", () => {
|
|
108
|
-
const structType = new parser.StructType([
|
|
113
|
+
const structType = new parser.StructType([
|
|
114
|
+
new parser.Field("int", new parser.IntPrimitiveType()),
|
|
115
|
+
new parser.Field("bigint", new parser.BigIntPrimitiveType()),
|
|
116
|
+
]);
|
|
109
117
|
structType.name = "simpleInterface";
|
|
110
|
-
expect(helpers_1.generateTypescriptTypeName(structType)).toBe(structType.name);
|
|
118
|
+
expect((0, helpers_1.generateTypescriptTypeName)(structType, false)).toBe(structType.name);
|
|
111
119
|
});
|
|
112
120
|
test("generateTypescriptTypeName: EnumType", () => {
|
|
113
121
|
const enumType = new parser.EnumType([new parser.EnumValue("value1")]);
|
|
114
122
|
enumType.name = "simpleEnum";
|
|
115
|
-
expect(helpers_1.generateTypescriptTypeName(enumType)).toBe(enumType.name);
|
|
123
|
+
expect((0, helpers_1.generateTypescriptTypeName)(enumType, false)).toBe(enumType.name);
|
|
116
124
|
});
|
|
117
125
|
test("generateTypescriptTypeName: TypeReference", () => {
|
|
118
126
|
const enumType = new parser.TypeReference("typeRef");
|
|
119
127
|
enumType.type = new parser.HexPrimitiveType();
|
|
120
|
-
expect(helpers_1.generateTypescriptTypeName(enumType)).toBe("string");
|
|
128
|
+
expect((0, helpers_1.generateTypescriptTypeName)(enumType, false)).toBe("string");
|
|
121
129
|
});
|
|
122
130
|
test("generateTypescriptTypeName: unknown PrimitiveType error", () => {
|
|
123
131
|
class UnknownType extends parser.Type {
|
|
@@ -127,6 +135,6 @@ describe("helpers.ts", () => {
|
|
|
127
135
|
}
|
|
128
136
|
}
|
|
129
137
|
const newUnknownType = new UnknownType();
|
|
130
|
-
expect(() => helpers_1.generateTypescriptTypeName(newUnknownType)).toThrowError(`BUG: generateTypescriptTypeName with ${newUnknownType.name}`);
|
|
138
|
+
expect(() => (0, helpers_1.generateTypescriptTypeName)(newUnknownType, false)).toThrowError(`BUG: generateTypescriptTypeName with ${newUnknownType.name}`);
|
|
131
139
|
});
|
|
132
140
|
});
|
|
@@ -11,15 +11,15 @@ import { SdkgenError${hasErrorWithData ? ", SdkgenErrorWithData" : ""}, SdkgenHt
|
|
|
11
11
|
|
|
12
12
|
`;
|
|
13
13
|
for (const type of ast.enumTypes) {
|
|
14
|
-
code += helpers_1.generateTypescriptEnum(type);
|
|
14
|
+
code += (0, helpers_1.generateTypescriptEnum)(type);
|
|
15
15
|
code += "\n";
|
|
16
16
|
}
|
|
17
17
|
for (const type of ast.structTypes) {
|
|
18
|
-
code += helpers_1.generateTypescriptInterface(type);
|
|
18
|
+
code += (0, helpers_1.generateTypescriptInterface)(type, true);
|
|
19
19
|
code += "\n";
|
|
20
20
|
}
|
|
21
21
|
for (const error of ast.errors) {
|
|
22
|
-
code += helpers_1.generateTypescriptErrorClass(error);
|
|
22
|
+
code += (0, helpers_1.generateTypescriptErrorClass)(error, true);
|
|
23
23
|
code += "\n";
|
|
24
24
|
}
|
|
25
25
|
code += `export class ApiClient extends SdkgenHttpClient {
|
|
@@ -29,13 +29,13 @@ import { SdkgenError${hasErrorWithData ? ", SdkgenErrorWithData" : ""}, SdkgenHt
|
|
|
29
29
|
${ast.operations
|
|
30
30
|
.filter(op => op.annotations.every(ann => !(ann instanceof parser_1.HiddenAnnotation)))
|
|
31
31
|
.map(op => `
|
|
32
|
-
${op.
|
|
33
|
-
.map(arg => `${arg.name}${arg.type.name.endsWith("?") ? "?" : ""}: ${helpers_1.generateTypescriptTypeName(arg.type)}`)
|
|
34
|
-
.join(", ")}}): Promise<${helpers_1.generateTypescriptTypeName(op.returnType)}> { return this.makeRequest("${op.
|
|
32
|
+
${op.name}(args${op.args.length === 0 ? "?" : ""}: {${op.args
|
|
33
|
+
.map(arg => `${arg.name}${arg.type.name.endsWith("?") ? "?" : ""}: ${(0, helpers_1.generateTypescriptTypeName)(arg.type, true)}`)
|
|
34
|
+
.join(", ")}}): Promise<${(0, helpers_1.generateTypescriptTypeName)(op.returnType, true)}> { return this.makeRequest("${op.name}", args || {}); }`)
|
|
35
35
|
.join("")}
|
|
36
36
|
}\n\n`;
|
|
37
37
|
code += `const errClasses = {\n${ast.errors.map(err => ` ${err.name}`).join(",\n")}\n};\n\n`;
|
|
38
|
-
code += `const astJson = ${JSON.stringify(parser_1.astToJson(ast), null, 4).replace(/"(?<key>\w+)":/gu, "$<key>:")} as const;\n`;
|
|
38
|
+
code += `const astJson = ${JSON.stringify((0, parser_1.astToJson)(ast), null, 4).replace(/"(?<key>\w+)":/gu, "$<key>:")} as const;\n`;
|
|
39
39
|
return code;
|
|
40
40
|
}
|
|
41
41
|
exports.generateBrowserClientSource = generateBrowserClientSource;
|
package/dist/src/helpers.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { ErrorNode, Type } from "@sdkgen/parser";
|
|
2
2
|
import { EnumType, StructType } from "@sdkgen/parser";
|
|
3
|
-
export declare function generateTypescriptTypeName(type: Type): string;
|
|
4
|
-
export declare function generateTypescriptInterface(type: StructType): string;
|
|
3
|
+
export declare function generateTypescriptTypeName(type: Type, isBrowser: boolean): string;
|
|
4
|
+
export declare function generateTypescriptInterface(type: StructType, isBrowser: boolean): string;
|
|
5
5
|
export declare function generateTypescriptEnum(type: EnumType): string;
|
|
6
|
-
export declare function generateTypescriptErrorClass(error: ErrorNode): string;
|
|
6
|
+
export declare function generateTypescriptErrorClass(error: ErrorNode, isBrowser: boolean): string;
|
|
7
7
|
export declare function clearForLogging(path: string, type: Type): string;
|
package/dist/src/helpers.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.clearForLogging = exports.generateTypescriptErrorClass = exports.generateTypescriptEnum = exports.generateTypescriptInterface = exports.generateTypescriptTypeName = void 0;
|
|
4
4
|
const parser_1 = require("@sdkgen/parser");
|
|
5
|
-
function generateTypescriptTypeName(type) {
|
|
5
|
+
function generateTypescriptTypeName(type, isBrowser) {
|
|
6
6
|
switch (type.constructor) {
|
|
7
7
|
case parser_1.IntPrimitiveType:
|
|
8
8
|
case parser_1.UIntPrimitiveType:
|
|
@@ -17,7 +17,7 @@ function generateTypescriptTypeName(type) {
|
|
|
17
17
|
case parser_1.BoolPrimitiveType:
|
|
18
18
|
return "boolean";
|
|
19
19
|
case parser_1.BytesPrimitiveType:
|
|
20
|
-
return "Buffer";
|
|
20
|
+
return isBrowser ? "ArrayBuffer" : "Buffer";
|
|
21
21
|
case parser_1.StringPrimitiveType:
|
|
22
22
|
case parser_1.CpfPrimitiveType:
|
|
23
23
|
case parser_1.CnpjPrimitiveType:
|
|
@@ -34,10 +34,10 @@ function generateTypescriptTypeName(type) {
|
|
|
34
34
|
case parser_1.JsonPrimitiveType:
|
|
35
35
|
return "any";
|
|
36
36
|
case parser_1.OptionalType:
|
|
37
|
-
return `${generateTypescriptTypeName(type.base)} | null`;
|
|
37
|
+
return `${generateTypescriptTypeName(type.base, isBrowser)} | null`;
|
|
38
38
|
case parser_1.ArrayType: {
|
|
39
39
|
const { base } = type;
|
|
40
|
-
const baseGen = generateTypescriptTypeName(base);
|
|
40
|
+
const baseGen = generateTypescriptTypeName(base, isBrowser);
|
|
41
41
|
if (base instanceof parser_1.OptionalType) {
|
|
42
42
|
return `(${baseGen})[]`;
|
|
43
43
|
}
|
|
@@ -47,24 +47,29 @@ function generateTypescriptTypeName(type) {
|
|
|
47
47
|
case parser_1.EnumType:
|
|
48
48
|
return type.name;
|
|
49
49
|
case parser_1.TypeReference:
|
|
50
|
-
return generateTypescriptTypeName(type.type);
|
|
50
|
+
return generateTypescriptTypeName(type.type, isBrowser);
|
|
51
51
|
default:
|
|
52
52
|
throw new Error(`BUG: generateTypescriptTypeName with ${type.constructor.name}`);
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
55
|
exports.generateTypescriptTypeName = generateTypescriptTypeName;
|
|
56
|
-
function generateTypescriptInterface(type) {
|
|
56
|
+
function generateTypescriptInterface(type, isBrowser) {
|
|
57
57
|
return `export interface ${type.name} {
|
|
58
|
-
${type.fields.map(field => ` ${field.name}: ${generateTypescriptTypeName(field.type)}`).join("\n")}
|
|
58
|
+
${type.fields.map(field => ` ${field.name}: ${generateTypescriptTypeName(field.type, isBrowser)}`).join("\n")}
|
|
59
59
|
}\n`;
|
|
60
60
|
}
|
|
61
61
|
exports.generateTypescriptInterface = generateTypescriptInterface;
|
|
62
62
|
function generateTypescriptEnum(type) {
|
|
63
|
+
if (type.hasStructValues) {
|
|
64
|
+
return `export type ${type.name} = ${type.values
|
|
65
|
+
.map(x => (x.struct ? `({tag: "${x.value}"} & ${x.struct.name})` : `{tag: "${x.value}"}`))
|
|
66
|
+
.join(" | ")};\n`;
|
|
67
|
+
}
|
|
63
68
|
return `export type ${type.name} = ${type.values.map(x => `"${x.value}"`).join(" | ")};\n`;
|
|
64
69
|
}
|
|
65
70
|
exports.generateTypescriptEnum = generateTypescriptEnum;
|
|
66
|
-
function generateTypescriptErrorClass(error) {
|
|
67
|
-
return `export class ${error.name} extends ${error.dataType instanceof parser_1.VoidPrimitiveType ? "SdkgenError" : `SdkgenErrorWithData<${generateTypescriptTypeName(error.dataType)}>`} {}\n`;
|
|
71
|
+
function generateTypescriptErrorClass(error, isBrowser) {
|
|
72
|
+
return `export class ${error.name} extends ${error.dataType instanceof parser_1.VoidPrimitiveType ? "SdkgenError" : `SdkgenErrorWithData<${generateTypescriptTypeName(error.dataType, isBrowser)}>`} {}\n`;
|
|
68
73
|
}
|
|
69
74
|
exports.generateTypescriptErrorClass = generateTypescriptErrorClass;
|
|
70
75
|
function clearForLogging(path, type) {
|
package/dist/src/index.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
package/dist/src/interfaces.js
CHANGED
|
@@ -5,11 +5,11 @@ const helpers_1 = require("./helpers");
|
|
|
5
5
|
function generateTypescriptInterfaces(ast) {
|
|
6
6
|
let code = "";
|
|
7
7
|
for (const type of ast.enumTypes) {
|
|
8
|
-
code += helpers_1.generateTypescriptEnum(type);
|
|
8
|
+
code += (0, helpers_1.generateTypescriptEnum)(type);
|
|
9
9
|
}
|
|
10
10
|
code += "\n";
|
|
11
11
|
for (const type of ast.structTypes) {
|
|
12
|
-
code += helpers_1.generateTypescriptInterface(type);
|
|
12
|
+
code += (0, helpers_1.generateTypescriptInterface)(type, false);
|
|
13
13
|
code += "\n";
|
|
14
14
|
}
|
|
15
15
|
return code;
|
package/dist/src/node-client.js
CHANGED
|
@@ -14,18 +14,18 @@ export { Fatal } from "@sdkgen/node-runtime";
|
|
|
14
14
|
|
|
15
15
|
`;
|
|
16
16
|
for (const type of ast.enumTypes) {
|
|
17
|
-
code += helpers_1.generateTypescriptEnum(type);
|
|
17
|
+
code += (0, helpers_1.generateTypescriptEnum)(type);
|
|
18
18
|
code += "\n";
|
|
19
19
|
}
|
|
20
20
|
for (const type of ast.structTypes) {
|
|
21
|
-
code += helpers_1.generateTypescriptInterface(type);
|
|
21
|
+
code += (0, helpers_1.generateTypescriptInterface)(type, false);
|
|
22
22
|
code += "\n";
|
|
23
23
|
}
|
|
24
24
|
for (const error of ast.errors) {
|
|
25
25
|
if (error.name === "Fatal") {
|
|
26
26
|
continue;
|
|
27
27
|
}
|
|
28
|
-
code += helpers_1.generateTypescriptErrorClass(error);
|
|
28
|
+
code += (0, helpers_1.generateTypescriptErrorClass)(error, false);
|
|
29
29
|
code += "\n";
|
|
30
30
|
}
|
|
31
31
|
code += `export class ApiClient extends SdkgenHttpClient {
|
|
@@ -35,13 +35,13 @@ export { Fatal } from "@sdkgen/node-runtime";
|
|
|
35
35
|
${ast.operations
|
|
36
36
|
.filter(op => op.annotations.every(ann => !(ann instanceof parser_1.HiddenAnnotation)))
|
|
37
37
|
.map(op => `
|
|
38
|
-
${op.
|
|
39
|
-
.map(arg => `${arg.name}${arg.type.name.endsWith("?") ? "?" : ""}: ${helpers_1.generateTypescriptTypeName(arg.type)}`)
|
|
40
|
-
.join(", ")}}): Promise<${helpers_1.generateTypescriptTypeName(op.returnType)}> { return this.makeRequest(ctx, "${op.
|
|
38
|
+
${op.name}(ctx: PartialDeep<Context> | null, args: {${op.args
|
|
39
|
+
.map(arg => `${arg.name}${arg.type.name.endsWith("?") ? "?" : ""}: ${(0, helpers_1.generateTypescriptTypeName)(arg.type, false)}`)
|
|
40
|
+
.join(", ")}}): Promise<${(0, helpers_1.generateTypescriptTypeName)(op.returnType, false)}> { return this.makeRequest(ctx, "${op.name}", args); }`)
|
|
41
41
|
.join("")}
|
|
42
42
|
}\n\n`;
|
|
43
43
|
code += `const errClasses = {\n${ast.errors.map(err => ` ${err.name}`).join(",\n")}\n};\n\n`;
|
|
44
|
-
code += `const astJson = ${JSON.stringify(parser_1.astToJson(ast), null, 4).replace(/"(?<key>\w+)":/gu, "$<key>:")} as const;\n`;
|
|
44
|
+
code += `const astJson = ${JSON.stringify((0, parser_1.astToJson)(ast), null, 4).replace(/"(?<key>\w+)":/gu, "$<key>:")} as const;\n`;
|
|
45
45
|
return code;
|
|
46
46
|
}
|
|
47
47
|
exports.generateNodeClientSource = generateNodeClientSource;
|
package/dist/src/node-server.js
CHANGED
|
@@ -13,38 +13,30 @@ export { Fatal } from "@sdkgen/node-runtime";
|
|
|
13
13
|
|
|
14
14
|
`;
|
|
15
15
|
for (const type of ast.enumTypes) {
|
|
16
|
-
code += helpers_1.generateTypescriptEnum(type);
|
|
16
|
+
code += (0, helpers_1.generateTypescriptEnum)(type);
|
|
17
17
|
code += "\n";
|
|
18
18
|
}
|
|
19
19
|
for (const type of ast.structTypes) {
|
|
20
|
-
code += helpers_1.generateTypescriptInterface(type);
|
|
20
|
+
code += (0, helpers_1.generateTypescriptInterface)(type, false);
|
|
21
21
|
code += "\n";
|
|
22
22
|
}
|
|
23
23
|
for (const error of ast.errors) {
|
|
24
24
|
if (error.name === "Fatal") {
|
|
25
25
|
continue;
|
|
26
26
|
}
|
|
27
|
-
code += helpers_1.generateTypescriptErrorClass(error);
|
|
27
|
+
code += (0, helpers_1.generateTypescriptErrorClass)(error, false);
|
|
28
28
|
code += "\n";
|
|
29
29
|
}
|
|
30
30
|
code += `export class ApiConfig<ExtraContextT> extends BaseApiConfig<ExtraContextT> {
|
|
31
31
|
fn!: {${ast.operations
|
|
32
32
|
.map(op => `
|
|
33
|
-
${op.
|
|
34
|
-
.map(arg => `${arg.name}: ${helpers_1.generateTypescriptTypeName(arg.type)}`)
|
|
35
|
-
.join(", ")}}) => Promise<${helpers_1.generateTypescriptTypeName(op.returnType)}>`)
|
|
33
|
+
${op.name}: (ctx: Context & ExtraContextT, args: {${op.args
|
|
34
|
+
.map(arg => `${arg.name}: ${(0, helpers_1.generateTypescriptTypeName)(arg.type, false)}`)
|
|
35
|
+
.join(", ")}}) => Promise<${(0, helpers_1.generateTypescriptTypeName)(op.returnType, false)}>`)
|
|
36
36
|
.join("")}
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
-
|
|
40
|
-
err = {${ast.errors
|
|
41
|
-
.filter(err => err.dataType instanceof parser_1.VoidPrimitiveType)
|
|
42
|
-
.map(err => `
|
|
43
|
-
${err.name}(message: string = "") { throw new ${err.name}(message); }`)
|
|
44
|
-
.join(",")}
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
astJson = ${JSON.stringify(parser_1.astToJson(ast), null, 4)
|
|
39
|
+
astJson = ${JSON.stringify((0, parser_1.astToJson)(ast), null, 4)
|
|
48
40
|
.replace(/"(?<key>\w+)":/gu, "$<key>:")
|
|
49
41
|
.replace(/\n/gu, "\n ")} as const
|
|
50
42
|
}
|