@ir-kit/openapi-kotlin 2.0.0 → 2.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.
- package/README.md +13 -13
- package/dist/ast/index.d.ts +168 -0
- package/dist/ast/index.d.ts.map +1 -0
- package/dist/ast/index.js +194 -0
- package/dist/ast/index.js.map +1 -0
- package/dist/generate.d.ts.map +1 -1
- package/dist/generate.js +7 -7
- package/dist/generate.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/ir/identifiers.d.ts +7 -0
- package/dist/ir/identifiers.d.ts.map +1 -1
- package/dist/ir/identifiers.js +92 -3
- package/dist/ir/identifiers.js.map +1 -1
- package/dist/ir/impl/body.d.ts +4 -3
- package/dist/ir/impl/body.d.ts.map +1 -1
- package/dist/ir/impl/body.js +11 -8
- package/dist/ir/impl/body.js.map +1 -1
- package/dist/ir/impl/decode.d.ts +3 -2
- package/dist/ir/impl/decode.d.ts.map +1 -1
- package/dist/ir/impl/decode.js +16 -16
- package/dist/ir/impl/decode.js.map +1 -1
- package/dist/ir/impl/headers.d.ts +1 -1
- package/dist/ir/impl/headers.d.ts.map +1 -1
- package/dist/ir/impl/headers.js +3 -3
- package/dist/ir/impl/headers.js.map +1 -1
- package/dist/ir/impl/index.d.ts +5 -2
- package/dist/ir/impl/index.d.ts.map +1 -1
- package/dist/ir/impl/index.js +6 -7
- package/dist/ir/impl/index.js.map +1 -1
- package/dist/ir/impl/request.d.ts +6 -6
- package/dist/ir/impl/request.d.ts.map +1 -1
- package/dist/ir/impl/request.js +18 -8
- package/dist/ir/impl/request.js.map +1 -1
- package/dist/ir/impl/serializer.d.ts +4 -2
- package/dist/ir/impl/serializer.d.ts.map +1 -1
- package/dist/ir/impl/serializer.js +41 -60
- package/dist/ir/impl/serializer.js.map +1 -1
- package/dist/ir/impl/url.d.ts +1 -1
- package/dist/ir/impl/url.d.ts.map +1 -1
- package/dist/ir/impl/url.js +4 -4
- package/dist/ir/impl/url.js.map +1 -1
- package/dist/ir/index.d.ts +1 -1
- package/dist/ir/index.d.ts.map +1 -1
- package/dist/ir/index.js +1 -1
- package/dist/ir/index.js.map +1 -1
- package/dist/ir/operation/body.d.ts +1 -1
- package/dist/ir/operation/body.d.ts.map +1 -1
- package/dist/ir/operation/body.js +3 -3
- package/dist/ir/operation/body.js.map +1 -1
- package/dist/ir/operation/params.d.ts +1 -1
- package/dist/ir/operation/params.d.ts.map +1 -1
- package/dist/ir/operation/params.js +3 -3
- package/dist/ir/operation/params.js.map +1 -1
- package/dist/ir/operation/response.d.ts +3 -1
- package/dist/ir/operation/response.d.ts.map +1 -1
- package/dist/ir/operation/response.js +3 -4
- package/dist/ir/operation/response.js.map +1 -1
- package/dist/ir/operation/signature.d.ts +4 -2
- package/dist/ir/operation/signature.d.ts.map +1 -1
- package/dist/ir/operation/signature.js +5 -4
- package/dist/ir/operation/signature.js.map +1 -1
- package/dist/ir/operations.d.ts +7 -1
- package/dist/ir/operations.d.ts.map +1 -1
- package/dist/ir/operations.js +13 -7
- package/dist/ir/operations.js.map +1 -1
- package/dist/ir/runtime/index.d.ts +1 -1
- package/dist/ir/runtime/index.d.ts.map +1 -1
- package/dist/ir/runtime/index.js +1 -1
- package/dist/ir/runtime/index.js.map +1 -1
- package/dist/ir/runtime/templates.d.ts +1 -21
- package/dist/ir/runtime/templates.d.ts.map +1 -1
- package/dist/ir/runtime/templates.js +24 -428
- package/dist/ir/runtime/templates.js.map +1 -1
- package/dist/ir/schema.d.ts +3 -2
- package/dist/ir/schema.d.ts.map +1 -1
- package/dist/ir/schema.js +24 -11
- package/dist/ir/schema.js.map +1 -1
- package/dist/ir/type/context.d.ts +1 -1
- package/dist/ir/type/context.d.ts.map +1 -1
- package/dist/ir/type/index.d.ts +5 -3
- package/dist/ir/type/index.d.ts.map +1 -1
- package/dist/ir/type/index.js +12 -8
- package/dist/ir/type/index.js.map +1 -1
- package/dist/ir/type/primitive.d.ts +1 -1
- package/dist/ir/type/primitive.d.ts.map +1 -1
- package/dist/ir/type/primitive.js +1 -1
- package/dist/ir/type/primitive.js.map +1 -1
- package/dist/ir/type-ops.d.ts +2 -2
- package/dist/ir/type-ops.d.ts.map +1 -1
- package/dist/ir/type-ops.js +13 -17
- package/dist/ir/type-ops.js.map +1 -1
- package/dist/kt-compiler/index.d.ts +3 -6
- package/dist/kt-compiler/index.d.ts.map +1 -1
- package/dist/kt-compiler/index.js +7 -22
- package/dist/kt-compiler/index.js.map +1 -1
- package/dist/project/build.d.ts +1 -1
- package/dist/project/build.d.ts.map +1 -1
- package/dist/project/build.js +6 -8
- package/dist/project/build.js.map +1 -1
- package/dist/project/imports.d.ts +12 -12
- package/dist/project/imports.d.ts.map +1 -1
- package/dist/project/imports.js +60 -138
- package/dist/project/imports.js.map +1 -1
- package/dist/project/layout.d.ts +1 -1
- package/dist/project/layout.d.ts.map +1 -1
- package/dist/project/layout.js +1 -3
- package/dist/project/layout.js.map +1 -1
- package/package.json +11 -9
- package/runtime/APIClient.kt +140 -0
- package/runtime/APIError.kt +42 -0
- package/runtime/APIInterceptors.kt +14 -0
- package/runtime/APIKeyLocation.kt +7 -0
- package/runtime/Auth.kt +86 -0
- package/runtime/MultipartFormBody.kt +41 -0
- package/runtime/QueryStyle.kt +12 -0
- package/runtime/RequestOptions.kt +29 -0
- package/runtime/URLEncoding.kt +45 -0
- package/dist/kt-compiler/decl/class.d.ts +0 -6
- package/dist/kt-compiler/decl/class.d.ts.map +0 -1
- package/dist/kt-compiler/decl/class.js +0 -38
- package/dist/kt-compiler/decl/class.js.map +0 -1
- package/dist/kt-compiler/decl/dataClass.d.ts +0 -3
- package/dist/kt-compiler/decl/dataClass.d.ts.map +0 -1
- package/dist/kt-compiler/decl/dataClass.js +0 -18
- package/dist/kt-compiler/decl/dataClass.js.map +0 -1
- package/dist/kt-compiler/decl/enum.d.ts +0 -3
- package/dist/kt-compiler/decl/enum.d.ts.map +0 -1
- package/dist/kt-compiler/decl/enum.js +0 -32
- package/dist/kt-compiler/decl/enum.js.map +0 -1
- package/dist/kt-compiler/decl/fun.d.ts +0 -11
- package/dist/kt-compiler/decl/fun.d.ts.map +0 -1
- package/dist/kt-compiler/decl/fun.js +0 -69
- package/dist/kt-compiler/decl/fun.js.map +0 -1
- package/dist/kt-compiler/decl/index.d.ts +0 -13
- package/dist/kt-compiler/decl/index.d.ts.map +0 -1
- package/dist/kt-compiler/decl/index.js +0 -39
- package/dist/kt-compiler/decl/index.js.map +0 -1
- package/dist/kt-compiler/decl/interface.d.ts +0 -3
- package/dist/kt-compiler/decl/interface.d.ts.map +0 -1
- package/dist/kt-compiler/decl/interface.js +0 -15
- package/dist/kt-compiler/decl/interface.js.map +0 -1
- package/dist/kt-compiler/decl/object.d.ts +0 -3
- package/dist/kt-compiler/decl/object.d.ts.map +0 -1
- package/dist/kt-compiler/decl/object.js +0 -19
- package/dist/kt-compiler/decl/object.js.map +0 -1
- package/dist/kt-compiler/decl/prop.d.ts +0 -20
- package/dist/kt-compiler/decl/prop.d.ts.map +0 -1
- package/dist/kt-compiler/decl/prop.js +0 -42
- package/dist/kt-compiler/decl/prop.js.map +0 -1
- package/dist/kt-compiler/decl/sealedClass.d.ts +0 -3
- package/dist/kt-compiler/decl/sealedClass.d.ts.map +0 -1
- package/dist/kt-compiler/decl/sealedClass.js +0 -32
- package/dist/kt-compiler/decl/sealedClass.js.map +0 -1
- package/dist/kt-compiler/decl/topLevel.d.ts +0 -3
- package/dist/kt-compiler/decl/topLevel.d.ts.map +0 -1
- package/dist/kt-compiler/decl/topLevel.js +0 -5
- package/dist/kt-compiler/decl/topLevel.js.map +0 -1
- package/dist/kt-compiler/decl/typeAlias.d.ts +0 -3
- package/dist/kt-compiler/decl/typeAlias.d.ts.map +0 -1
- package/dist/kt-compiler/decl/typeAlias.js +0 -6
- package/dist/kt-compiler/decl/typeAlias.js.map +0 -1
- package/dist/kt-compiler/expr.d.ts +0 -4
- package/dist/kt-compiler/expr.d.ts.map +0 -1
- package/dist/kt-compiler/expr.js +0 -123
- package/dist/kt-compiler/expr.js.map +0 -1
- package/dist/kt-compiler/format.d.ts +0 -20
- package/dist/kt-compiler/format.d.ts.map +0 -1
- package/dist/kt-compiler/format.js +0 -27
- package/dist/kt-compiler/format.js.map +0 -1
- package/dist/kt-compiler/stmt.d.ts +0 -4
- package/dist/kt-compiler/stmt.d.ts.map +0 -1
- package/dist/kt-compiler/stmt.js +0 -72
- package/dist/kt-compiler/stmt.js.map +0 -1
- package/dist/kt-compiler/type.d.ts +0 -3
- package/dist/kt-compiler/type.d.ts.map +0 -1
- package/dist/kt-compiler/type.js +0 -28
- package/dist/kt-compiler/type.js.map +0 -1
- package/dist/kt-dsl/decl/class.d.ts +0 -50
- package/dist/kt-dsl/decl/class.d.ts.map +0 -1
- package/dist/kt-dsl/decl/class.js +0 -33
- package/dist/kt-dsl/decl/class.js.map +0 -1
- package/dist/kt-dsl/decl/dataClass.d.ts +0 -36
- package/dist/kt-dsl/decl/dataClass.d.ts.map +0 -1
- package/dist/kt-dsl/decl/dataClass.js +0 -25
- package/dist/kt-dsl/decl/dataClass.js.map +0 -1
- package/dist/kt-dsl/decl/enum.d.ts +0 -60
- package/dist/kt-dsl/decl/enum.d.ts.map +0 -1
- package/dist/kt-dsl/decl/enum.js +0 -38
- package/dist/kt-dsl/decl/enum.js.map +0 -1
- package/dist/kt-dsl/decl/index.d.ts +0 -11
- package/dist/kt-dsl/decl/index.d.ts.map +0 -1
- package/dist/kt-dsl/decl/index.js +0 -11
- package/dist/kt-dsl/decl/index.js.map +0 -1
- package/dist/kt-dsl/decl/interface.d.ts +0 -33
- package/dist/kt-dsl/decl/interface.d.ts.map +0 -1
- package/dist/kt-dsl/decl/interface.js +0 -24
- package/dist/kt-dsl/decl/interface.js.map +0 -1
- package/dist/kt-dsl/decl/object.d.ts +0 -34
- package/dist/kt-dsl/decl/object.d.ts.map +0 -1
- package/dist/kt-dsl/decl/object.js +0 -24
- package/dist/kt-dsl/decl/object.js.map +0 -1
- package/dist/kt-dsl/decl/prop.d.ts +0 -47
- package/dist/kt-dsl/decl/prop.d.ts.map +0 -1
- package/dist/kt-dsl/decl/prop.js +0 -28
- package/dist/kt-dsl/decl/prop.js.map +0 -1
- package/dist/kt-dsl/decl/sealedClass.d.ts +0 -68
- package/dist/kt-dsl/decl/sealedClass.d.ts.map +0 -1
- package/dist/kt-dsl/decl/sealedClass.js +0 -52
- package/dist/kt-dsl/decl/sealedClass.js.map +0 -1
- package/dist/kt-dsl/decl/topLevel.d.ts +0 -19
- package/dist/kt-dsl/decl/topLevel.d.ts.map +0 -1
- package/dist/kt-dsl/decl/topLevel.js +0 -17
- package/dist/kt-dsl/decl/topLevel.js.map +0 -1
- package/dist/kt-dsl/decl/typeAlias.d.ts +0 -23
- package/dist/kt-dsl/decl/typeAlias.d.ts.map +0 -1
- package/dist/kt-dsl/decl/typeAlias.js +0 -18
- package/dist/kt-dsl/decl/typeAlias.js.map +0 -1
- package/dist/kt-dsl/decl/types.d.ts +0 -10
- package/dist/kt-dsl/decl/types.d.ts.map +0 -1
- package/dist/kt-dsl/decl/types.js +0 -2
- package/dist/kt-dsl/decl/types.js.map +0 -1
- package/dist/kt-dsl/expr/access.d.ts +0 -48
- package/dist/kt-dsl/expr/access.d.ts.map +0 -1
- package/dist/kt-dsl/expr/access.js +0 -59
- package/dist/kt-dsl/expr/access.js.map +0 -1
- package/dist/kt-dsl/expr/call.d.ts +0 -38
- package/dist/kt-dsl/expr/call.d.ts.map +0 -1
- package/dist/kt-dsl/expr/call.js +0 -38
- package/dist/kt-dsl/expr/call.js.map +0 -1
- package/dist/kt-dsl/expr/index.d.ts +0 -7
- package/dist/kt-dsl/expr/index.d.ts.map +0 -1
- package/dist/kt-dsl/expr/index.js +0 -7
- package/dist/kt-dsl/expr/index.js.map +0 -1
- package/dist/kt-dsl/expr/literal.d.ts +0 -100
- package/dist/kt-dsl/expr/literal.d.ts.map +0 -1
- package/dist/kt-dsl/expr/literal.js +0 -108
- package/dist/kt-dsl/expr/literal.js.map +0 -1
- package/dist/kt-dsl/expr/misc.d.ts +0 -45
- package/dist/kt-dsl/expr/misc.d.ts.map +0 -1
- package/dist/kt-dsl/expr/misc.js +0 -63
- package/dist/kt-dsl/expr/misc.js.map +0 -1
- package/dist/kt-dsl/expr/op.d.ts +0 -25
- package/dist/kt-dsl/expr/op.d.ts.map +0 -1
- package/dist/kt-dsl/expr/op.js +0 -24
- package/dist/kt-dsl/expr/op.js.map +0 -1
- package/dist/kt-dsl/expr/types.d.ts +0 -93
- package/dist/kt-dsl/expr/types.d.ts.map +0 -1
- package/dist/kt-dsl/expr/types.js +0 -2
- package/dist/kt-dsl/expr/types.js.map +0 -1
- package/dist/kt-dsl/file.d.ts +0 -14
- package/dist/kt-dsl/file.d.ts.map +0 -1
- package/dist/kt-dsl/file.js +0 -9
- package/dist/kt-dsl/file.js.map +0 -1
- package/dist/kt-dsl/fun.d.ts +0 -73
- package/dist/kt-dsl/fun.d.ts.map +0 -1
- package/dist/kt-dsl/fun.js +0 -50
- package/dist/kt-dsl/fun.js.map +0 -1
- package/dist/kt-dsl/index.d.ts +0 -8
- package/dist/kt-dsl/index.d.ts.map +0 -1
- package/dist/kt-dsl/index.js +0 -8
- package/dist/kt-dsl/index.js.map +0 -1
- package/dist/kt-dsl/stmt/binding.d.ts +0 -56
- package/dist/kt-dsl/stmt/binding.d.ts.map +0 -1
- package/dist/kt-dsl/stmt/binding.js +0 -70
- package/dist/kt-dsl/stmt/binding.js.map +0 -1
- package/dist/kt-dsl/stmt/control.d.ts +0 -80
- package/dist/kt-dsl/stmt/control.d.ts.map +0 -1
- package/dist/kt-dsl/stmt/control.js +0 -77
- package/dist/kt-dsl/stmt/control.js.map +0 -1
- package/dist/kt-dsl/stmt/index.d.ts +0 -4
- package/dist/kt-dsl/stmt/index.d.ts.map +0 -1
- package/dist/kt-dsl/stmt/index.js +0 -4
- package/dist/kt-dsl/stmt/index.js.map +0 -1
- package/dist/kt-dsl/stmt/types.d.ts +0 -62
- package/dist/kt-dsl/stmt/types.d.ts.map +0 -1
- package/dist/kt-dsl/stmt/types.js +0 -2
- package/dist/kt-dsl/stmt/types.js.map +0 -1
- package/dist/kt-dsl/type/builders.d.ts +0 -75
- package/dist/kt-dsl/type/builders.d.ts.map +0 -1
- package/dist/kt-dsl/type/builders.js +0 -83
- package/dist/kt-dsl/type/builders.js.map +0 -1
- package/dist/kt-dsl/type/index.d.ts +0 -3
- package/dist/kt-dsl/type/index.d.ts.map +0 -1
- package/dist/kt-dsl/type/index.js +0 -3
- package/dist/kt-dsl/type/index.js.map +0 -1
- package/dist/kt-dsl/type/types.d.ts +0 -25
- package/dist/kt-dsl/type/types.d.ts.map +0 -1
- package/dist/kt-dsl/type/types.js +0 -2
- package/dist/kt-dsl/type/types.js.map +0 -1
- package/dist/kt-dsl/visibility.d.ts +0 -2
- package/dist/kt-dsl/visibility.d.ts.map +0 -1
- package/dist/kt-dsl/visibility.js +0 -2
- package/dist/kt-dsl/visibility.js.map +0 -1
package/dist/ir/identifiers.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { avoidLeadingDigit, escapeIfReserved, softCamel, } from "@ir-kit/codegen-core";
|
|
1
|
+
import { avoidLeadingDigit, escapeIfReserved, Namespace, softCamel, typeIdent, } from "@ir-kit/codegen-core";
|
|
2
2
|
/**
|
|
3
3
|
* Kotlin-specific identifier transforms. Generic case helpers
|
|
4
4
|
* (`pascal`, `camel`, `safeIdent`, `safeCaseName`, `synthName`,
|
|
@@ -15,7 +15,8 @@ import { avoidLeadingDigit, escapeIfReserved, softCamel, } from "@ir-kit/codegen
|
|
|
15
15
|
* pass through unchanged.
|
|
16
16
|
*/
|
|
17
17
|
export function paramIdent(name) {
|
|
18
|
-
|
|
18
|
+
const ident = softCamel(name).replace(/[^A-Za-z0-9_]/g, "") || "value";
|
|
19
|
+
return escapeIfReserved(avoidLeadingDigit(ident), KOTLIN_RESERVED_KEYWORDS, (s) => `\`${s}\``);
|
|
19
20
|
}
|
|
20
21
|
/**
|
|
21
22
|
* Constant-style identifier for enum entries — `SCREAMING_SNAKE_CASE`.
|
|
@@ -30,7 +31,9 @@ export function enumEntryIdent(s) {
|
|
|
30
31
|
.split(/_+/)
|
|
31
32
|
.filter(Boolean);
|
|
32
33
|
const upper = parts.join("_").toUpperCase();
|
|
33
|
-
|
|
34
|
+
if (!upper)
|
|
35
|
+
return "EMPTY";
|
|
36
|
+
return /^[0-9]/.test(upper) ? `VALUE_${upper}` : upper;
|
|
34
37
|
}
|
|
35
38
|
/**
|
|
36
39
|
* Kotlin's hard keywords (the ones that can't be used as identifiers
|
|
@@ -68,4 +71,90 @@ const KOTLIN_RESERVED_KEYWORDS = new Set([
|
|
|
68
71
|
"when",
|
|
69
72
|
"while",
|
|
70
73
|
]);
|
|
74
|
+
/** `typeIdent` joined into the PascalCase form Kotlin's class-naming convention expects. */
|
|
75
|
+
export function kotlinTypeIdent(name) {
|
|
76
|
+
const joined = typeIdent(name)
|
|
77
|
+
.replace(/_+([A-Za-z0-9])/g, (_, c) => c.toUpperCase())
|
|
78
|
+
.replace(/_/g, "");
|
|
79
|
+
const pascal = joined.replace(/^./, (c) => c.toUpperCase());
|
|
80
|
+
return /^[0-9]/.test(pascal) ? `X${pascal}` : pascal || "Empty";
|
|
81
|
+
}
|
|
82
|
+
/** Operation parameter name that cannot shadow a local of the generated method body. */
|
|
83
|
+
export function operationParamIdent(name) {
|
|
84
|
+
const ident = paramIdent(name);
|
|
85
|
+
return OPERATION_LOCALS.has(ident) ? `${ident}Param` : ident;
|
|
86
|
+
}
|
|
87
|
+
/** Owns every top-level Kotlin type name for one generation run. */
|
|
88
|
+
export function newTypeNames() {
|
|
89
|
+
return new Namespace({
|
|
90
|
+
normalize: kotlinTypeIdent,
|
|
91
|
+
reserved: RESERVED_TYPE_NAMES,
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
/** Locals and names generated method bodies declare or capture. */
|
|
95
|
+
const OPERATION_LOCALS = new Set([
|
|
96
|
+
"auth",
|
|
97
|
+
"baseUrl",
|
|
98
|
+
"builder",
|
|
99
|
+
"client",
|
|
100
|
+
"currentUrl",
|
|
101
|
+
"data",
|
|
102
|
+
"formBuilder",
|
|
103
|
+
"header",
|
|
104
|
+
"multipart",
|
|
105
|
+
"options",
|
|
106
|
+
"payload",
|
|
107
|
+
"raw",
|
|
108
|
+
"response",
|
|
109
|
+
"scheme",
|
|
110
|
+
"url",
|
|
111
|
+
"urlBuilder",
|
|
112
|
+
"value",
|
|
113
|
+
]);
|
|
114
|
+
/** Kotlin, library and runtime type names generated files use unqualified. */
|
|
115
|
+
const RESERVED_TYPE_NAMES = new Set([
|
|
116
|
+
"Any",
|
|
117
|
+
"APIClient",
|
|
118
|
+
"APIError",
|
|
119
|
+
"APIInterceptors",
|
|
120
|
+
"APIKeyLocation",
|
|
121
|
+
"Auth",
|
|
122
|
+
"Boolean",
|
|
123
|
+
"ByteArray",
|
|
124
|
+
"Dispatchers",
|
|
125
|
+
"Double",
|
|
126
|
+
"Exception",
|
|
127
|
+
"Float",
|
|
128
|
+
"FormBody",
|
|
129
|
+
"HttpUrl",
|
|
130
|
+
"Instant",
|
|
131
|
+
"Int",
|
|
132
|
+
"Json",
|
|
133
|
+
"JsonElement",
|
|
134
|
+
"KSerializer",
|
|
135
|
+
"List",
|
|
136
|
+
"LocalDate",
|
|
137
|
+
"Long",
|
|
138
|
+
"Map",
|
|
139
|
+
"MediaType",
|
|
140
|
+
"MultipartBody",
|
|
141
|
+
"MultipartFormBody",
|
|
142
|
+
"Nothing",
|
|
143
|
+
"OkHttpClient",
|
|
144
|
+
"Pair",
|
|
145
|
+
"QueryStyle",
|
|
146
|
+
"Request",
|
|
147
|
+
"RequestBody",
|
|
148
|
+
"RequestOptions",
|
|
149
|
+
"Response",
|
|
150
|
+
"Result",
|
|
151
|
+
"SerialName",
|
|
152
|
+
"Serializable",
|
|
153
|
+
"Set",
|
|
154
|
+
"String",
|
|
155
|
+
"Throwable",
|
|
156
|
+
"TimeUnit",
|
|
157
|
+
"Unit",
|
|
158
|
+
"URLEncoding",
|
|
159
|
+
]);
|
|
71
160
|
//# sourceMappingURL=identifiers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identifiers.js","sourceRoot":"","sources":["../../src/ir/identifiers.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,SAAS,GACV,MAAM,sBAAsB,CAAC;AAE9B;;;;;;;GAOG;AAEH;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO,gBAAgB,
|
|
1
|
+
{"version":3,"file":"identifiers.js","sourceRoot":"","sources":["../../src/ir/identifiers.ts"],"names":[],"mappings":"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"}
|
package/dist/ir/impl/body.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { IR } from "@hey-api/shared";
|
|
2
2
|
import type { HttpMethod } from "@ir-kit/openapi";
|
|
3
|
-
import type { KtType } from "../../
|
|
4
|
-
import { type KtStmt } from "../../
|
|
3
|
+
import type { KtType } from "../../ast/index.js";
|
|
4
|
+
import { type KtStmt } from "../../ast/index.js";
|
|
5
|
+
import { type SerializerAliases } from "./serializer.js";
|
|
5
6
|
export interface BodyResult {
|
|
6
7
|
stmts: ReadonlyArray<KtStmt>;
|
|
7
8
|
/** Set when the body builder uses `MultipartFormBody` so the
|
|
@@ -24,5 +25,5 @@ export interface BodyResult {
|
|
|
24
25
|
*
|
|
25
26
|
* Optional fields are wrapped in `if (<id> != null)`.
|
|
26
27
|
*/
|
|
27
|
-
export declare function buildBodyStmts(body: IR.BodyObject, method: HttpMethod, bodyType: KtType): BodyResult;
|
|
28
|
+
export declare function buildBodyStmts(body: IR.BodyObject, method: HttpMethod, bodyType: KtType, aliases: SerializerAliases): BodyResult;
|
|
28
29
|
//# sourceMappingURL=body.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"body.d.ts","sourceRoot":"","sources":["../../../src/ir/impl/body.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAU,MAAM,iBAAiB,CAAC;AAE1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"body.d.ts","sourceRoot":"","sources":["../../../src/ir/impl/body.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAU,MAAM,iBAAiB,CAAC;AAE1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAEL,KAAK,MAAM,EAYZ,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,KAAK,iBAAiB,EAAiB,MAAM,iBAAiB,CAAC;AAExE,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC7B;kDAC8C;IAC9C,cAAc,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,EAAE,CAAC,UAAU,EACnB,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,iBAAiB,GACzB,UAAU,CA+BZ"}
|
package/dist/ir/impl/body.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { classifyBody, isSchemaObject } from "@ir-kit/openapi";
|
|
2
|
-
import { ktArg, ktCall, ktExprStmt, ktIdent, ktIf, ktInterp, ktMember, ktNe, ktNull, ktStr, ktVal, } from "../../
|
|
3
|
-
import {
|
|
2
|
+
import { ktArg, ktCall, ktExprStmt, ktIdent, ktIf, ktInterp, ktMember, ktNe, ktNull, ktStr, ktVal, } from "../../ast/index.js";
|
|
3
|
+
import { operationParamIdent } from "../identifiers.js";
|
|
4
4
|
import { setMethodWithBody } from "./request.js";
|
|
5
5
|
import { serializerFor } from "./serializer.js";
|
|
6
6
|
/**
|
|
@@ -19,7 +19,7 @@ import { serializerFor } from "./serializer.js";
|
|
|
19
19
|
*
|
|
20
20
|
* Optional fields are wrapped in `if (<id> != null)`.
|
|
21
21
|
*/
|
|
22
|
-
export function buildBodyStmts(body, method, bodyType) {
|
|
22
|
+
export function buildBodyStmts(body, method, bodyType, aliases) {
|
|
23
23
|
const { shape, schema } = classifyBody(body);
|
|
24
24
|
switch (shape.kind) {
|
|
25
25
|
case "json-opaque":
|
|
@@ -28,7 +28,10 @@ export function buildBodyStmts(body, method, bodyType) {
|
|
|
28
28
|
needsMultipart: false,
|
|
29
29
|
};
|
|
30
30
|
case "json-typed":
|
|
31
|
-
return {
|
|
31
|
+
return {
|
|
32
|
+
stmts: emitJsonBody(method, bodyType, aliases),
|
|
33
|
+
needsMultipart: false,
|
|
34
|
+
};
|
|
32
35
|
case "multipart-object":
|
|
33
36
|
return { stmts: emitMultipartBody(schema, method), needsMultipart: true };
|
|
34
37
|
case "form-urlencoded-object":
|
|
@@ -49,10 +52,10 @@ const TO_REQUEST_BODY = "toRequestBody";
|
|
|
49
52
|
function toMediaTypeCall(mt) {
|
|
50
53
|
return ktCall(ktMember(ktStr(mt), "toMediaType"), []);
|
|
51
54
|
}
|
|
52
|
-
function emitJsonBody(method, bodyType) {
|
|
55
|
+
function emitJsonBody(method, bodyType, aliases) {
|
|
53
56
|
return [
|
|
54
57
|
ktVal("payload", ktCall(ktMember(ktMember(ktIdent("client"), "json"), "encodeToString"), [
|
|
55
|
-
ktArg(serializerFor(bodyType)),
|
|
58
|
+
ktArg(serializerFor(bodyType, aliases)),
|
|
56
59
|
ktArg(ktIdent("body")),
|
|
57
60
|
])),
|
|
58
61
|
setMethodWithBody(method, ktCall(ktMember(ktIdent("payload"), TO_REQUEST_BODY), [
|
|
@@ -73,7 +76,7 @@ function emitMultipartBody(schema, method) {
|
|
|
73
76
|
for (const [propName, propSchema] of Object.entries(schema.properties ?? {})) {
|
|
74
77
|
if (!isSchemaObject(propSchema))
|
|
75
78
|
continue;
|
|
76
|
-
const id =
|
|
79
|
+
const id = operationParamIdent(propName);
|
|
77
80
|
const isBinary = propSchema.type === "string" && propSchema.format === "binary";
|
|
78
81
|
const append = isBinary
|
|
79
82
|
? ktExprStmt(ktCall(ktMember(ktIdent("multipart"), "appendFile"), [
|
|
@@ -98,7 +101,7 @@ function emitFormUrlEncodedBody(schema, method) {
|
|
|
98
101
|
ktVal("formBuilder", ktCall(ktIdent("FormBody.Builder"), [])),
|
|
99
102
|
];
|
|
100
103
|
for (const propName of Object.keys(schema.properties ?? {})) {
|
|
101
|
-
const id =
|
|
104
|
+
const id = operationParamIdent(propName);
|
|
102
105
|
const append = ktExprStmt(ktCall(ktMember(ktIdent("formBuilder"), "add"), [
|
|
103
106
|
ktArg(ktStr(propName)),
|
|
104
107
|
ktArg(ktInterp([ktIdent(id)])),
|
package/dist/ir/impl/body.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"body.js","sourceRoot":"","sources":["../../../src/ir/impl/body.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAE/D,OAAO,EAGL,KAAK,EACL,MAAM,EACN,UAAU,EACV,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,MAAM,EACN,KAAK,EACL,KAAK,GACN,MAAM,
|
|
1
|
+
{"version":3,"file":"body.js","sourceRoot":"","sources":["../../../src/ir/impl/body.ts"],"names":[],"mappings":"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"}
|
package/dist/ir/impl/decode.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { type KtStmt } from "../../
|
|
1
|
+
import { type KtStmt } from "../../ast/index.js";
|
|
2
2
|
import type { OperationSignature } from "../operation/signature.js";
|
|
3
|
+
import { type SerializerAliases } from "./serializer.js";
|
|
3
4
|
/**
|
|
4
5
|
* Tail of an impl method body — delegate to the runtime client. Five
|
|
5
6
|
* shapes, picked from the sig:
|
|
@@ -10,5 +11,5 @@ import type { OperationSignature } from "../operation/signature.js";
|
|
|
10
11
|
* - Single 2xx, `Pair<T, Response>` → `return client.executeWithResponse(builder.build(), <ser>, …)`
|
|
11
12
|
* - Multi 2xx (sealed-class) → `client.executeRaw(...)` + `when (response.code)` switch, decode each case
|
|
12
13
|
*/
|
|
13
|
-
export declare function buildSendAndDecodeStmts(sig: OperationSignature): ReadonlyArray<KtStmt>;
|
|
14
|
+
export declare function buildSendAndDecodeStmts(sig: OperationSignature, aliases: SerializerAliases): ReadonlyArray<KtStmt>;
|
|
14
15
|
//# sourceMappingURL=decode.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decode.d.ts","sourceRoot":"","sources":["../../../src/ir/impl/decode.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"decode.d.ts","sourceRoot":"","sources":["../../../src/ir/impl/decode.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,MAAM,EAeZ,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EACV,kBAAkB,EAEnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,KAAK,iBAAiB,EAAiB,MAAM,iBAAiB,CAAC;AAExE;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,kBAAkB,EACvB,OAAO,EAAE,iBAAiB,GACzB,aAAa,CAAC,MAAM,CAAC,CAIvB"}
|
package/dist/ir/impl/decode.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ktArg, ktCall, ktExprStmt, ktIdent, ktIntLit, ktMember, ktReturn, ktThrow, ktVal, ktWhen, ktWhenCase, } from "../../
|
|
1
|
+
import { isUnit, ktArg, ktCall, ktExprStmt, ktIdent, ktIntLit, ktMember, ktReturn, ktThrow, ktVal, ktWhen, ktWhenCase, typeArgs, typeName, } from "../../ast/index.js";
|
|
2
2
|
import { serializerFor } from "./serializer.js";
|
|
3
3
|
/**
|
|
4
4
|
* Tail of an impl method body — delegate to the runtime client. Five
|
|
@@ -10,20 +10,20 @@ import { serializerFor } from "./serializer.js";
|
|
|
10
10
|
* - Single 2xx, `Pair<T, Response>` → `return client.executeWithResponse(builder.build(), <ser>, …)`
|
|
11
11
|
* - Multi 2xx (sealed-class) → `client.executeRaw(...)` + `when (response.code)` switch, decode each case
|
|
12
12
|
*/
|
|
13
|
-
export function buildSendAndDecodeStmts(sig) {
|
|
13
|
+
export function buildSendAndDecodeStmts(sig, aliases) {
|
|
14
14
|
if (sig.responseCases.length > 0)
|
|
15
|
-
return buildMultiResponseStmts(sig);
|
|
16
|
-
return buildSingleResponseStmts(sig.returnType);
|
|
15
|
+
return buildMultiResponseStmts(aliases, sig);
|
|
16
|
+
return buildSingleResponseStmts(sig.returnType, aliases);
|
|
17
17
|
}
|
|
18
18
|
// MARK: single-2xx
|
|
19
|
-
function buildSingleResponseStmts(returnType) {
|
|
19
|
+
function buildSingleResponseStmts(returnType, aliases) {
|
|
20
20
|
const dispatch = classifyReturn(returnType);
|
|
21
21
|
const callee = ktMember(ktIdent("client"), dispatch.method);
|
|
22
22
|
const args = [
|
|
23
23
|
ktArg(ktCall(ktMember(ktIdent("builder"), "build"), [])),
|
|
24
24
|
];
|
|
25
25
|
if (dispatch.deserializerType) {
|
|
26
|
-
args.push(ktArg(serializerFor(dispatch.deserializerType)));
|
|
26
|
+
args.push(ktArg(serializerFor(dispatch.deserializerType, aliases)));
|
|
27
27
|
}
|
|
28
28
|
args.push(ktArg(ktMember(ktIdent("options"), "timeout"), "timeout"), ktArg(ktMember(ktIdent("options"), "requestInterceptors"), "extraInterceptors"), ktArg(ktMember(ktIdent("options"), "responseValidator"), "responseValidator"));
|
|
29
29
|
if (dispatch.includeTransformer) {
|
|
@@ -33,24 +33,24 @@ function buildSingleResponseStmts(returnType) {
|
|
|
33
33
|
return dispatch.discardResult ? [ktExprStmt(call)] : [ktReturn(call)];
|
|
34
34
|
}
|
|
35
35
|
function classifyReturn(t) {
|
|
36
|
-
if (t
|
|
36
|
+
if (isUnit(t)) {
|
|
37
37
|
return {
|
|
38
38
|
method: "executeUnit",
|
|
39
39
|
includeTransformer: false,
|
|
40
40
|
discardResult: true,
|
|
41
41
|
};
|
|
42
42
|
}
|
|
43
|
-
if (t
|
|
43
|
+
if (typeName(t) === "Response") {
|
|
44
44
|
return {
|
|
45
45
|
method: "executeUnitWithResponse",
|
|
46
46
|
includeTransformer: false,
|
|
47
47
|
discardResult: false,
|
|
48
48
|
};
|
|
49
49
|
}
|
|
50
|
-
if (t
|
|
50
|
+
if (typeName(t) === "Pair" && typeArgs(t).length > 0) {
|
|
51
51
|
return {
|
|
52
52
|
method: "executeWithResponse",
|
|
53
|
-
deserializerType: t
|
|
53
|
+
deserializerType: typeArgs(t)[0],
|
|
54
54
|
includeTransformer: true,
|
|
55
55
|
discardResult: false,
|
|
56
56
|
};
|
|
@@ -63,9 +63,9 @@ function classifyReturn(t) {
|
|
|
63
63
|
};
|
|
64
64
|
}
|
|
65
65
|
// MARK: multi-2xx
|
|
66
|
-
function buildMultiResponseStmts(sig) {
|
|
67
|
-
const wrapWithResponse = sig.returnType
|
|
68
|
-
const sealedName =
|
|
66
|
+
function buildMultiResponseStmts(aliases, sig) {
|
|
67
|
+
const wrapWithResponse = typeName(sig.returnType) === "Pair";
|
|
68
|
+
const sealedName = sig.sealedName ?? sig.ownerName;
|
|
69
69
|
const args = [
|
|
70
70
|
ktArg(ktCall(ktMember(ktIdent("builder"), "build"), [])),
|
|
71
71
|
ktArg(ktMember(ktIdent("options"), "timeout"), "timeout"),
|
|
@@ -77,7 +77,7 @@ function buildMultiResponseStmts(sig) {
|
|
|
77
77
|
ktVal("raw", ktCall(ktMember(ktIdent("client"), "executeRaw"), args)),
|
|
78
78
|
ktVal("data", ktMember(ktIdent("raw"), "first")),
|
|
79
79
|
ktVal("response", ktMember(ktIdent("raw"), "second")),
|
|
80
|
-
ktWhen(ktMember(ktIdent("response"), "code"), sig.responseCases.map((c) => ktWhenCase([ktIntLit(Number(c.statusCode))], caseBody(c, sealedName, wrapWithResponse))), [
|
|
80
|
+
ktWhen(ktMember(ktIdent("response"), "code"), sig.responseCases.map((c) => ktWhenCase([ktIntLit(Number(c.statusCode))], caseBody(aliases, c, sealedName, wrapWithResponse))), [
|
|
81
81
|
ktThrow(ktCall(ktIdent("APIError.UnexpectedStatus"), [
|
|
82
82
|
ktArg(ktMember(ktIdent("response"), "code")),
|
|
83
83
|
ktArg(ktIdent("data")),
|
|
@@ -85,14 +85,14 @@ function buildMultiResponseStmts(sig) {
|
|
|
85
85
|
]),
|
|
86
86
|
];
|
|
87
87
|
}
|
|
88
|
-
function caseBody(c, sealedName, wrapWithResponse) {
|
|
88
|
+
function caseBody(aliases, c, sealedName, wrapWithResponse) {
|
|
89
89
|
if (!c.payloadType) {
|
|
90
90
|
return [
|
|
91
91
|
ktReturn(wrapResult(ktIdent(`${sealedName}.${c.caseName}`), wrapWithResponse)),
|
|
92
92
|
];
|
|
93
93
|
}
|
|
94
94
|
const decoded = ktCall(ktMember(ktMember(ktIdent("client"), "json"), "decodeFromString"), [
|
|
95
|
-
ktArg(serializerFor(c.payloadType)),
|
|
95
|
+
ktArg(serializerFor(c.payloadType, aliases)),
|
|
96
96
|
ktArg(ktCall(ktMember(ktIdent("data"), "decodeToString"), [])),
|
|
97
97
|
]);
|
|
98
98
|
return [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decode.js","sourceRoot":"","sources":["../../../src/ir/impl/decode.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"decode.js","sourceRoot":"","sources":["../../../src/ir/impl/decode.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type LocatedParam } from "@ir-kit/openapi";
|
|
2
|
-
import { type KtStmt } from "../../
|
|
2
|
+
import { type KtStmt } from "../../ast/index.js";
|
|
3
3
|
/**
|
|
4
4
|
* `builder.header("<name>", "$<value>")` for each header param. Optional
|
|
5
5
|
* headers are wrapped in `if (<name> != null)`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"headers.d.ts","sourceRoot":"","sources":["../../../src/ir/impl/headers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,YAAY,EAAY,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EACL,KAAK,MAAM,EAWZ,MAAM,
|
|
1
|
+
{"version":3,"file":"headers.d.ts","sourceRoot":"","sources":["../../../src/ir/impl/headers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,YAAY,EAAY,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EACL,KAAK,MAAM,EAWZ,MAAM,oBAAoB,CAAC;AAG5B;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,aAAa,CAAC,YAAY,CAAC,GACnC,aAAa,CAAC,MAAM,CAAC,CAGvB"}
|
package/dist/ir/impl/headers.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { paramsAt } from "@ir-kit/openapi";
|
|
2
|
-
import { ktArg, ktCall, ktExprStmt, ktIdent, ktIf, ktInterp, ktMember, ktNe, ktNull, ktStr, } from "../../
|
|
3
|
-
import {
|
|
2
|
+
import { ktArg, ktCall, ktExprStmt, ktIdent, ktIf, ktInterp, ktMember, ktNe, ktNull, ktStr, } from "../../ast/index.js";
|
|
3
|
+
import { operationParamIdent } from "../identifiers.js";
|
|
4
4
|
/**
|
|
5
5
|
* `builder.header("<name>", "$<value>")` for each header param. Optional
|
|
6
6
|
* headers are wrapped in `if (<name> != null)`.
|
|
@@ -10,7 +10,7 @@ export function buildHeaderStmts(located) {
|
|
|
10
10
|
return headers.flatMap(buildHeaderStmt);
|
|
11
11
|
}
|
|
12
12
|
function buildHeaderStmt(p) {
|
|
13
|
-
const id =
|
|
13
|
+
const id = operationParamIdent(p.name);
|
|
14
14
|
const setStmt = ktExprStmt(ktCall(ktMember(ktIdent("builder"), "header"), [
|
|
15
15
|
ktArg(ktStr(p.name)),
|
|
16
16
|
ktArg(ktInterp([ktIdent(id)])),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"headers.js","sourceRoot":"","sources":["../../../src/ir/impl/headers.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EAEL,KAAK,EACL,MAAM,EACN,UAAU,EACV,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,MAAM,EACN,KAAK,GACN,MAAM,
|
|
1
|
+
{"version":3,"file":"headers.js","sourceRoot":"","sources":["../../../src/ir/impl/headers.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EAEL,KAAK,EACL,MAAM,EACN,UAAU,EACV,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,MAAM,EACN,KAAK,GACN,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAC9B,OAAoC;IAEpC,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC5C,OAAO,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,eAAe,CAAC,CAAqB;IAC5C,MAAM,EAAE,GAAG,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,UAAU,CACxB,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,EAAE;QAC7C,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACpB,KAAK,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;KAC/B,CAAC,CACH,CAAC;IACF,IAAI,CAAC,CAAC,QAAQ;QAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACjC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACtD,CAAC"}
|
package/dist/ir/impl/index.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type KtDecl } from "../../ast/index.js";
|
|
2
2
|
import type { OperationSignature } from "../operation/signature.js";
|
|
3
|
+
import type { SerializerAliases } from "./serializer.js";
|
|
3
4
|
export interface ClientClassResult {
|
|
4
5
|
/** The impl class itself. */
|
|
5
|
-
class:
|
|
6
|
+
class: KtDecl;
|
|
6
7
|
/** True when at least one method uses the `MultipartFormBody` helper,
|
|
7
8
|
* so the orchestrator should ship it. */
|
|
8
9
|
needsMultipart: boolean;
|
|
@@ -11,6 +12,8 @@ export interface ClientClassOptions {
|
|
|
11
12
|
/** When true, the class is `open` (subclassable) instead of final.
|
|
12
13
|
* Default: `false`. */
|
|
13
14
|
open?: boolean;
|
|
15
|
+
/** Type aliases visible to serializer resolution. */
|
|
16
|
+
aliases?: SerializerAliases;
|
|
14
17
|
}
|
|
15
18
|
/**
|
|
16
19
|
* Convert a list of `OperationSignature`s for a tag into a class that
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ir/impl/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ir/impl/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,MAAM,EAsBZ,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAKpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAgKzD,MAAM,WAAW,iBAAiB;IAChC,6BAA6B;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd;8CAC0C;IAC1C,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC;4BACwB;IACxB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,qDAAqD;IACrD,OAAO,CAAC,EAAE,iBAAiB,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAC7C,IAAI,GAAE,kBAAuB,GAC5B,iBAAiB,CAoBnB"}
|
package/dist/ir/impl/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ktArg, ktAssign, ktCall, ktClass, ktElvis, ktExprStmt, ktForIn, ktFun, ktIdent, ktIndex, ktLambda, ktListLit, ktMember, ktProp, ktRef, ktSafeMember, ktStr, ktVal, ktVar, } from "../../
|
|
1
|
+
import { ktArg, ktAssign, ktCall, ktClass, ktElvis, ktExprStmt, ktForIn, ktFun, ktIdent, ktIndex, ktLambda, ktListLit, ktMember, ktProp, ktRef, ktSafeMember, ktStr, ktVal, ktVar, } from "../../ast/index.js";
|
|
2
2
|
import { buildBodyStmts } from "./body.js";
|
|
3
3
|
import { buildSendAndDecodeStmts } from "./decode.js";
|
|
4
4
|
import { buildHeaderStmts } from "./headers.js";
|
|
@@ -21,17 +21,17 @@ import { buildUrlStmts } from "./url.js";
|
|
|
21
21
|
* 8. Delegate to `client.execute(...)` with timeout + interceptors +
|
|
22
22
|
* validator + transformer.
|
|
23
23
|
*/
|
|
24
|
-
function buildImplFun(sig) {
|
|
24
|
+
function buildImplFun(sig, aliases) {
|
|
25
25
|
const stmts = [];
|
|
26
26
|
stmts.push(...resolveOverrideStmts());
|
|
27
27
|
stmts.push(...buildUrlStmts(sig.pathStr, sig.locatedParams));
|
|
28
|
-
stmts.push(...buildRequestStmts(sig.method));
|
|
28
|
+
stmts.push(...buildRequestStmts(sig.method, Boolean(sig.op.body)));
|
|
29
29
|
stmts.push(...buildHeaderStmts(sig.locatedParams));
|
|
30
30
|
let needsMultipart = false;
|
|
31
31
|
if (sig.op.body) {
|
|
32
32
|
const bodyParam = sig.params.find((p) => p.name === "body");
|
|
33
33
|
const bodyType = bodyParam?.type ?? ktRef("ByteArray");
|
|
34
|
-
const result = buildBodyStmts(sig.op.body, sig.method, bodyType);
|
|
34
|
+
const result = buildBodyStmts(sig.op.body, sig.method, bodyType, aliases);
|
|
35
35
|
stmts.push(...result.stmts);
|
|
36
36
|
needsMultipart = result.needsMultipart;
|
|
37
37
|
}
|
|
@@ -39,7 +39,7 @@ function buildImplFun(sig) {
|
|
|
39
39
|
stmts.push(...applyAuthStmts(sig.securitySchemeNames));
|
|
40
40
|
}
|
|
41
41
|
stmts.push(applyOptionsHeadersStmt());
|
|
42
|
-
stmts.push(...buildSendAndDecodeStmts(sig));
|
|
42
|
+
stmts.push(...buildSendAndDecodeStmts(sig, aliases));
|
|
43
43
|
// Kotlin forbids defaults on `override` methods (the interface
|
|
44
44
|
// signature carries them via the convenience extension fun).
|
|
45
45
|
const overrideParams = sig.params.map((p) => p.default === undefined ? p : { ...p, default: undefined });
|
|
@@ -119,7 +119,7 @@ function applyAuthStmts(schemeNames) {
|
|
|
119
119
|
* send/dispatch/decode to it.
|
|
120
120
|
*/
|
|
121
121
|
export function buildClientClass(className, interfaceName, signatures, opts = {}) {
|
|
122
|
-
const built = signatures.map(buildImplFun);
|
|
122
|
+
const built = signatures.map((sig) => buildImplFun(sig, opts.aliases ?? new Map()));
|
|
123
123
|
const modifiers = opts.open ? ["open"] : [];
|
|
124
124
|
return {
|
|
125
125
|
class: ktClass({
|
|
@@ -130,7 +130,6 @@ export function buildClientClass(className, interfaceName, signatures, opts = {}
|
|
|
130
130
|
ktProp({
|
|
131
131
|
name: "client",
|
|
132
132
|
type: ktRef("APIClient"),
|
|
133
|
-
inPrimary: true,
|
|
134
133
|
}),
|
|
135
134
|
],
|
|
136
135
|
funs: built.map((b) => b.fun),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ir/impl/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,EACL,QAAQ,EACR,MAAM,EACN,OAAO,EACP,OAAO,EACP,UAAU,EACV,OAAO,EACP,KAAK,EACL,OAAO,EACP,OAAO,EACP,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,MAAM,EACN,KAAK,EACL,YAAY,EACZ,KAAK,EACL,KAAK,EACL,KAAK,GACN,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ir/impl/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { type HttpMethod } from "@ir-kit/openapi";
|
|
2
|
-
import { type KtStmt } from "../../
|
|
2
|
+
import { type KtStmt } from "../../ast/index.js";
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* Request builder for the URL. When the operation has a body, the body
|
|
5
|
+
* builder sets the method together with it; otherwise the method is set
|
|
6
|
+
* here, with an empty body for verbs OkHttp requires one for.
|
|
7
7
|
*
|
|
8
8
|
* val builder = Request.Builder().url(url).method("GET", null)
|
|
9
9
|
*/
|
|
10
|
-
export declare function buildRequestStmts(method: HttpMethod): ReadonlyArray<KtStmt>;
|
|
10
|
+
export declare function buildRequestStmts(method: HttpMethod, hasBody: boolean): ReadonlyArray<KtStmt>;
|
|
11
11
|
/** Convenience for the body builder to re-set the method when a
|
|
12
12
|
* RequestBody is produced. */
|
|
13
|
-
export declare function setMethodWithBody(method: HttpMethod, bodyExpr: import("../../
|
|
13
|
+
export declare function setMethodWithBody(method: HttpMethod, bodyExpr: import("../../ast/index.js").KtExpr): KtStmt;
|
|
14
14
|
//# sourceMappingURL=request.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../src/ir/impl/request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAEvE,OAAO,EACL,KAAK,MAAM,
|
|
1
|
+
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../src/ir/impl/request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAEvE,OAAO,EACL,KAAK,MAAM,EAUZ,MAAM,oBAAoB,CAAC;AAK5B;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,OAAO,GACf,aAAa,CAAC,MAAM,CAAC,CAyBvB;AAED;+BAC+B;AAC/B,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,OAAO,oBAAoB,EAAE,MAAM,GAC5C,MAAM,CAOR"}
|
package/dist/ir/impl/request.js
CHANGED
|
@@ -1,17 +1,27 @@
|
|
|
1
1
|
import { HTTP_METHOD_LITERAL } from "@ir-kit/openapi";
|
|
2
|
-
import { ktArg, ktCall, ktExprStmt, ktIdent, ktMember, ktNull, ktStr, ktVal, } from "../../
|
|
2
|
+
import { ktArg, ktCall, ktExprStmt, ktIdent, ktIntLit, ktMember, ktNull, ktStr, ktVal, } from "../../ast/index.js";
|
|
3
|
+
/** Methods OkHttp rejects without a request body. */
|
|
4
|
+
const REQUIRES_BODY = new Set(["POST", "PUT", "PATCH"]);
|
|
3
5
|
/**
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
6
|
+
* Request builder for the URL. When the operation has a body, the body
|
|
7
|
+
* builder sets the method together with it; otherwise the method is set
|
|
8
|
+
* here, with an empty body for verbs OkHttp requires one for.
|
|
7
9
|
*
|
|
8
10
|
* val builder = Request.Builder().url(url).method("GET", null)
|
|
9
11
|
*/
|
|
10
|
-
export function buildRequestStmts(method) {
|
|
12
|
+
export function buildRequestStmts(method, hasBody) {
|
|
13
|
+
const verb = HTTP_METHOD_LITERAL[method];
|
|
14
|
+
const withUrl = ktCall(ktMember(ktCall(ktIdent("Request.Builder"), []), "url"), [ktArg(ktIdent("url"))]);
|
|
15
|
+
if (hasBody)
|
|
16
|
+
return [ktVal("builder", withUrl)];
|
|
17
|
+
const emptyBody = REQUIRES_BODY.has(verb)
|
|
18
|
+
? ktCall(ktMember(ktCall(ktIdent("ByteArray"), [ktArg(ktIntLit(0))]), "toRequestBody"), [])
|
|
19
|
+
: ktNull;
|
|
11
20
|
return [
|
|
12
|
-
ktVal("builder", ktCall(ktMember(
|
|
13
|
-
ktArg(
|
|
14
|
-
|
|
21
|
+
ktVal("builder", ktCall(ktMember(withUrl, "method"), [
|
|
22
|
+
ktArg(ktStr(verb)),
|
|
23
|
+
ktArg(emptyBody),
|
|
24
|
+
])),
|
|
15
25
|
];
|
|
16
26
|
}
|
|
17
27
|
/** Convenience for the body builder to re-set the method when a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../../src/ir/impl/request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAmB,MAAM,iBAAiB,CAAC;AAEvE,OAAO,EAEL,KAAK,EACL,MAAM,EACN,UAAU,EACV,OAAO,EACP,QAAQ,EACR,MAAM,EACN,KAAK,EACL,KAAK,GACN,MAAM,
|
|
1
|
+
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../../src/ir/impl/request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAmB,MAAM,iBAAiB,CAAC;AAEvE,OAAO,EAEL,KAAK,EACL,MAAM,EACN,UAAU,EACV,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,KAAK,EACL,KAAK,GACN,MAAM,oBAAoB,CAAC;AAE5B,qDAAqD;AACrD,MAAM,aAAa,GAAwB,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;AAE7E;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAAkB,EAClB,OAAgB;IAEhB,MAAM,IAAI,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,MAAM,CACpB,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,EACvD,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CACxB,CAAC;IACF,IAAI,OAAO;QAAE,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;QACvC,CAAC,CAAC,MAAM,CACJ,QAAQ,CACN,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAClD,eAAe,CAChB,EACD,EAAE,CACH;QACH,CAAC,CAAC,MAAM,CAAC;IACX,OAAO;QACL,KAAK,CACH,SAAS,EACT,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE;YAClC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAClB,KAAK,CAAC,SAAS,CAAC;SACjB,CAAC,CACH;KACF,CAAC;AACJ,CAAC;AAED;+BAC+B;AAC/B,MAAM,UAAU,iBAAiB,CAC/B,MAAkB,EAClB,QAA6C;IAE7C,OAAO,UAAU,CACf,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,EAAE;QAC7C,KAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;QACzC,KAAK,CAAC,QAAQ,CAAC;KAChB,CAAC,CACH,CAAC;AACJ,CAAC"}
|